mighty_struct 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mighty_struct.rb +4 -10
- data/lib/mighty_struct/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e1befffda2350b4119620bc5a265ec2e7dfa61eb
|
4
|
+
data.tar.gz: 1f9d05937b898767975ce10a400e4f16f69c7a73
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 809f0eb22a097d19788102ae76d90289c88d8faa76c3a9cefdfae60142aae3aff6c9f4118789ee7f45738af75a09a32a1e0356ea91789bff95a8d2030107985f
|
7
|
+
data.tar.gz: 81da6ad10ef7d667c8b66c1f6c99a44f3679c1a7371e6ee3ad600bf941a4b38848a049d133242708fd4c249ee672d68fb6a2fa56af70ea3df78315387ca67360
|
data/lib/mighty_struct.rb
CHANGED
@@ -26,21 +26,15 @@ class MightyStruct
|
|
26
26
|
self.class.define_property_accessors!(self, @object = object)
|
27
27
|
end
|
28
28
|
|
29
|
-
def [](key)
|
30
|
-
# ensure indifferent access
|
31
|
-
if @object.is_a?(Hash)
|
32
|
-
@object[key] || @object[key.to_s] || @object[key.to_sym]
|
33
|
-
else
|
34
|
-
@object[key]
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
29
|
#
|
39
30
|
# last line of defense
|
40
31
|
#
|
41
32
|
def method_missing(method_name, *arguments, &block)
|
42
33
|
if @object.respond_to?(method_name)
|
43
|
-
@object.send(method_name, *arguments, &block)
|
34
|
+
result = @object.send(method_name, *arguments, &block)
|
35
|
+
|
36
|
+
# ensure that results of called methods are mighty structs again
|
37
|
+
self.class.new?(result) ? self.class.new(result) : result
|
44
38
|
else
|
45
39
|
super
|
46
40
|
end
|