raml-rb 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +22 -0
- data/.rspec +3 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +20 -0
- data/Rakefile +9 -0
- data/lib/raml/body.rb +10 -0
- data/lib/raml/documentation.rb +5 -0
- data/lib/raml/errors/unknown_attribute_error.rb +4 -0
- data/lib/raml/method.rb +13 -0
- data/lib/raml/parser/body.rb +38 -0
- data/lib/raml/parser/documentation.rb +37 -0
- data/lib/raml/parser/method.rb +83 -0
- data/lib/raml/parser/query_parameter.rb +39 -0
- data/lib/raml/parser/resource.rb +60 -0
- data/lib/raml/parser/response.rb +42 -0
- data/lib/raml/parser/root.rb +73 -0
- data/lib/raml/parser/util.rb +31 -0
- data/lib/raml/parser.rb +30 -0
- data/lib/raml/query_parameter.rb +10 -0
- data/lib/raml/resource.rb +16 -0
- data/lib/raml/response.rb +11 -0
- data/lib/raml/root.rb +15 -0
- data/lib/raml/version.rb +3 -0
- data/lib/raml-rb.rb +1 -0
- data/lib/raml.rb +12 -0
- data/raml-rb.gemspec +24 -0
- data/spec/fixtures/all-the-things.raml +54 -0
- data/spec/fixtures/basic.raml +41 -0
- data/spec/lib/raml/body_spec.rb +24 -0
- data/spec/lib/raml/documentation_spec.rb +19 -0
- data/spec/lib/raml/method_spec.rb +17 -0
- data/spec/lib/raml/parser/body_spec.rb +21 -0
- data/spec/lib/raml/parser/documentation_spec.rb +15 -0
- data/spec/lib/raml/parser/method_spec.rb +35 -0
- data/spec/lib/raml/parser/query_parameter_spec.rb +23 -0
- data/spec/lib/raml/parser/resource_spec.rb +49 -0
- data/spec/lib/raml/parser/response_spec.rb +30 -0
- data/spec/lib/raml/parser/root_spec.rb +35 -0
- data/spec/lib/raml/parser.rb +49 -0
- data/spec/lib/raml/query_parameter_spec.rb +40 -0
- data/spec/lib/raml/resource_spec.rb +36 -0
- data/spec/lib/raml/response_spec.rb +25 -0
- data/spec/lib/raml/root_spec.rb +36 -0
- data/spec/spec_helper.rb +14 -0
- metadata +164 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5c055a6b5ac11a427a84bf58f3dd22d1d366c91d
|
4
|
+
data.tar.gz: efeb25b9f8bb5004c9f5f65d50264285739c1bee
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 0ceb137a50546a1a0ebbd5cdd3b30f3f62214cf46dc3084a5da2bdc3717b042c49a45b584e483089f64db07c5941a26425d1471e2535cf6facf92a86e3879687
|
7
|
+
data.tar.gz: 561a64c167180a4b151e644692730197c0b565c1d76342387e269a0c341c839ce189734eb14e28eb565cd55f9372dc23add0764ce069d62d49bf92785844ea56
|
data/.gitignore
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
.bundle
|
4
|
+
.config
|
5
|
+
.yardoc
|
6
|
+
Gemfile.lock
|
7
|
+
InstalledFiles
|
8
|
+
_yardoc
|
9
|
+
coverage
|
10
|
+
doc/
|
11
|
+
lib/bundler/man
|
12
|
+
pkg
|
13
|
+
rdoc
|
14
|
+
spec/reports
|
15
|
+
test/tmp
|
16
|
+
test/version_tmp
|
17
|
+
tmp
|
18
|
+
*.bundle
|
19
|
+
*.so
|
20
|
+
*.o
|
21
|
+
*.a
|
22
|
+
mkmf.log
|
data/.rspec
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 James Brennan
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# raml-rb
|
2
|
+
|
3
|
+
A RAML parser, implemented in Ruby.
|
4
|
+
|
5
|
+
## Usage
|
6
|
+
|
7
|
+
```
|
8
|
+
raml = Raml::Parser.parse("#%RAML 0.8\ntitle: World Music API\nbaseUri: http://example.api.com/{version}")
|
9
|
+
raml = Rank::Parser.parse_file('path/to/file.raml')
|
10
|
+
```
|
11
|
+
|
12
|
+
## Todo
|
13
|
+
|
14
|
+
0. Parameters for Resource Types and Traits.
|
15
|
+
0. Ensure all attributes are supported.
|
16
|
+
0. Add documentation generator.
|
17
|
+
|
18
|
+
## Author
|
19
|
+
|
20
|
+
James Brennan (james@jamesbrennan.ca)
|
data/Rakefile
ADDED
data/lib/raml/body.rb
ADDED
data/lib/raml/method.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'raml/body'
|
2
|
+
require 'raml/parser/util'
|
3
|
+
require 'raml/errors/unknown_attribute_error'
|
4
|
+
|
5
|
+
module Raml
|
6
|
+
class Parser
|
7
|
+
class Body
|
8
|
+
include Raml::Parser::Util
|
9
|
+
|
10
|
+
BASIC_ATTRIBUTES = %w[schema]
|
11
|
+
|
12
|
+
attr_accessor :body, :attributes
|
13
|
+
|
14
|
+
def parse(type, attributes)
|
15
|
+
@body = Raml::Body.new(type)
|
16
|
+
@attributes = prepare_attributes(attributes)
|
17
|
+
|
18
|
+
parse_attributes
|
19
|
+
|
20
|
+
body
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def parse_attributes
|
26
|
+
attributes.each do |key, value|
|
27
|
+
case key
|
28
|
+
when *BASIC_ATTRIBUTES
|
29
|
+
body.send("#{key}=".to_sym, value)
|
30
|
+
else
|
31
|
+
raise UnknownAttributeError.new "Unknown body key: #{key}"
|
32
|
+
end
|
33
|
+
end if attributes
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'raml/documentation'
|
2
|
+
require 'raml/errors/unknown_attribute_error'
|
3
|
+
|
4
|
+
module Raml
|
5
|
+
class Parser
|
6
|
+
class Documentation
|
7
|
+
include Raml::Parser::Util
|
8
|
+
|
9
|
+
BASIC_ATTRIBUTES = %w[title content]
|
10
|
+
|
11
|
+
attr_accessor :documentation, :attributes
|
12
|
+
|
13
|
+
def parse(attributes)
|
14
|
+
@documentation = Raml::Documentation.new
|
15
|
+
@attributes = prepare_attributes(attributes)
|
16
|
+
|
17
|
+
parse_attributes
|
18
|
+
|
19
|
+
documentation
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def parse_attributes
|
25
|
+
attributes.each do |key, value|
|
26
|
+
case key
|
27
|
+
when *BASIC_ATTRIBUTES
|
28
|
+
documentation.send("#{key}=".to_sym, value)
|
29
|
+
else
|
30
|
+
raise UnknownAttributeError.new "Unknown documentation key: #{key}"
|
31
|
+
end
|
32
|
+
end if attributes
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
require 'forwardable'
|
2
|
+
require 'raml/method'
|
3
|
+
require 'raml/parser/response'
|
4
|
+
require 'raml/parser/query_parameter'
|
5
|
+
require 'raml/parser/util'
|
6
|
+
require 'raml/errors/unknown_attribute_error'
|
7
|
+
|
8
|
+
module Raml
|
9
|
+
class Parser
|
10
|
+
class Method
|
11
|
+
extend Forwardable
|
12
|
+
include Raml::Parser::Util
|
13
|
+
|
14
|
+
BASIC_ATTRIBUTES = %w[description headers]
|
15
|
+
|
16
|
+
attr_accessor :method, :parent, :attributes
|
17
|
+
def_delegators :@parent, :traits
|
18
|
+
|
19
|
+
def initialize(parent)
|
20
|
+
@parent = parent
|
21
|
+
end
|
22
|
+
|
23
|
+
def parse(the_method, attributes)
|
24
|
+
@method = Raml::Method.new(the_method)
|
25
|
+
@attributes = prepare_attributes(attributes)
|
26
|
+
|
27
|
+
apply_parents_traits
|
28
|
+
parse_attributes
|
29
|
+
|
30
|
+
method
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def parse_attributes(attributes = @attributes)
|
36
|
+
attributes.each do |key, value|
|
37
|
+
case key
|
38
|
+
when *BASIC_ATTRIBUTES
|
39
|
+
method.send("#{key}=".to_sym, value)
|
40
|
+
when 'is'
|
41
|
+
apply_traits(value)
|
42
|
+
when 'responses'
|
43
|
+
parse_responses(value)
|
44
|
+
when 'query_parameters'
|
45
|
+
parse_query_parameters(value)
|
46
|
+
else
|
47
|
+
raise UnknownAttributeError.new "Unknown method key: #{key}"
|
48
|
+
end
|
49
|
+
end if attributes
|
50
|
+
end
|
51
|
+
|
52
|
+
def parse_responses(responses)
|
53
|
+
responses.each do |code, response_attributes|
|
54
|
+
method.responses << Raml::Parser::Response.new.parse(code, response_attributes)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def parse_query_parameters(query_parameters)
|
59
|
+
query_parameters.each do |name, parameter_attributes|
|
60
|
+
method.query_parameters << Raml::Parser::QueryParameter.new.parse(name, parameter_attributes)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def apply_parents_traits
|
65
|
+
apply_traits(parent.trait_names) if !parent.trait_names.nil? && parent.trait_names.length
|
66
|
+
end
|
67
|
+
|
68
|
+
def apply_traits(names)
|
69
|
+
names.each do |name|
|
70
|
+
apply_trait(name)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def apply_trait(name)
|
75
|
+
unless traits[name].nil?
|
76
|
+
trait_attributes = prepare_attributes(traits[name])
|
77
|
+
parse_attributes(trait_attributes)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'raml/parser/util'
|
2
|
+
require 'raml/query_parameter'
|
3
|
+
require 'raml/errors/unknown_attribute_error'
|
4
|
+
|
5
|
+
module Raml
|
6
|
+
class Parser
|
7
|
+
class QueryParameter
|
8
|
+
include Raml::Parser::Util
|
9
|
+
|
10
|
+
BASIC_ATTRIBUTES = %w[description type example]
|
11
|
+
|
12
|
+
attr_accessor :query_parameter, :attributes
|
13
|
+
|
14
|
+
def parse(name, attributes)
|
15
|
+
@query_parameter = Raml::QueryParameter.new(name)
|
16
|
+
|
17
|
+
@attributes = prepare_attributes(attributes)
|
18
|
+
parse_attributes(attributes)
|
19
|
+
|
20
|
+
query_parameter
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def parse_attributes(attributes)
|
26
|
+
attributes.each do |key, value|
|
27
|
+
key = underscore(key)
|
28
|
+
case key
|
29
|
+
when *BASIC_ATTRIBUTES
|
30
|
+
query_parameter.send("#{key}=".to_sym, value)
|
31
|
+
else
|
32
|
+
raise UnknownAttributeError.new "Unknown query paramter key: #{key}"
|
33
|
+
end
|
34
|
+
end if attributes
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'forwardable'
|
2
|
+
require 'raml/resource'
|
3
|
+
require 'raml/parser/method'
|
4
|
+
require 'raml/parser/util'
|
5
|
+
require 'raml/errors/unknown_attribute_error'
|
6
|
+
|
7
|
+
module Raml
|
8
|
+
class Parser
|
9
|
+
class Resource
|
10
|
+
extend Forwardable
|
11
|
+
include Raml::Parser::Util
|
12
|
+
|
13
|
+
METHODS = %w[get put post delete]
|
14
|
+
|
15
|
+
attr_accessor :parent_node, :resource, :trait_names, :attributes
|
16
|
+
def_delegators :@parent_node, :resources
|
17
|
+
def_delegators :@parent, :traits, :resource_types
|
18
|
+
|
19
|
+
def initialize(parent)
|
20
|
+
@parent = parent
|
21
|
+
end
|
22
|
+
|
23
|
+
def parse(parent_node, uri_partial, attributes)
|
24
|
+
@parent_node = parent_node
|
25
|
+
@resource = Raml::Resource.new(@parent_node, uri_partial)
|
26
|
+
@attributes = prepare_attributes(attributes)
|
27
|
+
parse_attributes
|
28
|
+
resource
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def parse_attributes(attributes = @attributes)
|
34
|
+
attributes.each do |key, value|
|
35
|
+
key = underscore(key)
|
36
|
+
case key
|
37
|
+
when /^\//
|
38
|
+
resources << Raml::Parser::Resource.new(self).parse(resource, key, value)
|
39
|
+
when *METHODS
|
40
|
+
resource.methods << Raml::Parser::Method.new(self).parse(key, value)
|
41
|
+
when 'type'
|
42
|
+
apply_resource_type(value)
|
43
|
+
when 'is'
|
44
|
+
@trait_names = value
|
45
|
+
else
|
46
|
+
raise UnknownAttributeError.new "Unknown resource key: #{key}"
|
47
|
+
end
|
48
|
+
end if attributes
|
49
|
+
end
|
50
|
+
|
51
|
+
def apply_resource_type(name)
|
52
|
+
unless resource_types[name].nil?
|
53
|
+
resource_attributes = prepare_attributes(resource_types[name])
|
54
|
+
parse_attributes(resource_attributes)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'raml/response'
|
2
|
+
require 'raml/parser/util'
|
3
|
+
require 'raml/parser/body'
|
4
|
+
require 'raml/errors/unknown_attribute_error'
|
5
|
+
|
6
|
+
module Raml
|
7
|
+
class Parser
|
8
|
+
class Response
|
9
|
+
include Raml::Parser::Util
|
10
|
+
|
11
|
+
attr_accessor :response, :attributes
|
12
|
+
|
13
|
+
def parse(code, attributes)
|
14
|
+
@response = Raml::Response.new(code)
|
15
|
+
@attributes = prepare_attributes(attributes)
|
16
|
+
parse_attributes
|
17
|
+
response
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def parse_attributes
|
23
|
+
attributes.each do |key, value|
|
24
|
+
key = underscore(key)
|
25
|
+
case key
|
26
|
+
when 'body'
|
27
|
+
parse_bodies(value)
|
28
|
+
else
|
29
|
+
raise UnknownAttributeError.new "Unknown response key: #{key}"
|
30
|
+
end
|
31
|
+
end if attributes
|
32
|
+
end
|
33
|
+
|
34
|
+
def parse_bodies(bodies)
|
35
|
+
bodies.each do |type, body_attributes|
|
36
|
+
response.bodies << Raml::Parser::Body.new.parse(type, body_attributes)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'raml/root'
|
2
|
+
require 'raml/parser/resource'
|
3
|
+
require 'raml/parser/documentation'
|
4
|
+
require 'raml/parser/util'
|
5
|
+
require 'raml/errors/unknown_attribute_error'
|
6
|
+
|
7
|
+
module Raml
|
8
|
+
class Parser
|
9
|
+
class Root
|
10
|
+
include Raml::Parser::Util
|
11
|
+
|
12
|
+
BASIC_ATTRIBUTES = %w[title base_uri version]
|
13
|
+
|
14
|
+
attr_accessor :root, :traits, :resource_types, :attributes
|
15
|
+
|
16
|
+
def initialize
|
17
|
+
@traits = {}
|
18
|
+
end
|
19
|
+
|
20
|
+
def parse(attributes)
|
21
|
+
@root = Raml::Root.new
|
22
|
+
@attributes = prepare_attributes(attributes)
|
23
|
+
parse_attributes
|
24
|
+
root
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def parse_attributes
|
30
|
+
attributes.each do |key, value|
|
31
|
+
key = underscore(key)
|
32
|
+
case key
|
33
|
+
when *BASIC_ATTRIBUTES
|
34
|
+
root.send("#{key}=".to_sym, value)
|
35
|
+
when 'traits'
|
36
|
+
parse_traits(value)
|
37
|
+
when 'resource_types'
|
38
|
+
parse_resource_types(value)
|
39
|
+
when 'documentation'
|
40
|
+
parse_documentation(value)
|
41
|
+
when /^\//
|
42
|
+
root.resources << Raml::Parser::Resource.new(self).parse(root, key, value)
|
43
|
+
else
|
44
|
+
raise UnknownAttributeError.new "Unknown root key: #{key}"
|
45
|
+
end
|
46
|
+
end if attributes
|
47
|
+
end
|
48
|
+
|
49
|
+
def parse_documentation(documentations)
|
50
|
+
documentations.each do |documentation_attributes|
|
51
|
+
root.documentations << Raml::Parser::Documentation.new.parse(documentation_attributes)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def parse_resource_types(resource_types)
|
56
|
+
resource_types.each do |type|
|
57
|
+
type.each do |name, type_attributes|
|
58
|
+
@resource_types[name] = type_attributes
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def parse_traits(traits)
|
64
|
+
traits.each do |trait|
|
65
|
+
trait.each do |name, trait_attributes|
|
66
|
+
@traits[name] = trait_attributes
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Raml
|
2
|
+
class Parser
|
3
|
+
module Util
|
4
|
+
|
5
|
+
private
|
6
|
+
|
7
|
+
def prepare_attributes(attributes)
|
8
|
+
hash = {}
|
9
|
+
attributes.each do |key, value|
|
10
|
+
hash[underscore(key)] = parse_value(value)
|
11
|
+
end if attributes.respond_to?(:each)
|
12
|
+
hash
|
13
|
+
end
|
14
|
+
|
15
|
+
def parse_value(value)
|
16
|
+
if value.is_a?(String) && value.strip.start_with?('include!')
|
17
|
+
File.read value.match(/include!(.*)/)[1].strip
|
18
|
+
else
|
19
|
+
value
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def underscore(string)
|
24
|
+
string.gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
|
25
|
+
.gsub(/([a-z\d])([A-Z])/,'\1_\2')
|
26
|
+
.downcase
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/raml/parser.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'raml/parser/root'
|
3
|
+
require 'raml/parser/resource'
|
4
|
+
require 'raml/parser/method'
|
5
|
+
require 'raml/parser/response'
|
6
|
+
require 'raml/parser/body'
|
7
|
+
require 'raml/parser/query_parameter'
|
8
|
+
|
9
|
+
module Raml
|
10
|
+
class Parser
|
11
|
+
|
12
|
+
def parse(yaml)
|
13
|
+
raml = YAML.load(yaml)
|
14
|
+
Raml::Parser::Root.new.parse(raml)
|
15
|
+
end
|
16
|
+
|
17
|
+
def parse_file(path)
|
18
|
+
parse File.read(path)
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.parse(yaml)
|
22
|
+
self.new.parse(yaml)
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.parse_file(path)
|
26
|
+
self.new.parse_file(path)
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Raml
|
2
|
+
class Resource
|
3
|
+
attr_accessor :parent, :methods, :uri_partial
|
4
|
+
|
5
|
+
def initialize(parent, uri_partial)
|
6
|
+
@parent = parent
|
7
|
+
@uri_partial = uri_partial
|
8
|
+
@methods = []
|
9
|
+
end
|
10
|
+
|
11
|
+
def uri
|
12
|
+
File.join(parent.uri, uri_partial)
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
data/lib/raml/root.rb
ADDED
data/lib/raml/version.rb
ADDED
data/lib/raml-rb.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'raml'
|
data/lib/raml.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'raml/version'
|
2
|
+
require 'raml/parser'
|
3
|
+
require 'raml/errors/unknown_attribute_error'
|
4
|
+
require 'raml/root'
|
5
|
+
require 'raml/resource'
|
6
|
+
require 'raml/method'
|
7
|
+
require 'raml/response'
|
8
|
+
require 'raml/body'
|
9
|
+
require 'raml/query_parameter'
|
10
|
+
|
11
|
+
module Raml
|
12
|
+
end
|
data/raml-rb.gemspec
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'raml/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'raml-rb'
|
8
|
+
spec.version = Raml::VERSION
|
9
|
+
spec.authors = ['James Brennan']
|
10
|
+
spec.email = ['james@jamesbrennan.ca']
|
11
|
+
spec.summary = %q{A RAML parser implemented in Ruby}
|
12
|
+
spec.homepage = 'https://github.com/jpb/raml-rb'
|
13
|
+
spec.license = 'MIT'
|
14
|
+
|
15
|
+
spec.files = `git ls-files`.split("\n")
|
16
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
17
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
|
+
spec.require_paths = ['lib']
|
19
|
+
|
20
|
+
spec.add_development_dependency 'bundler', '~> 1.6'
|
21
|
+
spec.add_development_dependency 'rake', '~>10.3'
|
22
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
23
|
+
spec.add_development_dependency 'rspec-its', '~> 1.0'
|
24
|
+
end
|