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.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +8 -10
  4. data/CHANGES.markdown +24 -2
  5. data/Gemfile +5 -2
  6. data/README.markdown +132 -28
  7. data/TODO.markdown +9 -7
  8. data/examples/example.rb +2 -0
  9. data/examples/example_server.rb +19 -3
  10. data/gemfiles/Gemfile.representable-2.0 +5 -0
  11. data/gemfiles/Gemfile.representable-2.1 +5 -0
  12. data/lib/roar.rb +1 -1
  13. data/lib/roar/client.rb +38 -0
  14. data/lib/roar/{representer/feature/coercion.rb → coercion.rb} +2 -1
  15. data/lib/roar/decorator.rb +3 -11
  16. data/lib/roar/http_verbs.rb +88 -0
  17. data/lib/roar/hypermedia.rb +174 -0
  18. data/lib/roar/json.rb +55 -0
  19. data/lib/roar/json/collection.rb +3 -0
  20. data/lib/roar/{representer/json → json}/collection_json.rb +20 -20
  21. data/lib/roar/{representer/json → json}/hal.rb +33 -31
  22. data/lib/roar/json/hash.rb +3 -0
  23. data/lib/roar/json/json_api.rb +208 -0
  24. data/lib/roar/representer.rb +3 -36
  25. data/lib/roar/transport/faraday.rb +49 -0
  26. data/lib/roar/transport/net_http.rb +57 -0
  27. data/lib/roar/transport/net_http/request.rb +72 -0
  28. data/lib/roar/version.rb +1 -1
  29. data/lib/roar/xml.rb +54 -0
  30. data/roar.gemspec +5 -4
  31. data/test/client_test.rb +3 -3
  32. data/test/coercion_feature_test.rb +6 -3
  33. data/test/collection_json_test.rb +8 -10
  34. data/test/decorator_test.rb +27 -15
  35. data/test/faraday_http_transport_test.rb +13 -15
  36. data/test/hal_json_test.rb +16 -16
  37. data/test/hal_links_test.rb +3 -3
  38. data/test/http_verbs_test.rb +17 -22
  39. data/test/hypermedia_feature_test.rb +23 -45
  40. data/test/hypermedia_test.rb +11 -23
  41. data/test/integration/band_representer.rb +2 -2
  42. data/test/integration/runner.rb +4 -3
  43. data/test/integration/server.rb +13 -2
  44. data/test/integration/ssl_server.rb +1 -1
  45. data/test/json_api_test.rb +336 -0
  46. data/test/json_representer_test.rb +16 -12
  47. data/test/lib/runner.rb +134 -0
  48. data/test/lonely_test.rb +9 -0
  49. data/test/net_http_transport_test.rb +4 -4
  50. data/test/representer_test.rb +2 -2
  51. data/test/{lib/roar/representer/transport/net_http/request_test.rb → ssl_client_certs_test.rb} +43 -5
  52. data/test/test_helper.rb +12 -5
  53. data/test/xml_representer_test.rb +26 -166
  54. metadata +49 -29
  55. data/gemfiles/Gemfile.representable-1.7 +0 -6
  56. data/gemfiles/Gemfile.representable-1.8 +0 -6
  57. data/lib/roar/representer/feature/client.rb +0 -39
  58. data/lib/roar/representer/feature/http_verbs.rb +0 -95
  59. data/lib/roar/representer/feature/hypermedia.rb +0 -175
  60. data/lib/roar/representer/json.rb +0 -67
  61. data/lib/roar/representer/transport/faraday.rb +0 -50
  62. data/lib/roar/representer/transport/net_http.rb +0 -59
  63. data/lib/roar/representer/transport/net_http/request.rb +0 -75
  64. data/lib/roar/representer/xml.rb +0 -61
@@ -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/representer/transport/net_http'
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::Representer::Transport::NetHTTP.new }
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::Representer::Transport::UnauthorizedError do
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::Representer::Transport::UnauthorizedError do
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
@@ -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::Representer::JSON
25
+ include Roar::JSON
26
26
  property :name
27
27
  end
28
28
 
29
29
  class Person
30
30
  include AttributesConstructor
31
- include Roar::Representer::JSON
31
+ include Roar::JSON
32
32
  include PersonRepresentation
33
33
  attr_accessor :name
34
34
  end
@@ -1,9 +1,47 @@
1
1
  require 'test_helper'
2
- require 'roar/representer/transport/net_http/request'
3
2
 
4
- class NetHTTPTransportRequestTest < MiniTest::Spec
3
+ require "roar"
4
+ require 'roar/transport/net_http/request'
5
+ require 'roar/transport/net_http'
5
6
 
6
- describe Roar::Representer::Transport::NetHTTP::Request do
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::Representer::Transport::NetHTTP::Request.new(options) }
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
- assert_equal(net_http_instance.cert.to_s, cert.to_s)
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/representer/feature/http_verbs'
6
- require 'roar/representer/json/hal'
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/representer/xml"
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::Representer::Feature::Hypermedia::Hyperlink.new(options)
33
+ Roar::Hypermedia::Hyperlink.new(options)
34
34
  end
35
35
 
36
- def self.representer_for(modules=[Roar::Representer::JSON, Roar::Representer::Feature::Hypermedia], &block)
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
- class Order
23
- include AttributesConstructor
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
- attr_accessor :id
8
+ self.representation_wrap = :order
35
9
  end
36
10
 
11
+ Order = Struct.new(:id, :items)
37
12
 
38
- describe "XMLRepresenter" do
39
- before do
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
- @r = TestXmlRepresenter.new
44
- @i = ItemRepresenter.new
45
- @i.value = "Beer"
46
- end
16
+ # empty model
17
+ it { Order.new.extend(OrderRepresenter).to_xml.must_equal_xml "<order/>" }
47
18
 
48
- describe "#to_xml" do
49
- it "serializes the model" do
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
- @r.id = 1
53
- assert_xml_equal "<order><id>1</id></order>", @r.to_xml
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
- describe "without options" do
113
- it ".from_xml returns the deserialized model" do
114
- @m = TestXmlRepresenter.from_xml("<order><id>1</id></order>")
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
- assert_xml_equal "<order><id>1</id><item><value>Bier</value></item></order>",
171
- @r.to_xml
172
- end
32
+ describe "#from_xml" do
33
+ let (:order) { Order.new.extend(OrderRepresenter) }
173
34
 
174
- it ".from_xml typecasts list" do
175
- @m = @c.from_xml("<order><id>1</id><item><value>beer</value></item>\n</order>")
35
+ # parses
36
+ it { order.from_xml("<order><id>1</id></order>").id.must_equal "1" }
176
37
 
177
- assert_equal "1", @m.id
178
- assert_equal 1, @m.items.size
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::Representer::Feature::Hypermedia::Hyperlink.new.extend(Roar::Representer::XML::HyperlinkRepresenter).from_xml(%{<link rel="self" href="http://roar.apotomo.de" media="web"/>})
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.12.9
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-09-01 00:00:00.000000000 Z
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.0.0
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.0.0
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: virtus
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-1.7
150
- - gemfiles/Gemfile.representable-1.8
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/representer/feature/client.rb
155
- - lib/roar/representer/feature/coercion.rb
156
- - lib/roar/representer/feature/http_verbs.rb
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/roar/representer/transport/net_http/request_test.rb
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: '0'
226
+ version: 1.3.1
207
227
  requirements: []
208
228
  rubyforge_project:
209
229
  rubygems_version: 2.2.2