rapuncel 0.0.4 → 0.0.5.RC1

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 (59) hide show
  1. data/Gemfile +3 -0
  2. data/README.md +35 -24
  3. data/Rakefile +11 -11
  4. data/lib/rapuncel.rb +9 -17
  5. data/lib/rapuncel/adapters/net_http_adapter.rb +7 -5
  6. data/lib/rapuncel/base_64_string.rb +31 -0
  7. data/lib/rapuncel/client.rb +2 -2
  8. data/lib/rapuncel/connection.rb +35 -58
  9. data/lib/rapuncel/request.rb +1 -38
  10. data/lib/rapuncel/response.rb +17 -30
  11. data/lib/rapuncel/xml_rpc_deserializer.rb +110 -0
  12. data/lib/rapuncel/xml_rpc_serializer.rb +148 -0
  13. data/rapuncel.gemspec +3 -2
  14. data/spec/functional/client_spec.rb +53 -0
  15. data/spec/spec_helper.rb +48 -0
  16. data/{test → spec}/test_server.rb +0 -1
  17. data/spec/unit/array_spec.rb +41 -0
  18. data/spec/unit/base64_spec.rb +30 -0
  19. data/spec/unit/boolean_spec.rb +39 -0
  20. data/spec/unit/connection_spec.rb +22 -0
  21. data/spec/unit/float_spec.rb +38 -0
  22. data/spec/unit/hash_spec.rb +54 -0
  23. data/spec/unit/int_spec.rb +23 -0
  24. data/spec/unit/nil_spec.rb +7 -0
  25. data/spec/unit/object_spec.rb +24 -0
  26. data/spec/unit/proxy_spec.rb +29 -0
  27. data/spec/unit/request_spec.rb +28 -0
  28. data/{test/unit/response_test.rb → spec/unit/response_spec.rb} +29 -44
  29. data/spec/unit/string_spec.rb +35 -0
  30. data/spec/unit/time_spec.rb +20 -0
  31. metadata +77 -104
  32. data/lib/rapuncel/base.rb +0 -7
  33. data/lib/rapuncel/core_ext/array.rb +0 -23
  34. data/lib/rapuncel/core_ext/big_decimal.rb +0 -7
  35. data/lib/rapuncel/core_ext/boolean.rb +0 -29
  36. data/lib/rapuncel/core_ext/float.rb +0 -11
  37. data/lib/rapuncel/core_ext/hash.rb +0 -32
  38. data/lib/rapuncel/core_ext/integer.rb +0 -11
  39. data/lib/rapuncel/core_ext/nil.rb +0 -7
  40. data/lib/rapuncel/core_ext/object.rb +0 -49
  41. data/lib/rapuncel/core_ext/string.rb +0 -12
  42. data/lib/rapuncel/core_ext/symbol.rb +0 -7
  43. data/lib/rapuncel/core_ext/time.rb +0 -14
  44. data/rapuncel-0.0.3.gem +0 -0
  45. data/test/functional/client_test.rb +0 -54
  46. data/test/functional_test_helper.rb +0 -13
  47. data/test/test_helper.rb +0 -38
  48. data/test/unit/array_test.rb +0 -97
  49. data/test/unit/boolean_test.rb +0 -34
  50. data/test/unit/connection_test.rb +0 -29
  51. data/test/unit/float_test.rb +0 -23
  52. data/test/unit/hash_test.rb +0 -54
  53. data/test/unit/int_test.rb +0 -27
  54. data/test/unit/nil_test.rb +0 -16
  55. data/test/unit/object_test.rb +0 -83
  56. data/test/unit/proxy_test.rb +0 -52
  57. data/test/unit/request_test.rb +0 -34
  58. data/test/unit/string_test.rb +0 -40
  59. data/test/unit/time_test.rb +0 -23
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+
3
+ describe TrueClass, FalseClass do
4
+ describe "Serialization" do
5
+ it 'represents true as 1' do
6
+ Rapuncel::XmlRpcSerializer[true].should have_xpath('/boolean', :content => '1')
7
+ end
8
+
9
+ it 'represents false as 0' do
10
+ Rapuncel::XmlRpcSerializer[false].should have_xpath('/boolean', :content => '0')
11
+ end
12
+ end
13
+
14
+ describe "Deserialization" do
15
+ it 'reads 1 as true' do
16
+ xml = <<-XML
17
+ <boolean>1</boolean>
18
+ XML
19
+
20
+ Rapuncel::XmlRpcDeserializer[xml].should be_a TrueClass
21
+ end
22
+
23
+ it 'reads 0 as false' do
24
+ xml = <<-XML
25
+ <boolean>0</boolean>
26
+ XML
27
+
28
+ Rapuncel::XmlRpcDeserializer[xml].should be_a FalseClass
29
+ end
30
+
31
+ it 'reads anything else as false' do
32
+ xml = <<-XML
33
+ <boolean>abcd</boolean>
34
+ XML
35
+
36
+ Rapuncel::XmlRpcDeserializer[xml].should be_a FalseClass
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rapuncel::Connection do
4
+ it 'can use the host option with or without an extra "http://"' do
5
+ connection = Rapuncel::Connection.new :host => "http://example.org"
6
+
7
+ connection.host.should == "example.org"
8
+ end
9
+
10
+ it 'can use the path option with or without leading "/"' do
11
+ connection = Rapuncel::Connection.new :host => "http://example.org", :path => "abcd"
12
+
13
+ connection.path.should == "/abcd"
14
+ end
15
+
16
+ it 'can set the ssl option via host' do
17
+ connection = Rapuncel::Connection.new :host => "https://example.org", :path => "abcd"
18
+
19
+ connection.ssl.should be_true
20
+ end
21
+ end
22
+
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+
3
+ describe Float do
4
+ describe "Serialization" do
5
+ it "can serialize Floats" do
6
+ number = 1.23456
7
+ Rapuncel::XmlRpcSerializer[number].should have_xpath('/double', :content => "1.23456")
8
+ end
9
+
10
+ it "can serialize BigDecimal" do
11
+ number = BigDecimal.new '1.23456'
12
+ Rapuncel::XmlRpcSerializer[number].should have_xpath('/double', :content => "1.23456")
13
+ end
14
+ end
15
+
16
+ describe "Deserialization" do
17
+ it "can deserialize double" do
18
+ xml = <<-XML
19
+ <double>1.23456</double>
20
+ XML
21
+ number = Rapuncel::XmlRpcDeserializer[xml]
22
+ number.should be_a Float
23
+ number.should == 1.23456
24
+ end
25
+
26
+ it "can optionally deserialize all double to BigDecimal" do
27
+ Rapuncel::XmlRpcDeserializer.double_as_bigdecimal = true
28
+
29
+ xml = <<-XML
30
+ <double>1.23456</double>
31
+ XML
32
+ number = Rapuncel::XmlRpcDeserializer[xml]
33
+
34
+ number.should be_a BigDecimal
35
+ number.to_s("F").should == "1.23456"
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,54 @@
1
+ require 'spec_helper'
2
+ require 'active_support/core_ext/hash/keys'
3
+
4
+ describe Hash do
5
+ describe "Serialization" do
6
+ before do
7
+ @hash = {
8
+ :abc => 'one and two',
9
+ 40 => %w(foo bar bee),
10
+ BigDecimal.new('1.23') => "abcd"
11
+ }
12
+
13
+ @xml = Rapuncel::XmlRpcSerializer[@hash]
14
+ end
15
+
16
+ it 'preserves number of key-value pairs' do
17
+ @xml.should have_xpath('/struct/member', :count => 3)
18
+ end
19
+
20
+ it 'projects all keys to plain strings' do
21
+ @xml.should have_xpath('/struct/member/name', :content => 'abc')
22
+ @xml.should have_xpath('/struct/member/name', :content => '40')
23
+ @xml.should have_xpath('/struct/member/name', :content => '1.23')
24
+ end
25
+ end
26
+
27
+ describe "Deserialization" do
28
+ before do
29
+ @xml = <<-XML
30
+ <struct>
31
+ <member><name>abcd</name>
32
+ <value><int>123></int></value></member>
33
+ <member><name>456</name>
34
+ <value><string>xyz</string></value></member>
35
+ </struct>
36
+ XML
37
+
38
+ @hash = Rapuncel::XmlRpcDeserializer[@xml]
39
+ end
40
+
41
+ it 'preserves number of key-value pairs' do
42
+ @hash.length.should == 2
43
+ end
44
+
45
+ it 'converts all keys to symbols' do
46
+ @hash.keys.should be_all{|key| Symbol === key}
47
+ end
48
+
49
+ it 'casts values to their types' do
50
+ @hash[:abcd].should == 123
51
+ @hash[:'456'].should == 'xyz'
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ describe Integer do
4
+ it "serialization" do
5
+ Rapuncel::XmlRpcSerializer[123].should have_xpath('/int', :content => "123")
6
+ end
7
+
8
+ it "deserialization of int" do
9
+ xml = <<-XML
10
+ <int>123</int>
11
+ XML
12
+
13
+ Rapuncel::XmlRpcDeserializer[xml].should == 123
14
+ end
15
+
16
+ it 'deserialization of i4' do
17
+ xml = <<-XML
18
+ <i4>123</i4>
19
+ XML
20
+
21
+ Rapuncel::XmlRpcDeserializer[xml].should == 123
22
+ end
23
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe NilClass do
4
+ it 'serializes like false' do
5
+ Rapuncel::XmlRpcSerializer[nil].should have_xpath('/boolean', :content => '0')
6
+ end
7
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+
3
+ describe Object do
4
+ class TestObject
5
+ attr_accessor :a, :b, :c
6
+ end
7
+
8
+ describe "Serialization of an arbitrary Object" do
9
+ it "serializes all instance variables like a hash" do
10
+ obj = TestObject.new
11
+ obj.a = "one"
12
+ obj.b = "two"
13
+
14
+ xml = Rapuncel::XmlRpcSerializer[obj]
15
+ xml.should have_xpath('/struct/member', :count => 2)
16
+
17
+ reparsed_object = Rapuncel::XmlRpcDeserializer[xml]
18
+ reparsed_object.should == {
19
+ :a => 'one',
20
+ :b => 'two'
21
+ }
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rapuncel::Proxy do
4
+ before do
5
+ @client = mock "Rapuncel::Client"
6
+ @proxy = Rapuncel::Proxy.new @client
7
+ end
8
+
9
+ it "provides unproxied __ methods" do
10
+ @client.should_not_receive :call_to_ruby
11
+
12
+ @proxy.__inspect__
13
+ @proxy.__tap__ {}
14
+ @proxy.__freeze__
15
+ @proxy.__send__ :__inspect__
16
+ end
17
+
18
+ it 'proxies inspect, freeze, tap' do
19
+ %w(inspect freeze tap).each do |method|
20
+ @client.should_receive(:call_to_ruby).with(method)
21
+ @proxy.__send__ method
22
+ end
23
+ end
24
+
25
+ it 'proxies any method call' do
26
+ @client.should_receive(:call_to_ruby).with("abcd", 1, "foo")
27
+ @proxy.abcd 1, "foo"
28
+ end
29
+ end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+
4
+ describe Rapuncel::Request do
5
+ describe "Serialization" do
6
+ before do
7
+ @request = Rapuncel::Request.new 'test_method', "one argument", "another"
8
+ @xml = Rapuncel::XmlRpcSerializer[@request]
9
+ end
10
+
11
+ it 'should be in xml version=1.0' do
12
+ @xml.should =~ /<\?xml version=['"]1.0['"]/
13
+ end
14
+
15
+ it 'should contain a methodCall' do
16
+ @xml.should have_xpath('/methodCall', :count => 1)
17
+ end
18
+
19
+ it 'should contain the method name' do
20
+ @xml.should have_xpath('/methodCall/methodName', :content => "test_method")
21
+ end
22
+
23
+ it 'should contain the method arguments in correct order' do
24
+ @xml.should have_xpath('/methodCall/params/param[1]/value/string', :content => "one argument")
25
+ @xml.should have_xpath('/methodCall/params/param[2]/value/string', :content => "another")
26
+ end
27
+ end
28
+ end
@@ -1,8 +1,7 @@
1
- require 'test_helper'
1
+ require 'spec_helper'
2
2
 
3
-
4
- class ResponseTest < ActiveSupport::TestCase
5
- class MockReponse
3
+ describe Rapuncel::Response do
4
+ class HttpResponse
6
5
  attr_accessor :body, :code
7
6
 
8
7
  def initialize body, success = true, code = 200
@@ -13,9 +12,9 @@ class ResponseTest < ActiveSupport::TestCase
13
12
  @success
14
13
  end
15
14
  end
16
-
17
- test 'Response should not be an Array' do
18
- mock = MockReponse.new <<-XML
15
+
16
+ it 'parses successful response' do
17
+ successful_response = HttpResponse.new <<-XML
19
18
  <?xml version='1.0'?>
20
19
  <methodResponse>
21
20
  <params>
@@ -27,19 +26,15 @@ class ResponseTest < ActiveSupport::TestCase
27
26
  </params>
28
27
  </methodResponse>
29
28
  XML
30
-
31
- r = Rapuncel::Response.new mock
32
-
33
-
34
- assert r.success?
35
- assert !r.fault?
36
- assert !r.error?
37
- assert_equal "foo foo foo", r.to_ruby
38
- assert_equal "foo foo foo", r.result
29
+
30
+ response = Rapuncel::Response.new successful_response
31
+ response.should be_success
32
+
33
+ response.result.should == "foo foo foo"
39
34
  end
40
-
41
- test "Response should handle faults" do
42
- mock = MockReponse.new <<-XML
35
+
36
+ it 'parses fault response' do
37
+ fault_response = HttpResponse.new <<-XML
43
38
  <?xml version='1.0'?>
44
39
  <methodResponse>
45
40
  <fault>
@@ -70,31 +65,21 @@ class ResponseTest < ActiveSupport::TestCase
70
65
  </fault>
71
66
  </methodResponse>
72
67
  XML
73
-
74
- r = Rapuncel::Response.new mock
75
-
76
- assert r.fault?
77
- assert !r.success?
78
- assert !r.error?
79
-
80
- assert_kind_of Hash, r.to_ruby
81
- assert_kind_of Hash, r.fault
82
-
83
- assert_equal 42, r.fault[:faultCode]
68
+
69
+ response = Rapuncel::Response.new fault_response
70
+ response.should be_fault
71
+
72
+ response.to_ruby.should be_a Hash
73
+ response.to_ruby[:faultCode].should == 42
84
74
  end
85
-
86
- test "Response should handle errors" do
87
- mock = MockReponse.new "Not Found", false, 404
88
-
89
- r = Rapuncel::Response.new mock
90
-
91
- assert r.error?
92
- assert !r.fault?
93
- assert !r.success?
94
-
95
- assert_kind_of Hash, r.to_ruby
96
- assert_kind_of Hash, r.error
97
-
98
- assert_equal 404, r.error[:http_code]
75
+
76
+ it 'should handle errors' do
77
+ error_response = HttpResponse.new "Not Found", false, 404
78
+
79
+ response = Rapuncel::Response.new error_response
80
+ response.should be_error
81
+
82
+ response.to_ruby.should be_a Hash
83
+ response.to_ruby[:http_code].should == 404
99
84
  end
100
85
  end
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+
3
+ describe String, Symbol do
4
+ it 'serialization of a String' do
5
+ string = "foobar"
6
+ xml = Rapuncel::XmlRpcSerializer[string]
7
+ xml.should have_xpath('/string', :content => "foobar")
8
+ end
9
+
10
+ it 'serialization of a Symbol' do
11
+ symbol = :foobar
12
+ xml = Rapuncel::XmlRpcSerializer[symbol]
13
+ xml.should have_xpath('/string', :content => "foobar")
14
+ end
15
+
16
+ it 'preservation of trailing an leading whitespaces' do
17
+ string = "\n\t abcd\n \t"
18
+ xml = Rapuncel::XmlRpcSerializer[string]
19
+ xml.should have_xpath('/string', :content => "\n\t abcd\n \t")
20
+ end
21
+
22
+ it 'deserialization of a String' do
23
+ xml = <<-XML
24
+ <string>abcd\nefgh \n\t</string>
25
+ XML
26
+ string = Rapuncel::XmlRpcDeserializer[xml]
27
+ string.should == "abcd\nefgh \n\t"
28
+ end
29
+
30
+ it 'normalization of linebreaks' do
31
+ string = "one\r\ntwo\rthree\nfour"
32
+ string2 = Rapuncel::XmlRpcDeserializer[Rapuncel::XmlRpcSerializer[string]]
33
+ string2.should == "one\ntwo\nthree\nfour"
34
+ end
35
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe Time do
4
+ it 'serialization' do
5
+ time = Time.now
6
+ xml = Rapuncel::XmlRpcSerializer[time]
7
+ xml.should have_xpath('/dateTime.iso8601', :content => time.iso8601)
8
+ end
9
+
10
+ it 'deserialization' do
11
+ time = Time.now
12
+ xml = <<-XML
13
+ <dateTime.iso8601>#{time.iso8601}</dateTime.iso8601>
14
+ XML
15
+
16
+ parsed_time = Rapuncel::XmlRpcDeserializer[xml]
17
+ parsed_time.should be_a Time
18
+ parsed_time.to_i.should == time.to_i
19
+ end
20
+ end
metadata CHANGED
@@ -1,151 +1,124 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rapuncel
3
- version: !ruby/object:Gem::Version
4
- hash: 23
5
- prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 4
10
- version: 0.0.4
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.5.RC1
5
+ prerelease: 6
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Michael Eickenberg
14
9
  - Marian Theisen
15
10
  autorequire:
16
11
  bindir: bin
17
12
  cert_chain: []
18
-
19
- date: 2011-05-24 00:00:00 +02:00
13
+ date: 2011-07-14 00:00:00.000000000 +02:00
20
14
  default_executable:
21
- dependencies:
22
- - !ruby/object:Gem::Dependency
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
23
17
  name: nokogiri
24
- prerelease: false
25
- requirement: &id001 !ruby/object:Gem::Requirement
18
+ requirement: &70327435731900 !ruby/object:Gem::Requirement
26
19
  none: false
27
- requirements:
28
- - - ">="
29
- - !ruby/object:Gem::Version
30
- hash: 3
31
- segments:
32
- - 0
33
- version: "0"
20
+ requirements:
21
+ - - ! '>='
22
+ - !ruby/object:Gem::Version
23
+ version: '0'
34
24
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: activesupport
38
25
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
26
+ version_requirements: *70327435731900
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: &70327435731400 !ruby/object:Gem::Requirement
40
30
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 7
45
- segments:
46
- - 3
47
- - 0
48
- - 0
31
+ requirements:
32
+ - - ! '>='
33
+ - !ruby/object:Gem::Version
49
34
  version: 3.0.0
50
35
  type: :runtime
51
- version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
53
- name: mocha
54
36
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
37
+ version_requirements: *70327435731400
38
+ - !ruby/object:Gem::Dependency
39
+ name: rspec
40
+ requirement: &70327435730900 !ruby/object:Gem::Requirement
56
41
  none: false
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- hash: 3
61
- segments:
62
- - 0
63
- version: "0"
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 2.6.0
64
46
  type: :development
65
- version_requirements: *id003
66
- description: Rapuncel is a simple XML-RPC Client based on Nokogiri, thus provides a fast and easy way to interact with XML-RPC services.
47
+ prerelease: false
48
+ version_requirements: *70327435730900
49
+ - !ruby/object:Gem::Dependency
50
+ name: rake
51
+ requirement: &70327435730520 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ type: :development
58
+ prerelease: false
59
+ version_requirements: *70327435730520
60
+ description: Rapuncel is a simple XML-RPC Client based on Nokogiri, thus provides
61
+ a fast and easy way to interact with XML-RPC services.
67
62
  email: marian@cice-online.net
68
63
  executables: []
69
-
70
64
  extensions: []
71
-
72
65
  extra_rdoc_files: []
73
-
74
- files:
66
+ files:
67
+ - Gemfile
75
68
  - lib/rapuncel/adapters/net_http_adapter.rb
76
- - lib/rapuncel/base.rb
69
+ - lib/rapuncel/base_64_string.rb
77
70
  - lib/rapuncel/client.rb
78
71
  - lib/rapuncel/connection.rb
79
- - lib/rapuncel/core_ext/array.rb
80
- - lib/rapuncel/core_ext/big_decimal.rb
81
- - lib/rapuncel/core_ext/boolean.rb
82
- - lib/rapuncel/core_ext/float.rb
83
- - lib/rapuncel/core_ext/hash.rb
84
- - lib/rapuncel/core_ext/integer.rb
85
- - lib/rapuncel/core_ext/nil.rb
86
- - lib/rapuncel/core_ext/object.rb
87
- - lib/rapuncel/core_ext/string.rb
88
- - lib/rapuncel/core_ext/symbol.rb
89
- - lib/rapuncel/core_ext/time.rb
90
72
  - lib/rapuncel/proxy.rb
91
73
  - lib/rapuncel/request.rb
92
74
  - lib/rapuncel/response.rb
75
+ - lib/rapuncel/xml_rpc_deserializer.rb
76
+ - lib/rapuncel/xml_rpc_serializer.rb
93
77
  - lib/rapuncel.rb
94
78
  - MIT-LICENSE
95
79
  - Rakefile
96
- - rapuncel-0.0.3.gem
97
80
  - rapuncel.gemspec
98
81
  - README.md
99
- - test/functional/client_test.rb
100
- - test/functional_test_helper.rb
101
- - test/test_helper.rb
102
- - test/test_server.rb
103
- - test/unit/array_test.rb
104
- - test/unit/boolean_test.rb
105
- - test/unit/connection_test.rb
106
- - test/unit/float_test.rb
107
- - test/unit/hash_test.rb
108
- - test/unit/int_test.rb
109
- - test/unit/nil_test.rb
110
- - test/unit/object_test.rb
111
- - test/unit/proxy_test.rb
112
- - test/unit/request_test.rb
113
- - test/unit/response_test.rb
114
- - test/unit/string_test.rb
115
- - test/unit/time_test.rb
82
+ - spec/functional/client_spec.rb
83
+ - spec/spec_helper.rb
84
+ - spec/test_server.rb
85
+ - spec/unit/array_spec.rb
86
+ - spec/unit/base64_spec.rb
87
+ - spec/unit/boolean_spec.rb
88
+ - spec/unit/connection_spec.rb
89
+ - spec/unit/float_spec.rb
90
+ - spec/unit/hash_spec.rb
91
+ - spec/unit/int_spec.rb
92
+ - spec/unit/nil_spec.rb
93
+ - spec/unit/object_spec.rb
94
+ - spec/unit/proxy_spec.rb
95
+ - spec/unit/request_spec.rb
96
+ - spec/unit/response_spec.rb
97
+ - spec/unit/string_spec.rb
98
+ - spec/unit/time_spec.rb
116
99
  has_rdoc: true
117
100
  homepage: http://github.com/cice/rapuncel
118
101
  licenses: []
119
-
120
102
  post_install_message:
121
103
  rdoc_options: []
122
-
123
- require_paths:
104
+ require_paths:
124
105
  - lib
125
- required_ruby_version: !ruby/object:Gem::Requirement
106
+ required_ruby_version: !ruby/object:Gem::Requirement
126
107
  none: false
127
- requirements:
128
- - - ">="
129
- - !ruby/object:Gem::Version
130
- hash: 3
131
- segments:
132
- - 0
133
- version: "0"
134
- required_rubygems_version: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ! '>='
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ required_rubygems_version: !ruby/object:Gem::Requirement
135
113
  none: false
136
- requirements:
137
- - - ">="
138
- - !ruby/object:Gem::Version
139
- hash: 3
140
- segments:
141
- - 0
142
- version: "0"
114
+ requirements:
115
+ - - ! '>'
116
+ - !ruby/object:Gem::Version
117
+ version: 1.3.1
143
118
  requirements: []
144
-
145
119
  rubyforge_project:
146
- rubygems_version: 1.5.0
120
+ rubygems_version: 1.6.2
147
121
  signing_key:
148
122
  specification_version: 3
149
123
  summary: Simple XML-RPC Client
150
124
  test_files: []
151
-