smacks-apricoteatsgorilla 0.3.2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +26 -7
- data/lib/apricoteatsgorilla.rb +5 -6
- metadata +3 -3
data/README.rdoc
CHANGED
@@ -14,19 +14,34 @@ uses Hpricot instead of REXML and doesn't follow the BadgerFish convention.
|
|
14
14
|
|
15
15
|
Hpricot 0.6.164 (also available for JRuby)
|
16
16
|
|
17
|
-
==
|
17
|
+
== How to use
|
18
18
|
|
19
|
-
|
20
|
-
ApricotEatsGorilla[xml]
|
21
|
-
# => { :eats => "Gorilla" }
|
19
|
+
=== xml_to_hash(xml, root_node = nil)
|
22
20
|
|
23
|
-
|
21
|
+
xml = '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
22
|
+
<soap:Body>
|
23
|
+
<ns2:authenticateResponse xmlns:ns2="http://v1_0.ws.example.com/">
|
24
|
+
<return>
|
25
|
+
<authValue>
|
26
|
+
<token>secret</token>
|
27
|
+
<client>example</client>
|
28
|
+
</authValue>
|
29
|
+
</return>
|
30
|
+
</ns2:authenticateResponse>
|
31
|
+
</soap:Body>
|
32
|
+
</soap:Envelope>'
|
33
|
+
|
34
|
+
ApricotEatsGorilla[xml, "//return"]
|
35
|
+
# => { :auth_value => { :token => "secret", :client => "example" } }
|
36
|
+
|
37
|
+
=== hash_to_xml(hash)
|
24
38
|
|
25
39
|
hash = { :apricot => { :eats => "Gorilla" } }
|
40
|
+
|
26
41
|
ApricotEatsGorilla[hash]
|
27
42
|
# => "<apricot><eats>Gorilla</eats></apricot>"
|
28
43
|
|
29
|
-
|
44
|
+
=== soap_envelope(namespaces = {})
|
30
45
|
|
31
46
|
ApricotEatsGorilla.soap_envelope { "<authenticate>me</authenticate>" }
|
32
47
|
|
@@ -34,4 +49,8 @@ uses Hpricot instead of REXML and doesn't follow the BadgerFish convention.
|
|
34
49
|
# => <env:Body>
|
35
50
|
# => <authenticate>me</authenticate>
|
36
51
|
# => </env:Body>
|
37
|
-
# => </env:Envelope>'
|
52
|
+
# => </env:Envelope>'
|
53
|
+
|
54
|
+
== More examples
|
55
|
+
|
56
|
+
Please take a look at the tests for some more examples.
|
data/lib/apricoteatsgorilla.rb
CHANGED
@@ -7,19 +7,19 @@ require "hpricot"
|
|
7
7
|
# be used to build a SOAP request envelope. It is based on CobraVsMongoose but
|
8
8
|
# uses Hpricot instead of REXML and doesn't follow the BadgerFish convention.
|
9
9
|
#
|
10
|
-
#
|
10
|
+
# === Translating an XML String into a Ruby Hash
|
11
11
|
#
|
12
12
|
# xml = "<apricot><eats>Gorilla</eats></apricot>"
|
13
13
|
# ApricotEatsGorilla[xml]
|
14
14
|
# # => { :eats => "Gorilla" }
|
15
15
|
#
|
16
|
-
#
|
16
|
+
# === Translating a Ruby Hash into an XML String
|
17
17
|
#
|
18
18
|
# hash = { :apricot => { :eats => "Gorilla" } }
|
19
19
|
# ApricotEatsGorilla[hash]
|
20
20
|
# # => "<apricot><eats>Gorilla</eats></apricot>"
|
21
21
|
#
|
22
|
-
#
|
22
|
+
# === Creating a SOAP request envelope
|
23
23
|
#
|
24
24
|
# ApricotEatsGorilla.soap_envelope { "<authenticate>me</authenticate>" }
|
25
25
|
#
|
@@ -156,8 +156,7 @@ class ApricotEatsGorilla
|
|
156
156
|
key, value = child.name, xml_node_to_hash(child)
|
157
157
|
end
|
158
158
|
|
159
|
-
key = remove_namespace(key)
|
160
|
-
key = to_snake_case(key).intern
|
159
|
+
key = to_snake_case(remove_namespace(key)).intern
|
161
160
|
current = this_node[key]
|
162
161
|
case current
|
163
162
|
when Array
|
@@ -165,7 +164,7 @@ class ApricotEatsGorilla
|
|
165
164
|
when nil
|
166
165
|
this_node[key] = value
|
167
166
|
else
|
168
|
-
this_node[key] = [current
|
167
|
+
this_node[key] = [current, value]
|
169
168
|
end
|
170
169
|
end
|
171
170
|
this_node
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smacks-apricoteatsgorilla
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Harrington
|
@@ -53,8 +53,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: "0"
|
55
55
|
version:
|
56
|
-
requirements:
|
57
|
-
|
56
|
+
requirements:
|
57
|
+
- shoulda for testing
|
58
58
|
rubyforge_project:
|
59
59
|
rubygems_version: 1.2.0
|
60
60
|
signing_key:
|