mighty_struct 0.1.1 → 0.1.2

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.
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