smacks-savon 0.1.4 → 0.1.5

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 (2) hide show
  1. data/lib/savon/response.rb +11 -8
  2. metadata +1 -1
@@ -68,7 +68,7 @@ module Savon
68
68
 
69
69
  # Sets the default root node.
70
70
  def self.default_root_node=(root_node)
71
- @@default_root_node = root_node if root_node.kind_of? String
71
+ @@default_root_node = root_node if root_node.kind_of?(String)
72
72
  end
73
73
 
74
74
  # The core (inherited) methods to shadow.
@@ -81,7 +81,7 @@ module Savon
81
81
 
82
82
  # Sets the core +methods+ to shadow.
83
83
  def self.core_methods_to_shadow=(methods)
84
- @@core_methods_to_shadow = methods if methods.kind_of? Array
84
+ @@core_methods_to_shadow = methods if methods.kind_of?(Array)
85
85
  end
86
86
 
87
87
  # Initializer expects the +source+ to initialize from. Sets up the instance
@@ -90,14 +90,15 @@ module Savon
90
90
  # in case the given +source+ is a Net::HTTPResponse.
91
91
  def initialize(source, root_node = nil)
92
92
  if source.kind_of? Hash
93
- initialize_from_hash source
93
+ initialize_from_hash(source)
94
94
  elsif source.respond_to? :body
95
- initialize_from_response source, root_node
95
+ initialize_from_response(source, root_node)
96
96
  end
97
97
  end
98
98
 
99
99
  # Returns the value from a given +key+ from the response Hash.
100
100
  def [](key)
101
+ return @hash unless @hash.kind_of?(Hash)
101
102
  value_from_hash(key)
102
103
  end
103
104
 
@@ -119,8 +120,10 @@ module Savon
119
120
  # Returns a new Savon::Response instance containing the value or returns
120
121
  # the actual value in case it is not a Hash.
121
122
  def method_missing(method, *args)
123
+ return @hash unless @hash.kind_of?(Hash)
124
+
122
125
  value = value_from_hash(method)
123
- return value unless value.kind_of? Hash
126
+ return value unless value.kind_of?(Hash)
124
127
  Savon::Response.new(value)
125
128
  end
126
129
 
@@ -138,14 +141,14 @@ module Savon
138
141
  if success?
139
142
  root_node ||= @@default_root_node
140
143
  hash = response_to_hash(root_node)
141
- initialize_from_hash hash
144
+ initialize_from_hash(hash)
142
145
  end
143
146
  end
144
147
 
145
148
  # Initializes the instance from a given +hash+.
146
149
  def initialize_from_hash(hash)
147
150
  @hash = hash
148
- shadow_core_methods
151
+ shadow_core_methods if @hash.kind_of?(Hash)
149
152
  end
150
153
 
151
154
  # Dynamically defines methods from the Array of +@@core_methods_to_shadow+
@@ -153,7 +156,7 @@ module Savon
153
156
  # case a matching public method and a key from the Hash could be found.
154
157
  def shadow_core_methods
155
158
  @@core_methods_to_shadow.each do |method|
156
- if self.public_methods.include?(method.to_s) && @hash.kind_of?(Hash) && value_from_hash(method)
159
+ if self.public_methods.include?(method.to_s) && value_from_hash(method)
157
160
  self.class.send(:define_method, method) { value_from_hash(method) }
158
161
  end
159
162
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smacks-savon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Harrington