libis-tools 0.9.23 → 0.9.24

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