spreadsheet_model 0.3.2 → 0.3.3

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: c0dbc737330ecea72a3f1ac227ddcc87b7bfa574
4
- data.tar.gz: 04b5d610be3393f8fd36d4979e3939656124fad3
3
+ metadata.gz: 9f62c026036ee840186938e7f4deaf09f56a6ba2
4
+ data.tar.gz: 33ad2c4688541958f524c29468df843392e88a68
5
5
  SHA512:
6
- metadata.gz: 7a91fd942716769c4570daed06c0dbf059a8057e5afdd205099c44eb07bc2ce71f25ae410453115e5056d82d1d0d7779f88b171fcb51ce5ae3832bb163f5bc68
7
- data.tar.gz: 558241f0830ce2d0f0891dbd741542725dda59f57f0d7859bf6213948a177ae2a44bcedd07e4279870a9688b30b4c3b4f8fd9fd5104a4492df9f37bbe733bbd2
6
+ metadata.gz: 39a82a8273359b3574f7f27875a85dfad342c9b4d2b09e752431f0e849315c65a8e1d72ef9393a40d36ecfef80c13286628ffba054ec945efaefeab55e51fa0f
7
+ data.tar.gz: bb997b749907bdbbabc25acb2e2f74c460fe2ba2bad07a0bad68f50824b361a1db8edee7c5bd9ce8da7f9109a51d2098d6f38b0553635e97e113f2f6036c1c87
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- spreadsheet_model (0.3.0)
4
+ spreadsheet_model (0.3.3)
5
5
  activemodel
6
6
  activesupport
7
7
  google_drive (~> 1.0)
@@ -1,3 +1,3 @@
1
1
  module SpreadsheetModel
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
@@ -40,11 +40,17 @@ module SpreadsheetModel
40
40
  sheets.each do |sheet|
41
41
  rows = sheet.rows.dup
42
42
  header = rows.shift
43
- rows.each do |row|
43
+
44
+ store_hash = rows.each_with_object({}) do |row, store_hash|
44
45
  row_hash = Hash[*header.zip(row).flatten]
45
46
  row_hash = @import_callback.call(row_hash) if @import_callback
46
- write_rows = [read_cache(row[0]), row_hash].compact.flatten
47
- write_cache(row[0], write_rows)
47
+ write_rows = [store_hash[row[0]], row_hash].compact.flatten
48
+ store_hash[row[0]] = write_rows
49
+ store_hash
50
+ end
51
+
52
+ store_hash.each do |k, v|
53
+ write_cache(k, v)
48
54
  end
49
55
  end
50
56
  write_cache('__cached', true)
@@ -134,6 +140,7 @@ module SpreadsheetModel
134
140
  end
135
141
 
136
142
  def self.row_to_instance(row)
143
+ return nil unless row
137
144
  attributes = row.select { |key, _| @@column_names.include?(key.to_sym) }
138
145
 
139
146
  if attributes['type'].to_s.present?
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spreadsheet_model
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - zucay