libis-tools 0.9.48 → 0.9.49

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