{"id":22981048,"url":"https://github.com/rubyworks/raml","last_synced_at":"2025-07-01T04:03:04.067Z","repository":{"id":1084309,"uuid":"932065","full_name":"rubyworks/raml","owner":"rubyworks","description":"Ruby Ambidextrous Metadata Language","archived":false,"fork":false,"pushed_at":"2012-05-27T19:54:53.000Z","size":204,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-23T13:26:46.077Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://rubyworks.github.com/raml","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rubyworks.png","metadata":{"files":{"readme":"README.rdoc","changelog":"HISTORY.rdoc","contributing":null,"funding":null,"license":"COPYING.rdoc","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-09-22T23:03:44.000Z","updated_at":"2012-12-15T06:06:32.000Z","dependencies_parsed_at":"2022-07-06T06:30:23.767Z","dependency_job_id":null,"html_url":"https://github.com/rubyworks/raml","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubyworks%2Framl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubyworks%2Framl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubyworks%2Framl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubyworks%2Framl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rubyworks","download_url":"https://codeload.github.com/rubyworks/raml/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246793064,"owners_count":20834922,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-15T01:46:50.955Z","updated_at":"2025-04-02T09:42:08.700Z","avatar_url":"https://github.com/rubyworks.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Ruby Ambidextrous Meta-Language\n\n{Homepage}[http://rubyworks.github.com/raml] |\n{Source Code}[http://github.com/rubyworks/raml] |\n{Mailing List}[http://googlegroups.com/group/rubyworks-mailinglist]\n{IRC}[irc://chat.us.freenode.net/rubyworks]\n\n{\u003cimg src=\"http://travis-ci.org/rubyworks/raml.png\" /\u003e}[http://travis-ci.org/rubyworks/raml]\n\n\n== DESCRIPTION\n\nRAML is a flexible data format suitable for a variety of uses, such\nas configuration files.\n\nAdmittedly, \"Ruby Ambidextrous Meta-Language\" is a funny name. But\nnonetheless fitting, because unlike YAML, RAML can handle a wider\nvariety of data format design needs, even limited markup formats.\nUnlike YAML, RAML is not a serialization language.\n\n\n== SYNOPSIS\n\nA RAML document is Ruby code operating under a set of open domain language rules.\nAn example RAML document looks like this:\n\n  source \"http://rubygems.org\"\n  example \"this\", 10, true\n  another do\n    name \"Tonto\"\n    age 42\n    weight 229 \n  end\n\nLoading this document in via RAML would produce the following Hash:\n\n  {:source=\u003e\"http://rubygems.org\",\n   :example=\u003e[\"this\", 10, true],\n   :another=\u003e{:name=\u003e\"Tonto\", :age=\u003e42, :weight=\u003e229}}\n\nLoading is handled by the `RAML.load` method. The method can take a string,\n\n  RAML.load(\"name 'Bob'\")\n\nOr an IO object,\n\n  RAML.load(File.new('foo.rml'))\n\nThe method also takes a `:safe` option that is used to set the level of evaluation\nRuby is allowed.\n\n  RAML.load(raml, :safe=\u003etrue)\n\nIf the option is `false`, which is the default, than evaluation is handled\nwith `$SAFE=0`. If `true` then $SAFE=4. Safe evaluation is useful when loading\nuntrusted data files. With `$SAFE=4` most (though not all) security concerns\nare mitigated.\n\nFor a complete lock-down on evaluation, allowing only data settings and no other\nforms of Ruby evaluation, `RAML.load` supports the `:eval` option. By default\nit is set to `true`. By setting it to `false` (but not `nil`), all code\nevaluation can be turned off.\n\n  RAML.load(raml, :eval=\u003efalse)\n\nUnder the hood the current implementation  has two different parsers, a\nRipper based parser and a Kernel.eval based parser. By setting `:eval=\u003efalse`\nthe Ripper parser is used rather than the regular eval parser.\n\nFor additional examples and details on working with RAML files, see\nthe QED demonstrandum.\n\n\n== IMPORTANT NOTE\n\nThe Ripper based parser is not yet robust and is NOT RECOMMENDED FOR PRODUCTION\nUSE, as it will parse invalid RAML documents without complaint. The eval parser\non the other hand works well.\n\n\n== SPECIAL THANKS\n\nBig props to \u003cb\u003eRobert Dober\u003c/b\u003e for taking the time to help me improve\nthe code.\n\n\n== COPYRIGHTS\n\nCopyright (c) 2010 Rubyworks\n\nRAML is distributed under the terms of the *FreeBSD* License.\nSee COPYING.rdoc for details.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubyworks%2Framl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frubyworks%2Framl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubyworks%2Framl/lists"}