roar 0.12.9 → 1.0.0.beta1
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 +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +8 -10
- data/CHANGES.markdown +24 -2
- data/Gemfile +5 -2
- data/README.markdown +132 -28
- data/TODO.markdown +9 -7
- data/examples/example.rb +2 -0
- data/examples/example_server.rb +19 -3
- data/gemfiles/Gemfile.representable-2.0 +5 -0
- data/gemfiles/Gemfile.representable-2.1 +5 -0
- data/lib/roar.rb +1 -1
- data/lib/roar/client.rb +38 -0
- data/lib/roar/{representer/feature/coercion.rb → coercion.rb} +2 -1
- data/lib/roar/decorator.rb +3 -11
- data/lib/roar/http_verbs.rb +88 -0
- data/lib/roar/hypermedia.rb +174 -0
- data/lib/roar/json.rb +55 -0
- data/lib/roar/json/collection.rb +3 -0
- data/lib/roar/{representer/json → json}/collection_json.rb +20 -20
- data/lib/roar/{representer/json → json}/hal.rb +33 -31
- data/lib/roar/json/hash.rb +3 -0
- data/lib/roar/json/json_api.rb +208 -0
- data/lib/roar/representer.rb +3 -36
- data/lib/roar/transport/faraday.rb +49 -0
- data/lib/roar/transport/net_http.rb +57 -0
- data/lib/roar/transport/net_http/request.rb +72 -0
- data/lib/roar/version.rb +1 -1
- data/lib/roar/xml.rb +54 -0
- data/roar.gemspec +5 -4
- data/test/client_test.rb +3 -3
- data/test/coercion_feature_test.rb +6 -3
- data/test/collection_json_test.rb +8 -10
- data/test/decorator_test.rb +27 -15
- data/test/faraday_http_transport_test.rb +13 -15
- data/test/hal_json_test.rb +16 -16
- data/test/hal_links_test.rb +3 -3
- data/test/http_verbs_test.rb +17 -22
- data/test/hypermedia_feature_test.rb +23 -45
- data/test/hypermedia_test.rb +11 -23
- data/test/integration/band_representer.rb +2 -2
- data/test/integration/runner.rb +4 -3
- data/test/integration/server.rb +13 -2
- data/test/integration/ssl_server.rb +1 -1
- data/test/json_api_test.rb +336 -0
- data/test/json_representer_test.rb +16 -12
- data/test/lib/runner.rb +134 -0
- data/test/lonely_test.rb +9 -0
- data/test/net_http_transport_test.rb +4 -4
- data/test/representer_test.rb +2 -2
- data/test/{lib/roar/representer/transport/net_http/request_test.rb → ssl_client_certs_test.rb} +43 -5
- data/test/test_helper.rb +12 -5
- data/test/xml_representer_test.rb +26 -166
- metadata +49 -29
- data/gemfiles/Gemfile.representable-1.7 +0 -6
- data/gemfiles/Gemfile.representable-1.8 +0 -6
- data/lib/roar/representer/feature/client.rb +0 -39
- data/lib/roar/representer/feature/http_verbs.rb +0 -95
- data/lib/roar/representer/feature/hypermedia.rb +0 -175
- data/lib/roar/representer/json.rb +0 -67
- data/lib/roar/representer/transport/faraday.rb +0 -50
- data/lib/roar/representer/transport/net_http.rb +0 -59
- data/lib/roar/representer/transport/net_http/request.rb +0 -75
- data/lib/roar/representer/xml.rb +0 -61
data/test/lonely_test.rb
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
require "roar/json/collection"
|
4
|
+
require "roar/json/hash"
|
5
|
+
|
6
|
+
class LonelyCollectionTest < MiniTest::Spec
|
7
|
+
it { Roar::JSON::Collection.must_equal Representable::JSON::Collection }
|
8
|
+
it { Roar::JSON::Hash.must_equal Representable::JSON::Hash }
|
9
|
+
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
require 'test_helper'
|
2
|
-
require 'roar/
|
2
|
+
require 'roar/transport/net_http'
|
3
3
|
|
4
4
|
class NetHTTPTransportTest < MiniTest::Spec
|
5
5
|
let(:url) { "http://localhost:4567/method" }
|
6
6
|
let(:body) { "booty" }
|
7
7
|
let(:as) { "application/xml" }
|
8
|
-
let (:transport) { Roar::
|
8
|
+
let (:transport) { Roar::Transport::NetHTTP.new }
|
9
9
|
|
10
10
|
it "#get_uri returns response" do
|
11
11
|
transport.get_uri(:uri => url, :as => as).must_match_net_response :get, url, as
|
@@ -47,13 +47,13 @@ class NetHTTPTransportTest < MiniTest::Spec
|
|
47
47
|
|
48
48
|
describe "basic auth" do
|
49
49
|
it "raises when no credentials provided" do
|
50
|
-
assert_raises Roar::
|
50
|
+
assert_raises Roar::Transport::UnauthorizedError do
|
51
51
|
transport.get_uri(:uri => "http://localhost:4567/protected/bands/bodyjar", :as => "application/json")
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
55
55
|
it "raises when wrong credentials provided" do
|
56
|
-
assert_raises Roar::
|
56
|
+
assert_raises Roar::Transport::UnauthorizedError do
|
57
57
|
transport.get_uri(:uri => "http://localhost:4567/protected/bands/bodyjar", :as => "application/json", :basic_auth => ["admin", "wrong--!!!--password"])
|
58
58
|
end
|
59
59
|
end
|
data/test/representer_test.rb
CHANGED
@@ -22,13 +22,13 @@ class RepresenterTest < MiniTest::Spec
|
|
22
22
|
describe "Inheritance" do
|
23
23
|
it "properly inherits properties from modules" do
|
24
24
|
module PersonRepresentation
|
25
|
-
include Roar::
|
25
|
+
include Roar::JSON
|
26
26
|
property :name
|
27
27
|
end
|
28
28
|
|
29
29
|
class Person
|
30
30
|
include AttributesConstructor
|
31
|
-
include Roar::
|
31
|
+
include Roar::JSON
|
32
32
|
include PersonRepresentation
|
33
33
|
attr_accessor :name
|
34
34
|
end
|
data/test/{lib/roar/representer/transport/net_http/request_test.rb → ssl_client_certs_test.rb}
RENAMED
@@ -1,9 +1,47 @@
|
|
1
1
|
require 'test_helper'
|
2
|
-
require 'roar/representer/transport/net_http/request'
|
3
2
|
|
4
|
-
|
3
|
+
require "roar"
|
4
|
+
require 'roar/transport/net_http/request'
|
5
|
+
require 'roar/transport/net_http'
|
5
6
|
|
6
|
-
|
7
|
+
|
8
|
+
class SslClientCertsTest < MiniTest::Spec
|
9
|
+
|
10
|
+
describe Roar::Transport::NetHTTP do
|
11
|
+
|
12
|
+
describe "instance methods" do
|
13
|
+
|
14
|
+
let(:url) { "http://www.bbc.co.uk" }
|
15
|
+
let(:as) { "application/xml" }
|
16
|
+
|
17
|
+
let(:transport) { Roar::Transport::NetHTTP.new }
|
18
|
+
|
19
|
+
describe "options passed to the request object (private #call method)" do
|
20
|
+
|
21
|
+
let(:options) { { uri: url, as: as, pem_file: "test/fixtures/sample.pem", ssl_verify_mode: "ssl_verify_mode" } }
|
22
|
+
|
23
|
+
describe "option handling" do
|
24
|
+
|
25
|
+
it "provides all options to the Request object" do
|
26
|
+
|
27
|
+
request_mock = MiniTest::Mock.new
|
28
|
+
request_mock.expect :call, nil, [Net::HTTP::Get]
|
29
|
+
|
30
|
+
options_assertions = lambda { |argument_options|
|
31
|
+
assert_equal argument_options, options
|
32
|
+
request_mock
|
33
|
+
}
|
34
|
+
|
35
|
+
Roar::Transport::NetHTTP::Request.stub :new, options_assertions do
|
36
|
+
transport.get_uri(options)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe Roar::Transport::NetHTTP::Request do
|
7
45
|
|
8
46
|
describe "instance methods" do
|
9
47
|
describe "#initialize" do
|
@@ -13,7 +51,7 @@ class NetHTTPTransportRequestTest < MiniTest::Spec
|
|
13
51
|
let(:uri) { URI.parse("http://www.bbc.co.uk") }
|
14
52
|
let(:options) { { uri: uri, pem_file: pem_file, ssl_verify_mode: ssl_verify_mode } }
|
15
53
|
|
16
|
-
let(:request) { Roar::
|
54
|
+
let(:request) { Roar::Transport::NetHTTP::Request.new(options) }
|
17
55
|
let(:net_http_instance) { request.instance_variable_get(:@http) }
|
18
56
|
let(:ssl_verify_mode) { nil }
|
19
57
|
|
@@ -30,7 +68,7 @@ class NetHTTPTransportRequestTest < MiniTest::Spec
|
|
30
68
|
end
|
31
69
|
|
32
70
|
it "sets the client cert" do
|
33
|
-
|
71
|
+
assert_equal(net_http_instance.cert.to_s, cert.to_s)
|
34
72
|
end
|
35
73
|
it "sets the client key" do
|
36
74
|
assert_equal(net_http_instance.key.to_s, key.to_s)
|
data/test/test_helper.rb
CHANGED
@@ -2,8 +2,8 @@ require 'minitest/autorun'
|
|
2
2
|
require 'ostruct'
|
3
3
|
|
4
4
|
require 'roar/representer'
|
5
|
-
require 'roar/
|
6
|
-
require 'roar/
|
5
|
+
require 'roar/http_verbs'
|
6
|
+
require 'roar/json/hal'
|
7
7
|
|
8
8
|
module AttributesConstructor # TODO: remove me.
|
9
9
|
def initialize(attrs={})
|
@@ -24,16 +24,16 @@ class Album < OpenStruct
|
|
24
24
|
end
|
25
25
|
|
26
26
|
require "test_xml/mini_test"
|
27
|
-
require "roar/
|
27
|
+
require "roar/xml"
|
28
28
|
|
29
29
|
require "integration/runner"
|
30
30
|
|
31
31
|
MiniTest::Spec.class_eval do
|
32
32
|
def link(options)
|
33
|
-
Roar::
|
33
|
+
Roar::Hypermedia::Hyperlink.new(options)
|
34
34
|
end
|
35
35
|
|
36
|
-
def self.representer_for(modules=[Roar::
|
36
|
+
def self.representer_for(modules=[Roar::JSON, Roar::Hypermedia], &block)
|
37
37
|
let (:rpr) do
|
38
38
|
Module.new do
|
39
39
|
include *modules.reverse
|
@@ -51,3 +51,10 @@ MiniTest::Spec.class_eval do
|
|
51
51
|
%w(get post put delete).each(&block)
|
52
52
|
end
|
53
53
|
end
|
54
|
+
|
55
|
+
|
56
|
+
Roar::Hypermedia::Hyperlink.class_eval do
|
57
|
+
def ==(b)
|
58
|
+
@attrs == b.instance_variable_get(:@attrs)
|
59
|
+
end
|
60
|
+
end
|
@@ -1,192 +1,52 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
|
-
class ItemRepresenter
|
4
|
-
include AttributesConstructor
|
5
|
-
include Roar::Representer::XML
|
6
|
-
self.representation_wrap= :item
|
7
|
-
property :value
|
8
|
-
attr_accessor :value
|
9
|
-
end
|
10
|
-
|
11
|
-
class PositionRepresenter
|
12
|
-
include AttributesConstructor
|
13
|
-
include Roar::Representer::XML
|
14
|
-
self.representation_wrap= :position
|
15
|
-
property :id
|
16
|
-
property :item, :class => ItemRepresenter
|
17
|
-
attr_accessor :id, :item
|
18
|
-
end
|
19
|
-
|
20
|
-
|
21
3
|
class XMLRepresenterFunctionalTest < MiniTest::Spec
|
22
|
-
|
23
|
-
include
|
24
|
-
attr_accessor :id, :items
|
25
|
-
end
|
26
|
-
|
27
|
-
class GreedyOrder < Order
|
28
|
-
end
|
4
|
+
module OrderRepresenter
|
5
|
+
include Roar::XML
|
29
6
|
|
30
|
-
class TestXmlRepresenter
|
31
|
-
include Roar::Representer::XML
|
32
|
-
self.representation_wrap= :order
|
33
7
|
property :id
|
34
|
-
|
8
|
+
self.representation_wrap = :order
|
35
9
|
end
|
36
10
|
|
11
|
+
Order = Struct.new(:id, :items)
|
37
12
|
|
38
|
-
describe "
|
39
|
-
|
40
|
-
@m = {"id" => "1"}
|
41
|
-
@o = Order.new(@m)
|
13
|
+
describe "#to_xml" do
|
14
|
+
let (:order) { Order.new(1).extend(OrderRepresenter) }
|
42
15
|
|
43
|
-
|
44
|
-
|
45
|
-
@i.value = "Beer"
|
46
|
-
end
|
16
|
+
# empty model
|
17
|
+
it { Order.new.extend(OrderRepresenter).to_xml.must_equal_xml "<order/>" }
|
47
18
|
|
48
|
-
|
49
|
-
|
50
|
-
assert_xml_equal "<order/>", @r.to_xml
|
19
|
+
# populated model
|
20
|
+
it { order.to_xml.must_equal_xml "<order><id>1</id></order>" }
|
51
21
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
@r.id = 2
|
56
|
-
assert_xml_equal "<rap><id>2</id></rap>", @r.to_xml(:wrap => :rap)
|
57
|
-
end
|
58
|
-
|
59
|
-
it "is aliased by #serialize" do
|
60
|
-
assert_equal @r.to_xml, @r.serialize
|
61
|
-
end
|
62
|
-
|
63
|
-
it "accepts :include and :exclude" do
|
64
|
-
assert_equal '<order/>', @r.to_xml(:exclude => [:id])
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
describe "#from_xml" do
|
69
|
-
it "deserializes object" do
|
70
|
-
@order = Order.new.from_xml("<order><id>1</id></order>")
|
71
|
-
assert_equal "1", @order.id
|
72
|
-
end
|
73
|
-
|
74
|
-
it "is aliased by #deserialize" do
|
75
|
-
@order = Order.new.deserialize("<order><id>1</id></order>")
|
76
|
-
assert_equal "1", @order.id
|
77
|
-
end
|
78
|
-
|
79
|
-
it "accepts :include and :exclude" do
|
80
|
-
@order = Order.new.deserialize("<order><id>1</id></order>", :exclude => [:id])
|
81
|
-
assert_equal nil, @order.id
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
|
86
|
-
describe "XML.from_xml" do
|
87
|
-
class Order
|
88
|
-
include Roar::Representer::XML
|
89
|
-
property :id
|
90
|
-
property :pending
|
91
|
-
attr_accessor :id, :pending
|
92
|
-
end
|
93
|
-
|
94
|
-
it "is aliased to #deserialize" do
|
95
|
-
assert_equal TestXmlRepresenter.from_xml("<order/>").id, TestXmlRepresenter.deserialize("<order/>").id
|
96
|
-
end
|
97
|
-
|
98
|
-
it "accepts :exclude option" do
|
99
|
-
order = Order.from_xml(%{<order><id>1</id><pending>1</pending></order>}, :exclude => [:id])
|
100
|
-
assert_equal nil, order.id
|
101
|
-
assert_equal "1", order.pending
|
102
|
-
end
|
103
|
-
|
104
|
-
it "accepts :include option" do
|
105
|
-
order = Order.from_xml(%{<order><id>1</id><pending>1</pending></order>}, :include => [:id])
|
106
|
-
assert_equal "1", order.id
|
107
|
-
assert_equal nil, order.pending
|
108
|
-
end
|
109
|
-
end
|
22
|
+
# with wrap
|
23
|
+
it { order.to_xml(wrap: :rap).must_equal_xml "<rap><id>1</id></rap>" }
|
110
24
|
|
25
|
+
# aliased to #serialize
|
26
|
+
it { order.to_xml.must_equal order.serialize }
|
111
27
|
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
assert_equal "1", @m.id
|
116
|
-
end
|
117
|
-
|
118
|
-
#it ".from_xml still works with nil" do
|
119
|
-
# assert TestXmlRepresenter.from_xml(nil)
|
120
|
-
#end
|
121
|
-
|
122
|
-
end
|
123
|
-
|
124
|
-
|
125
|
-
describe "with a typed attribute" do
|
126
|
-
before do
|
127
|
-
@r = PositionRepresenter.new("id" => "1")
|
128
|
-
end
|
129
|
-
|
130
|
-
it "#serialize skips empty :item" do
|
131
|
-
assert_xml_equal "<position><id>1</id></position>", @r.to_xml
|
132
|
-
end
|
133
|
-
|
134
|
-
it "#to_xml delegates to ItemRepresenter#to_xml" do
|
135
|
-
@r.item = @i
|
136
|
-
assert_xml_equal "<position><id>1</id><item><value>Beer</value></item></position>", @r.to_xml
|
137
|
-
end
|
138
|
-
|
139
|
-
it ".from_xml typecasts :item" do
|
140
|
-
@m = PositionRepresenter.from_xml("<position><id>1</id><item><value>beer</value></item>\n</position>")
|
141
|
-
|
142
|
-
assert_equal "1", @m.id
|
143
|
-
assert_equal "beer", @m.item.value
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
|
-
|
148
|
-
describe "with a typed list" do
|
149
|
-
before do
|
150
|
-
@c = Class.new do
|
151
|
-
include AttributesConstructor
|
152
|
-
include Roar::Representer::XML
|
153
|
-
|
154
|
-
self.representation_wrap= :order
|
155
|
-
property :id
|
156
|
-
collection :items, :class => ItemRepresenter, :as => :item
|
157
|
-
attr_accessor :id, :items
|
158
|
-
end
|
159
|
-
|
160
|
-
@r = @c.new("id" => 1)
|
161
|
-
end
|
162
|
-
|
163
|
-
it "#serialize_model skips empty :item" do
|
164
|
-
assert_xml_equal "<order><id>1</id></order>", @r.to_xml
|
165
|
-
end
|
166
|
-
|
167
|
-
it "#serialize delegates to ItemXmlRepresenter#to_xml in list" do
|
168
|
-
@r.items = [ItemRepresenter.new("value" => "Bier")]
|
28
|
+
# accepts options
|
29
|
+
it { order.to_xml(exclude: [:id]).must_equal_xml "<order/>" }
|
30
|
+
end
|
169
31
|
|
170
|
-
|
171
|
-
|
172
|
-
end
|
32
|
+
describe "#from_xml" do
|
33
|
+
let (:order) { Order.new.extend(OrderRepresenter) }
|
173
34
|
|
174
|
-
|
175
|
-
|
35
|
+
# parses
|
36
|
+
it { order.from_xml("<order><id>1</id></order>").id.must_equal "1" }
|
176
37
|
|
177
|
-
|
178
|
-
|
179
|
-
assert_equal "beer", @m.items.first.value
|
180
|
-
end
|
181
|
-
end
|
38
|
+
# aliased to #deserialize
|
39
|
+
it { order.deserialize("<order><id>1</id></order>").id.must_equal "1" }
|
182
40
|
|
41
|
+
# accepts options
|
42
|
+
it { order.from_xml("<order><id>1</id></order>", exclude: [:id]).id.must_equal nil }
|
183
43
|
end
|
184
44
|
end
|
185
45
|
|
186
46
|
class XmlHyperlinkRepresenterTest < MiniTest::Spec
|
187
47
|
describe "API" do
|
188
48
|
before do
|
189
|
-
@link = Roar::
|
49
|
+
@link = Roar::Hypermedia::Hyperlink.new.extend(Roar::XML::HyperlinkRepresenter).from_xml(%{<link rel="self" href="http://roar.apotomo.de" media="web"/>})
|
190
50
|
end
|
191
51
|
|
192
52
|
it "responds to #rel" do
|
metadata
CHANGED
@@ -1,35 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Sutterer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: representable
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 1.6.0
|
20
|
-
- - "<"
|
21
18
|
- !ruby/object:Gem::Version
|
22
19
|
version: 2.0.0
|
20
|
+
- - "<="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 3.0.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 1.6.0
|
30
|
-
- - "<"
|
31
28
|
- !ruby/object:Gem::Version
|
32
29
|
version: 2.0.0
|
30
|
+
- - "<="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 3.0.0
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: rake
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -62,16 +62,16 @@ dependencies:
|
|
62
62
|
name: minitest
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
|
-
- -
|
65
|
+
- - ">="
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: 5.
|
67
|
+
version: 5.4.2
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
|
-
- -
|
72
|
+
- - ">="
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: 5.
|
74
|
+
version: 5.4.2
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: sinatra
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: '0'
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
|
-
name:
|
90
|
+
name: sinatra-contrib
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
92
92
|
requirements:
|
93
93
|
- - ">="
|
@@ -100,6 +100,20 @@ dependencies:
|
|
100
100
|
- - ">="
|
101
101
|
- !ruby/object:Gem::Version
|
102
102
|
version: '0'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: virtus
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 1.0.0
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: 1.0.0
|
103
117
|
- !ruby/object:Gem::Dependency
|
104
118
|
name: faraday
|
105
119
|
requirement: !ruby/object:Gem::Requirement
|
@@ -146,23 +160,26 @@ files:
|
|
146
160
|
- TODO.markdown
|
147
161
|
- examples/example.rb
|
148
162
|
- examples/example_server.rb
|
149
|
-
- gemfiles/Gemfile.representable-
|
150
|
-
- gemfiles/Gemfile.representable-1
|
163
|
+
- gemfiles/Gemfile.representable-2.0
|
164
|
+
- gemfiles/Gemfile.representable-2.1
|
151
165
|
- lib/roar.rb
|
166
|
+
- lib/roar/client.rb
|
167
|
+
- lib/roar/coercion.rb
|
152
168
|
- lib/roar/decorator.rb
|
169
|
+
- lib/roar/http_verbs.rb
|
170
|
+
- lib/roar/hypermedia.rb
|
171
|
+
- lib/roar/json.rb
|
172
|
+
- lib/roar/json/collection.rb
|
173
|
+
- lib/roar/json/collection_json.rb
|
174
|
+
- lib/roar/json/hal.rb
|
175
|
+
- lib/roar/json/hash.rb
|
176
|
+
- lib/roar/json/json_api.rb
|
153
177
|
- lib/roar/representer.rb
|
154
|
-
- lib/roar/
|
155
|
-
- lib/roar/
|
156
|
-
- lib/roar/
|
157
|
-
- lib/roar/representer/feature/hypermedia.rb
|
158
|
-
- lib/roar/representer/json.rb
|
159
|
-
- lib/roar/representer/json/collection_json.rb
|
160
|
-
- lib/roar/representer/json/hal.rb
|
161
|
-
- lib/roar/representer/transport/faraday.rb
|
162
|
-
- lib/roar/representer/transport/net_http.rb
|
163
|
-
- lib/roar/representer/transport/net_http/request.rb
|
164
|
-
- lib/roar/representer/xml.rb
|
178
|
+
- lib/roar/transport/faraday.rb
|
179
|
+
- lib/roar/transport/net_http.rb
|
180
|
+
- lib/roar/transport/net_http/request.rb
|
165
181
|
- lib/roar/version.rb
|
182
|
+
- lib/roar/xml.rb
|
166
183
|
- roar.gemspec
|
167
184
|
- test/client_test.rb
|
168
185
|
- test/coercion_feature_test.rb
|
@@ -180,10 +197,13 @@ files:
|
|
180
197
|
- test/integration/runner.rb
|
181
198
|
- test/integration/server.rb
|
182
199
|
- test/integration/ssl_server.rb
|
200
|
+
- test/json_api_test.rb
|
183
201
|
- test/json_representer_test.rb
|
184
|
-
- test/lib/
|
202
|
+
- test/lib/runner.rb
|
203
|
+
- test/lonely_test.rb
|
185
204
|
- test/net_http_transport_test.rb
|
186
205
|
- test/representer_test.rb
|
206
|
+
- test/ssl_client_certs_test.rb
|
187
207
|
- test/test_helper.rb
|
188
208
|
- test/xml_representer_test.rb
|
189
209
|
homepage: http://rubygems.org/gems/roar
|
@@ -201,9 +221,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
201
221
|
version: '0'
|
202
222
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
203
223
|
requirements:
|
204
|
-
- - "
|
224
|
+
- - ">"
|
205
225
|
- !ruby/object:Gem::Version
|
206
|
-
version:
|
226
|
+
version: 1.3.1
|
207
227
|
requirements: []
|
208
228
|
rubyforge_project:
|
209
229
|
rubygems_version: 2.2.2
|