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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 39022f7103f179d0d8deaa082c95291604097ccf
4
- data.tar.gz: 63dc14cb44f4a052e0143cbbe7bbbbcc6c7a0580
3
+ metadata.gz: e1befffda2350b4119620bc5a265ec2e7dfa61eb
4
+ data.tar.gz: 1f9d05937b898767975ce10a400e4f16f69c7a73
5
5
  SHA512:
6
- metadata.gz: 101410055653d690baefbf1f0374cad78549d1eff576921dce1b44674f9df74f579abc042cf04cdae19ebe582a2561a249977f9a30ff127ca2e2f58fd871a6e8
7
- data.tar.gz: acf64f6a035f17a746706255985a8c19589806834f194b45bc1bb0690e231aa2fdaa451a934765040ef79b596a5860cd48ebc535ca50fe4d5dac8dce12bbd712
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
@@ -1,3 +1,3 @@
1
1
  class MightyStruct
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mighty_struct
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Sievers