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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 216f400d1d4418bb8ca3398c7f7f6a4d009a3d9f
4
- data.tar.gz: 1e390dc571ff5337eae238dc4b36d4864d7588e8
3
+ metadata.gz: 126e8ab6d9702232cdc3d787424f3a6a87825fec
4
+ data.tar.gz: d90fd1aed354e349be0a0fdd7aa9266af714d150
5
5
  SHA512:
6
- metadata.gz: 7d9a343d90a548d12962fae171f04bc6e398898dda748839de47958927cfb6f4403c3806cc4b6bf2680a242eb4ef47abb4de00176070c59a546d9845c8405ee1
7
- data.tar.gz: 3ad5cf76ff3f996cba3eb65244ad06b0fc79ea606ceeccf380d4c93aa6aaf0b78c8852a3ef38cc0b6e2f577369a20a2e83580f29e7f01b6d8a77e006dd96a716
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).each { |key, value| self[key] = value }
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) { |ds, (key, value)| ds[key] = value; ds }
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) { |ds, (key, value)| ds[key] = value; ds }
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 :required to force the result to have at least these columns
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
- start_line = header_line
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
@@ -184,7 +184,7 @@ module Libis
184
184
  end
185
185
 
186
186
  @current_row = @ss.header_line
187
- @header_options = ss_options.merge(skip_headers: true)
187
+ @header_options = ss_options
188
188
  end
189
189
 
190
190
  @header_options.dup
@@ -1,5 +1,5 @@
1
1
  module Libis
2
2
  module Tools
3
- VERSION = '0.9.48'
3
+ VERSION = '0.9.49'
4
4
  end
5
5
  end
@@ -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]['v'] = 1
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]['v'] = 1
50
+ hash[:c][0][0][:a][0][:v] = 1
51
51
  expect(subject.to_hash).to eq hash
52
52
  end
53
53
 
@@ -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.48
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-06 00:00:00.000000000 Z
11
+ date: 2017-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler