rapuncel 0.0.4 → 0.0.5.RC1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
|