libis-tools 0.9.23 → 0.9.24

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: 78a96ff8c8386a80e5737400e5d3039ecd89d032
4
- data.tar.gz: 11ac1d391f3c5db986b9e9b027068e1da6499173
3
+ metadata.gz: 472d651eedc43e5a8997ede9bb94f4c4f3d09777
4
+ data.tar.gz: 0a1296a2c6d98632a296af09ac45324c00183d53
5
5
  SHA512:
6
- metadata.gz: f2c64702ba6ea354897aedcab4299b206bf8c9af02c0dae88028482dc5c0ad925d1ff7b59a58938c2111983db95f2daa4626569b05a5de9ce3226e92bc537031
7
- data.tar.gz: 387339b3efaa13ada674bc89cfe462925f6676cd5197e99c85780639f8569d1fa671275f59a9a4b2a8e3bba56babe90d78683b201ac4e0c3037fd99af8adb8fe
6
+ metadata.gz: a5c09efe0236c2847ce65ac3dba3d1eb45902356c0ebfbae37539b253d22e399e6f6782f46f36ae8a51ea6225be49ab2d16af674006b8232017172fd2485ae56
7
+ data.tar.gz: 14ad32e1a7c28fe004554958090e4802f59db5bb0ff7870147a81f228683701fa6216d5e30ac6598a6dd46a4620edef186846fa9270e71b3e2e3672d7b80410e
@@ -9,6 +9,7 @@ module Libis
9
9
  # A RecursiveOpenStruct is derived from stdlib's OpenStruct, but can be made recursive.
10
10
  # DeepStruct enforces this behaviour and adds a clear! method.
11
11
  class DeepStruct < RecursiveOpenStruct
12
+ include Enumerable
12
13
 
13
14
  # Create a new DeepStruct from a Hash and configure the behaviour.
14
15
  #
@@ -23,6 +24,29 @@ module Libis
23
24
  super(hash, {recurse_over_arrays: true, preserve_original_keys: true}.merge(opts))
24
25
  end
25
26
 
27
+ def merge(hash)
28
+ return self unless hash.respond_to?(:to_hash)
29
+ hash.to_hash.inject(self.dup) { |ds, (key, value)| ds[key] = value; ds }
30
+ end
31
+
32
+ def merge!(hash)
33
+ return self unless hash.respond_to?(:to_hash)
34
+ hash.to_hash.inject(self) { |ds, (key, value)| ds[key] = value; ds }
35
+ end
36
+
37
+ def key?(key)
38
+ self.respond_to?(key)
39
+ end
40
+ alias_method :has_key?, :key?
41
+
42
+ def keys
43
+ @table.keys
44
+ end
45
+
46
+ def each(&block)
47
+ self.each_pair &block
48
+ end
49
+
26
50
  # Delete all data fields
27
51
  def clear!
28
52
  @table.keys.each { |key| delete_field(key) }
@@ -1,5 +1,5 @@
1
1
  module Libis
2
2
  module Tools
3
- VERSION = '0.9.23'
3
+ VERSION = '0.9.24'
4
4
  end
5
5
  end
data/libis-tools.gemspec CHANGED
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
32
32
  spec.add_development_dependency 'rspec', '~> 3.1'
33
33
  spec.add_development_dependency 'simplecov', '~> 0.9'
34
34
  spec.add_development_dependency 'equivalent-xml', '~> 0.5'
35
- spec.add_development_dependency 'awesome_print', '~> 0'
35
+ spec.add_development_dependency 'awesome_print', '~> 1.6'
36
36
 
37
37
  spec.add_runtime_dependency 'backports', '~> 3.6'
38
38
  spec.add_runtime_dependency 'nokogiri', '~> 1.6'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libis-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.23
4
+ version: 0.9.24
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kris Dekeyser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-07 00:00:00.000000000 Z
11
+ date: 2016-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '1.6'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '1.6'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: backports
99
99
  requirement: !ruby/object:Gem::Requirement