summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Doubrovkine (dB.) @dblockdotorg <dblock@dblock.org>2015-01-19 08:59:53 -0500
committerDaniel Doubrovkine (dB.) @dblockdotorg <dblock@dblock.org>2015-01-19 08:59:53 -0500
commit32d904b7893be868489fa80f08d103ed819e0fbb (patch)
tree8d1fa6b77a0601528532958d8d3f82f58d479205
parentce1980fc2bc32612586a7a7f055a526e72326757 (diff)
parentdffbb9ec24ac9107befe66a2540d501e5e750b2d (diff)
downloadhashie-32d904b7893be868489fa80f08d103ed819e0fbb.tar.gz
Merge pull request #267 from Zloy/refactor-mm
Refactor MethodReader#method_missing
-rw-r--r--lib/hashie/extensions/method_access.rb18
1 files changed, 12 insertions, 6 deletions
diff --git a/lib/hashie/extensions/method_access.rb b/lib/hashie/extensions/method_access.rb
index a823d9d..9c3d537 100644
--- a/lib/hashie/extensions/method_access.rb
+++ b/lib/hashie/extensions/method_access.rb
@@ -33,13 +33,19 @@ module Hashie
end
def method_missing(name, *args)
- return self[name.to_s] if key?(name.to_s)
- return self[name.to_sym] if key?(name.to_sym)
- if name[-1] == '?'
- kname = name.to_s[0..-2]
- return key?(kname) || key?(kname.to_sym)
+ if key?(name)
+ self[name]
+ else
+ sname = name.to_s
+ if key?(sname)
+ self[sname]
+ elsif sname[-1] == '?'
+ kname = sname[0..-2]
+ key?(kname) || key?(kname.to_sym)
+ else
+ super
+ end
end
- super
end
end