libis-tools 0.9.48 → 0.9.49
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 +4 -4
- data/lib/libis/tools/config_file.rb +1 -2
- data/lib/libis/tools/deep_struct.rb +15 -2
- data/lib/libis/tools/extend/roo.rb +2 -8
- data/lib/libis/tools/spreadsheet.rb +1 -1
- data/lib/libis/tools/version.rb +1 -1
- data/spec/config_file_spec.rb +2 -2
- data/spec/spreadsheet_spec.rb +0 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 126e8ab6d9702232cdc3d787424f3a6a87825fec
|
4
|
+
data.tar.gz: d90fd1aed354e349be0a0fdd7aa9266af714d150
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2fbdeb3e52a27f3607867c328822e982bd2f307440c3dabc3da21a79fb60d4e7ac09e566c35ecebb2ec0eda85b2e4145d5e1beac8bd09dc8e1fcc34549dc5dfd
|
7
|
+
data.tar.gz: a6349ba0aa99aebab5d56af9ff63eeb8ddbf7ad8cc69a4c50c0bfbee73e787f5d6c0f4ca7ec775ce416436e6278ec7f04e26ff77b7de110005b428214bcd42c6
|
@@ -46,8 +46,7 @@ module Libis
|
|
46
46
|
#
|
47
47
|
# @param [String,Hash] file_or_hash optional String or Hash argument to initialize the data.
|
48
48
|
def <<(file_or_hash, &block)
|
49
|
-
_file_to_hash(file_or_hash, &block)
|
50
|
-
self
|
49
|
+
self.merge!(_file_to_hash(file_or_hash, &block))
|
51
50
|
end
|
52
51
|
|
53
52
|
# Save configuration parameters in a YAML file.
|
@@ -26,12 +26,25 @@ module Libis
|
|
26
26
|
|
27
27
|
def merge(hash)
|
28
28
|
return self unless hash.respond_to?(:to_hash)
|
29
|
-
hash.to_hash.inject(self.dup)
|
29
|
+
hash.to_hash.inject(self.dup) do |ds, (key, value)|
|
30
|
+
ds[key] = DeepDup.new(
|
31
|
+
recurse_over_arrays: @recurse_over_arrays,
|
32
|
+
preserve_original_keys: @preserve_original_keys
|
33
|
+
).call(value)
|
34
|
+
ds
|
35
|
+
end
|
30
36
|
end
|
31
37
|
|
32
38
|
def merge!(hash)
|
33
39
|
return self unless hash.respond_to?(:to_hash)
|
34
|
-
hash.to_hash.inject(self)
|
40
|
+
hash.to_hash.inject(self) do |ds, (key, value)|
|
41
|
+
ds[key] = DeepDup.new(
|
42
|
+
recurse_over_arrays: @recurse_over_arrays,
|
43
|
+
preserve_original_keys: @preserve_original_keys
|
44
|
+
).call(value)
|
45
|
+
ds
|
46
|
+
end
|
47
|
+
self
|
35
48
|
end
|
36
49
|
|
37
50
|
def key?(key)
|
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'roo'
|
2
2
|
require 'roo-xls'
|
3
|
-
require 'roo-google'
|
4
3
|
require 'libis/tools/extend/hash'
|
5
4
|
|
6
5
|
module Roo
|
@@ -9,9 +8,8 @@ module Roo
|
|
9
8
|
class Base
|
10
9
|
|
11
10
|
# changes:
|
12
|
-
# - added option :skip_header to prevent #each and #parse to return the header row
|
13
11
|
# - added option :partial_match to allow to use headers that only partially match the query
|
14
|
-
# - added option :
|
12
|
+
# - added option :required_headers to force the result to have at least these columns
|
15
13
|
# - allow option :headers to contain an array with header labels that will be forced when no header row is found
|
16
14
|
# - improved proper range scanning (first_row->last_row and first_column->last_column)
|
17
15
|
|
@@ -20,13 +18,11 @@ module Roo
|
|
20
18
|
def each(options = {})
|
21
19
|
return to_enum(:each, options) unless block_given?
|
22
20
|
|
23
|
-
skip_headers = options.delete(:skip_headers)
|
24
21
|
@partial_match = options.delete(:partial_match) if options.has_key?(:partial_match)
|
25
22
|
required_headers = options.delete(:required_headers) if options.has_key?(:required_headers)
|
26
23
|
|
27
24
|
if options.empty?
|
28
25
|
first_row.upto(last_row) do |line|
|
29
|
-
next if skip_headers && line == header_line
|
30
26
|
yield row(line)
|
31
27
|
end
|
32
28
|
else
|
@@ -36,9 +32,7 @@ module Roo
|
|
36
32
|
raise Roo::HeaderRowIncompleteError unless headers.keys & required_headers == required_headers
|
37
33
|
end
|
38
34
|
|
39
|
-
|
40
|
-
start_line += 1 if skip_headers
|
41
|
-
start_line.upto(last_row) do |line|
|
35
|
+
header_line.upto(last_row) do |line|
|
42
36
|
yield(Hash[headers.map { |k, v| [k, cell(line, v)] }])
|
43
37
|
end
|
44
38
|
end
|
data/lib/libis/tools/version.rb
CHANGED
data/spec/config_file_spec.rb
CHANGED
@@ -39,7 +39,7 @@ describe ::Libis::Tools::ConfigFile do
|
|
39
39
|
subject << hash
|
40
40
|
# noinspection RubyResolve
|
41
41
|
subject.b.v = 1
|
42
|
-
hash[:b][
|
42
|
+
hash[:b][:v] = 1
|
43
43
|
expect(subject.to_hash).to eq hash
|
44
44
|
end
|
45
45
|
|
@@ -47,7 +47,7 @@ describe ::Libis::Tools::ConfigFile do
|
|
47
47
|
subject << hash
|
48
48
|
# noinspection RubyResolve
|
49
49
|
subject.c[0][0].a[0].v = 1
|
50
|
-
hash[:c][0][0][:a][0][
|
50
|
+
hash[:c][0][0][:a][0][:v] = 1
|
51
51
|
expect(subject.to_hash).to eq hash
|
52
52
|
end
|
53
53
|
|
data/spec/spreadsheet_spec.rb
CHANGED
@@ -809,7 +809,6 @@ describe 'Libis::Tools::Spreadsheet' do
|
|
809
809
|
it '#shift returns Hash object' do
|
810
810
|
row = ss.shift
|
811
811
|
expect(row).to be_a Hash
|
812
|
-
puts row
|
813
812
|
expect(row['Date']).to eq Date.new(2016, 05, 10)
|
814
813
|
expect(row['Amount']).to eq 1270.0
|
815
814
|
expect(row['Code']).to eq 1
|
@@ -857,7 +856,6 @@ describe 'Libis::Tools::Spreadsheet' do
|
|
857
856
|
it '#shift returns Hash object' do
|
858
857
|
row = ss.shift
|
859
858
|
expect(row).to be_a Hash
|
860
|
-
puts row
|
861
859
|
expect(row['Date']).to eq Date.new(2016, 05, 10)
|
862
860
|
expect(row['Amount']).to eq 1270.0
|
863
861
|
expect(row['Code']).to eq 1
|
@@ -1080,7 +1078,6 @@ describe 'Libis::Tools::Spreadsheet' do
|
|
1080
1078
|
it '#shift returns Hash object' do
|
1081
1079
|
row = ss.shift
|
1082
1080
|
expect(row).to be_a Hash
|
1083
|
-
puts row
|
1084
1081
|
expect(row['Date']).to eq Date.new(2016, 05, 10)
|
1085
1082
|
expect(row['Amount']).to eq 1270.0
|
1086
1083
|
expect(row['Code']).to eq 1
|
@@ -1128,7 +1125,6 @@ describe 'Libis::Tools::Spreadsheet' do
|
|
1128
1125
|
it '#shift returns Hash object' do
|
1129
1126
|
row = ss.shift
|
1130
1127
|
expect(row).to be_a Hash
|
1131
|
-
puts row
|
1132
1128
|
expect(row['Date']).to eq Date.new(2016, 05, 10)
|
1133
1129
|
expect(row['Amount']).to eq 1270.0
|
1134
1130
|
expect(row['Code']).to eq 1
|
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.49
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kris Dekeyser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-07-
|
11
|
+
date: 2017-07-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|