rapuncel 0.0.3 → 0.0.4
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/lib/rapuncel/connection.rb +16 -5
- data/lib/rapuncel/proxy.rb +3 -1
- data/rapuncel-0.0.3.gem +0 -0
- data/rapuncel.gemspec +1 -1
- data/test/unit/array_test.rb +12 -11
- data/test/unit/connection_test.rb +12 -0
- data/test/unit/proxy_test.rb +1 -1
- metadata +5 -4
data/lib/rapuncel/connection.rb
CHANGED
@@ -18,11 +18,10 @@ module Rapuncel
|
|
18
18
|
|
19
19
|
def initialize configuration = {}
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
21
|
+
self.host = configuration[:host] || 'localhost'
|
22
|
+
self.port = configuration[:port] || '8080'
|
23
|
+
self.path = configuration[:path] || '/'
|
24
|
+
self.headers = configuration[:headers] || {}
|
26
25
|
|
27
26
|
if ssl = configuration[:ssl]
|
28
27
|
@ssl = true
|
@@ -33,6 +32,18 @@ module Rapuncel
|
|
33
32
|
def url
|
34
33
|
"http://#{host}:#{port}#{path}"
|
35
34
|
end
|
35
|
+
|
36
|
+
def host= value
|
37
|
+
@host = value.to_s.sub /^http\:\/\//, ''
|
38
|
+
end
|
39
|
+
|
40
|
+
def path= value
|
41
|
+
unless value =~ /^\//
|
42
|
+
value = "/" + value
|
43
|
+
end
|
44
|
+
|
45
|
+
@path = value
|
46
|
+
end
|
36
47
|
|
37
48
|
def headers
|
38
49
|
@headers.merge :Accept => 'text/xml', :'content-type' => 'text/xml'
|
data/lib/rapuncel/proxy.rb
CHANGED
@@ -2,7 +2,7 @@ require 'rapuncel/request'
|
|
2
2
|
|
3
3
|
module Rapuncel
|
4
4
|
class Proxy
|
5
|
-
PROXY_METHODS = %w(tap inspect clone freeze dup class initialize).freeze
|
5
|
+
PROXY_METHODS = %w(tap inspect clone freeze dup class initialize to_s).freeze
|
6
6
|
LOCKED_METHODS = %w(method_missing).freeze
|
7
7
|
LOCKED_PATTERN = /(\A__|\?\Z|!\Z)/.freeze
|
8
8
|
|
@@ -40,6 +40,8 @@ module Rapuncel
|
|
40
40
|
PROXY_METHODS.each do |name|
|
41
41
|
alias_method "__#{name}__", name
|
42
42
|
end
|
43
|
+
|
44
|
+
alias_method "__inspect__", "__to_s__"
|
43
45
|
|
44
46
|
instance_methods.each do |name|
|
45
47
|
unless LOCKED_METHODS.include?(name) || LOCKED_PATTERN.match(name)
|
data/rapuncel-0.0.3.gem
ADDED
Binary file
|
data/rapuncel.gemspec
CHANGED
data/test/unit/array_test.rb
CHANGED
@@ -9,18 +9,19 @@ class ArrayTest < ActiveSupport::TestCase
|
|
9
9
|
assert_select xml, '/array/data/value', 10
|
10
10
|
end
|
11
11
|
|
12
|
-
def test_array arr
|
13
|
-
xml = arr.to_xml_rpc
|
14
12
|
|
15
|
-
xml_node = Nokogiri::XML(xml).children.first
|
16
13
|
|
17
|
-
|
14
|
+
test "An array, converted to xml and parsed back should be itself" do
|
15
|
+
def test_array_conversion arr
|
16
|
+
xml = arr.to_xml_rpc
|
18
17
|
|
19
|
-
|
20
|
-
end
|
18
|
+
xml_node = Nokogiri::XML(xml).children.first
|
21
19
|
|
20
|
+
reparsed = Array.from_xml_rpc xml_node
|
22
21
|
|
23
|
-
|
22
|
+
reparsed
|
23
|
+
end
|
24
|
+
|
24
25
|
arr1 = (1..10).to_a
|
25
26
|
arr2 = arr1.map &:to_s
|
26
27
|
|
@@ -28,10 +29,10 @@ class ArrayTest < ActiveSupport::TestCase
|
|
28
29
|
|
29
30
|
arr4 = ["hello", arr3]
|
30
31
|
|
31
|
-
reparsed1 =
|
32
|
-
reparsed2 =
|
33
|
-
reparsed3 =
|
34
|
-
reparsed4 =
|
32
|
+
reparsed1 = test_array_conversion arr1
|
33
|
+
reparsed2 = test_array_conversion arr2
|
34
|
+
reparsed3 = test_array_conversion arr3
|
35
|
+
reparsed4 = test_array_conversion arr4
|
35
36
|
|
36
37
|
[reparsed1, reparsed2, reparsed3, reparsed4].zip([arr1, arr2, arr3, arr4]).each do |b|
|
37
38
|
assert_equal *b
|
@@ -6,6 +6,18 @@ class ConnectionTest < ActiveSupport::TestCase
|
|
6
6
|
assert_kind_of Rapuncel::AuthConnection, Rapuncel::Connection.build(:user => '')
|
7
7
|
assert_kind_of Rapuncel::AuthConnection, Rapuncel::Connection.build(:password => '')
|
8
8
|
end
|
9
|
+
|
10
|
+
test "Connection should not choke on extra 'http://' in @host" do
|
11
|
+
connection = Rapuncel::Connection.build :host => "http://example.org"
|
12
|
+
|
13
|
+
assert_equal "example.org", connection.host
|
14
|
+
end
|
15
|
+
|
16
|
+
test "Connection should accept path beginning with or without /" do
|
17
|
+
connection = Rapuncel::Connection.build :host => "http://example.org", :path => "abcd"
|
18
|
+
|
19
|
+
assert_equal "/abcd", connection.path
|
20
|
+
end
|
9
21
|
|
10
22
|
test "Connection.new should return an ApiKeyAuthConnection if api_key is set" do
|
11
23
|
assert_kind_of Rapuncel::ApiKeyAuthConnection, Rapuncel::Connection.build(:api_key => 'xyz')
|
data/test/unit/proxy_test.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rapuncel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 4
|
10
|
+
version: 0.0.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Michael Eickenberg
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-
|
19
|
+
date: 2011-05-24 00:00:00 +02:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -93,6 +93,7 @@ files:
|
|
93
93
|
- lib/rapuncel.rb
|
94
94
|
- MIT-LICENSE
|
95
95
|
- Rakefile
|
96
|
+
- rapuncel-0.0.3.gem
|
96
97
|
- rapuncel.gemspec
|
97
98
|
- README.md
|
98
99
|
- test/functional/client_test.rb
|