flextures 4.2.8 → 4.3.0

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