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 +4 -4
- data/lib/libis/tools/deep_struct.rb +24 -0
- data/lib/libis/tools/version.rb +1 -1
- data/libis-tools.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 472d651eedc43e5a8997ede9bb94f4c4f3d09777
|
4
|
+
data.tar.gz: 0a1296a2c6d98632a296af09ac45324c00183d53
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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) }
|
data/lib/libis/tools/version.rb
CHANGED
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', '~>
|
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.
|
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-
|
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: '
|
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: '
|
96
|
+
version: '1.6'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: backports
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|