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.
- data/Gemfile +3 -0
- data/README.md +35 -24
- data/Rakefile +11 -11
- data/lib/rapuncel.rb +9 -17
- data/lib/rapuncel/adapters/net_http_adapter.rb +7 -5
- data/lib/rapuncel/base_64_string.rb +31 -0
- data/lib/rapuncel/client.rb +2 -2
- data/lib/rapuncel/connection.rb +35 -58
- data/lib/rapuncel/request.rb +1 -38
- data/lib/rapuncel/response.rb +17 -30
- data/lib/rapuncel/xml_rpc_deserializer.rb +110 -0
- data/lib/rapuncel/xml_rpc_serializer.rb +148 -0
- data/rapuncel.gemspec +3 -2
- data/spec/functional/client_spec.rb +53 -0
- data/spec/spec_helper.rb +48 -0
- data/{test → spec}/test_server.rb +0 -1
- data/spec/unit/array_spec.rb +41 -0
- data/spec/unit/base64_spec.rb +30 -0
- data/spec/unit/boolean_spec.rb +39 -0
- data/spec/unit/connection_spec.rb +22 -0
- data/spec/unit/float_spec.rb +38 -0
- data/spec/unit/hash_spec.rb +54 -0
- data/spec/unit/int_spec.rb +23 -0
- data/spec/unit/nil_spec.rb +7 -0
- data/spec/unit/object_spec.rb +24 -0
- data/spec/unit/proxy_spec.rb +29 -0
- data/spec/unit/request_spec.rb +28 -0
- data/{test/unit/response_test.rb → spec/unit/response_spec.rb} +29 -44
- data/spec/unit/string_spec.rb +35 -0
- data/spec/unit/time_spec.rb +20 -0
- metadata +77 -104
- data/lib/rapuncel/base.rb +0 -7
- data/lib/rapuncel/core_ext/array.rb +0 -23
- data/lib/rapuncel/core_ext/big_decimal.rb +0 -7
- data/lib/rapuncel/core_ext/boolean.rb +0 -29
- data/lib/rapuncel/core_ext/float.rb +0 -11
- data/lib/rapuncel/core_ext/hash.rb +0 -32
- data/lib/rapuncel/core_ext/integer.rb +0 -11
- data/lib/rapuncel/core_ext/nil.rb +0 -7
- data/lib/rapuncel/core_ext/object.rb +0 -49
- data/lib/rapuncel/core_ext/string.rb +0 -12
- data/lib/rapuncel/core_ext/symbol.rb +0 -7
- data/lib/rapuncel/core_ext/time.rb +0 -14
- data/rapuncel-0.0.3.gem +0 -0
- data/test/functional/client_test.rb +0 -54
- data/test/functional_test_helper.rb +0 -13
- data/test/test_helper.rb +0 -38
- data/test/unit/array_test.rb +0 -97
- data/test/unit/boolean_test.rb +0 -34
- data/test/unit/connection_test.rb +0 -29
- data/test/unit/float_test.rb +0 -23
- data/test/unit/hash_test.rb +0 -54
- data/test/unit/int_test.rb +0 -27
- data/test/unit/nil_test.rb +0 -16
- data/test/unit/object_test.rb +0 -83
- data/test/unit/proxy_test.rb +0 -52
- data/test/unit/request_test.rb +0 -34
- data/test/unit/string_test.rb +0 -40
- 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,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 '
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
|
-
|
4
|
-
class
|
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
|
-
|
18
|
-
|
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
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
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
|
-
|
42
|
-
|
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
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
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
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
66
|
-
|
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
|
-
|
66
|
+
files:
|
67
|
+
- Gemfile
|
75
68
|
- lib/rapuncel/adapters/net_http_adapter.rb
|
76
|
-
- lib/rapuncel/
|
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
|
-
-
|
100
|
-
-
|
101
|
-
-
|
102
|
-
-
|
103
|
-
-
|
104
|
-
-
|
105
|
-
-
|
106
|
-
-
|
107
|
-
-
|
108
|
-
-
|
109
|
-
-
|
110
|
-
-
|
111
|
-
-
|
112
|
-
-
|
113
|
-
-
|
114
|
-
-
|
115
|
-
-
|
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
|
-
|
131
|
-
|
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
|
-
|
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.
|
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
|
-
|