flextures 4.2.8 → 4.3.0

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
  SHA256:
3
- metadata.gz: cf2d34b2424a6a16564ed647a928edb9192b5b1182605393cceba57b1c097972
4
- data.tar.gz: 27c93837bf4afb4ab4dfacd5a7f1dadb85491c0b7093287525a012bd899705fd
3
+ metadata.gz: cd48603044fc6a0a8f6ff646aece2804e0df83414adbe259febd21fb0f929776
4
+ data.tar.gz: 611df504022d691e7b2e09c0c5291e6ca843862e648d292f117879ded165aff0
5
5
  SHA512:
6
- metadata.gz: ee0c12d7492320c6664273390d730e9729df0af8ef02e28a06a3dbdd51ce22124c55555e9f372d0b8d6d2efb471a9659b535d59e168501c4d90086c4a0768ab0
7
- data.tar.gz: 5f63de4503c68eaac01dc6a3c9142af82f78b5748ec9c9073b25597080bd52014959d61080fa9294c690f472ef1f504ded820ee8b086eb98587afc38482b4a97
6
+ metadata.gz: 39e81189895c1a872b33db9c5670e61f64bd2f8f26f534b49252e5b96abaf29f08ef18c69d8979427f667084a92ad12252d1cd3781ad2f75b9b53113223a1642
7
+ data.tar.gz: adcbad6bedf954ad1ada25dcaa4a57bd1f9708c9c97eaab24852729f18e1cfb8e8db0c1c84616ae75343fae24760876dad34b888e75c2ab8fd972b502591f507
data/Gemfile CHANGED
@@ -1,11 +1,12 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- ruby ">= 2.1.0"
3
+ ruby ">= 2.3.0"
4
4
 
5
5
  # Specify your gem's dependencies in flextures.gemspec
6
6
  gemspec
7
7
 
8
8
  gem "minitest", "5.4.0"
9
+ gem "smarter_csv"
9
10
 
10
11
  group :test do
11
12
  gem "minitest-line", "0.6.2"
@@ -1,27 +1,28 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- flextures (4.2.8)
4
+ flextures (4.3.0)
5
5
  activerecord
6
6
  activesupport
7
+ smarter_csv
7
8
 
8
9
  GEM
9
10
  remote: https://rubygems.org/
10
11
  specs:
11
- activemodel (5.2.0)
12
- activesupport (= 5.2.0)
13
- activerecord (5.2.0)
14
- activemodel (= 5.2.0)
15
- activesupport (= 5.2.0)
12
+ activemodel (5.2.3)
13
+ activesupport (= 5.2.3)
14
+ activerecord (5.2.3)
15
+ activemodel (= 5.2.3)
16
+ activesupport (= 5.2.3)
16
17
  arel (>= 9.0)
17
- activesupport (5.2.0)
18
+ activesupport (5.2.3)
18
19
  concurrent-ruby (~> 1.0, >= 1.0.2)
19
20
  i18n (>= 0.7, < 2)
20
21
  minitest (~> 5.1)
21
22
  tzinfo (~> 1.1)
22
23
  arel (9.0.0)
23
- concurrent-ruby (1.0.5)
24
- i18n (1.0.1)
24
+ concurrent-ruby (1.1.5)
25
+ i18n (1.6.0)
25
26
  concurrent-ruby (~> 1.0)
26
27
  minitest (5.4.0)
27
28
  minitest-bang (0.1.1)
@@ -35,6 +36,7 @@ GEM
35
36
  power_assert
36
37
  power_assert (0.2.2)
37
38
  rake (0.9.2.2)
39
+ smarter_csv (1.2.6)
38
40
  thread_safe (0.3.6)
39
41
  tzinfo (1.2.5)
40
42
  thread_safe (~> 0.1)
@@ -51,9 +53,10 @@ DEPENDENCIES
51
53
  minitest-line (= 0.6.2)
52
54
  minitest-power_assert (= 0.0.3)
53
55
  rake
56
+ smarter_csv
54
57
 
55
58
  RUBY VERSION
56
- ruby 2.2.3p173
59
+ ruby 2.6.0p-1
57
60
 
58
61
  BUNDLED WITH
59
- 1.16.2
62
+ 1.17.2
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
19
19
 
20
20
  spec.add_dependency "activerecord"
21
21
  spec.add_dependency "activesupport"
22
+ spec.add_dependency "smarter_csv"
22
23
 
23
24
  spec.add_development_dependency "bundler", "~> 1.6"
24
25
  spec.add_development_dependency "rake"
@@ -1,6 +1,7 @@
1
1
  require 'ostruct'
2
2
  require 'csv'
3
3
  require 'erb'
4
+ require 'smarter_csv'
4
5
 
5
6
  require 'active_record'
6
7
 
@@ -240,25 +241,18 @@ module Flextures
240
241
 
241
242
  def self.load_csv(format, klass, filter, file_name)
242
243
  file = self.load_file(format, file_name)
243
- CSV.open(file) do |csv|
244
- self.load_csv_row(csv, format, klass, filter, file_name)
245
- end
246
- file_name
247
- end
248
-
249
- def self.load_csv_row(csv, format, klass, filter, file_name)
250
244
  attributes = klass.columns.map(&:name)
251
- keys = csv.shift # active record column names
252
-
253
- warning("CSV", attributes, keys) unless format[:silent]
254
-
255
245
  ActiveRecord::Base.transaction do
256
- csv.each do |values|
257
- h = values.to_hash(keys)
246
+ csv = SmarterCSV.process(file.path)
247
+ keys = csv.first.keys.map(&:to_s)
248
+ warning("CSV", attributes, keys) unless format[:silent]
249
+ csv.each do |row|
250
+ h = row.reduce({}){ |h,(k,v)| h[k.to_s]=v; h }
258
251
  o = filter.call(h)
259
252
  o.save(validate: false)
260
253
  end
261
254
  end
255
+ file_name
262
256
  end
263
257
 
264
258
  def self.load_yml(format, klass, filter, file_name)
@@ -377,7 +371,7 @@ module Flextures
377
371
  translaters = column_hash.reduce({}){ |h,(k,col)| h[k] = col.translater(klass); h }
378
372
  strict_filter = ->(o,h){
379
373
  # if value is not 'nil', value translate suitable form
380
- h.each{ |k,v| v.nil? || o[k] = translaters[k]&.call(v) }
374
+ h.each { |k,v| v.nil? || o[k] = translaters[k]&.call(v) }
381
375
  # call FactoryFilter
382
376
  factory.call(*[o, filename, ext][0, factory.arity]) if factory and !options[:unfilter]
383
377
  o
@@ -1,3 +1,3 @@
1
1
  module Flextures
2
- VERSION="4.2.8".freeze
2
+ VERSION="4.3.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flextures
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.8
4
+ version: 4.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - baban
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-13 00:00:00.000000000 Z
11
+ date: 2019-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: smarter_csv
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -123,8 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
137
  - !ruby/object:Gem::Version
124
138
  version: '0'
125
139
  requirements: []
126
- rubyforge_project:
127
- rubygems_version: 2.7.6
140
+ rubygems_version: 3.0.3
128
141
  signing_key:
129
142
  specification_version: 4
130
143
  summary: load and dump fixtures.