csv_import_magic 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/app/models/importer.rb +6 -2
- data/app/services/csv_import_magic/importer.rb +1 -1
- data/app/views/csv_import_magic/importers/edit.html.erb +2 -2
- data/lib/csv_import_magic/version.rb +1 -1
- data/spec/lib/generators/csv_import_magic/views_generator_spec.rb +2 -2
- data/spec/models/importer_spec.rb +18 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 3d5b5f8669105bb8d7983048f511abb334ef9d73
|
4
|
+
data.tar.gz: f2ebee5e087ef16940f41c4292b2762a59837e81
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8266950fffe4d6d37b60884b491d8402311fc7a5c30f22f1ca7070378a4060355e8c80417d8dfad5054a9eac03cf51a90a2f2c8f9d366aa77f3efee832443836
|
7
|
+
data.tar.gz: 5563a6ce0f18183364f3ecdd25b13503c0502cb2591a3ebee8aae78a6a293a76317b7702acb1db4622278377d6e79115030bb0ce5235c6733c71cb850e5c2570
|
data/app/models/importer.rb
CHANGED
@@ -33,6 +33,10 @@ class Importer < ActiveRecord::Base
|
|
33
33
|
source_klass.columns_names(name_of_parser.to_sym)
|
34
34
|
end
|
35
35
|
|
36
|
+
def human_attribute_name(column, options = {})
|
37
|
+
I18n.translate(:"activemodel.attributes.#{source_klass.model_name.i18n_key}.csv_import_magic.#{column}", options.merge(default: source_klass.human_attribute_name(column)))
|
38
|
+
end
|
39
|
+
|
36
40
|
private
|
37
41
|
|
38
42
|
def set_parser
|
@@ -53,7 +57,7 @@ class Importer < ActiveRecord::Base
|
|
53
57
|
return if columns_to_translate.blank?
|
54
58
|
|
55
59
|
transalated_name_of_columns = columns_to_translate.map do |column|
|
56
|
-
|
60
|
+
human_attribute_name(column)
|
57
61
|
end.to_sentence
|
58
62
|
|
59
63
|
errors.add(:columns, I18n.t('errors.messages.missing', count: columns_to_translate.size, columns: transalated_name_of_columns))
|
@@ -70,7 +74,7 @@ class Importer < ActiveRecord::Base
|
|
70
74
|
|
71
75
|
headers_to_translate = duplicate_headers.uniq
|
72
76
|
headers_transalated = headers_to_translate.map do |header|
|
73
|
-
|
77
|
+
human_attribute_name(header)
|
74
78
|
end.to_sentence
|
75
79
|
|
76
80
|
errors.add(:columns, I18n.t('errors.messages.uniq', count: headers_to_translate.size, columns: headers_transalated))
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<% columns = @importer.importable_columns(@importer.parser).map { |column| [@importer.
|
1
|
+
<% columns = @importer.importable_columns(@importer.parser).map { |column| [@importer.human_attribute_name(column), column] }.unshift([t('csv_import_magic.views.importers.edit.ignore_column_label'), :ignore]) %>
|
2
2
|
|
3
3
|
<h3 class='page-title'>
|
4
4
|
<%= t('csv_import_magic.views.importers.edit.title') %>
|
@@ -17,7 +17,7 @@
|
|
17
17
|
</header>
|
18
18
|
|
19
19
|
<% selected = columns.find { |c| c.join(' ').match(/#{header}/i) }.try(:last).presence || :ignore %>
|
20
|
-
<%= f.input "columns]
|
20
|
+
<%= f.input "columns[]", as: :select, collection: columns, label: false, hint: t('csv_import_magic.views.importers.edit.hint'), include_blank: false, selected: f.object.columns[i] || selected %>
|
21
21
|
|
22
22
|
<header class="examples"><%= t('csv_import_magic.views.importers.edit.example_of_values') %></header>
|
23
23
|
<table>
|
@@ -64,7 +64,7 @@ RSpec.describe CsvImportMagic::Generators::ViewsGenerator, type: :generator do
|
|
64
64
|
|
65
65
|
specify 'check structure of edit view' do
|
66
66
|
edit_content = <<-EOF
|
67
|
-
<% columns = @importer.importable_columns(@importer.parser).map { |column| [@importer.
|
67
|
+
<% columns = @importer.importable_columns(@importer.parser).map { |column| [@importer.human_attribute_name(column), column] }.unshift([t('csv_import_magic.views.importers.edit.ignore_column_label'), :ignore]) %>
|
68
68
|
|
69
69
|
<h3 class='page-title'>
|
70
70
|
<%= t('csv_import_magic.views.importers.edit.title') %>
|
@@ -83,7 +83,7 @@ RSpec.describe CsvImportMagic::Generators::ViewsGenerator, type: :generator do
|
|
83
83
|
</header>
|
84
84
|
|
85
85
|
<% selected = columns.find { |c| c.join(' ').match(/#\{header\}/i) }.try(:last).presence || :ignore %>
|
86
|
-
<%= f.input "columns]
|
86
|
+
<%= f.input "columns[]", as: :select, collection: columns, label: false, hint: t('csv_import_magic.views.importers.edit.hint'), include_blank: false, selected: f.object.columns[i] || selected %>
|
87
87
|
|
88
88
|
<header class="examples"><%= t('csv_import_magic.views.importers.edit.example_of_values') %></header>
|
89
89
|
<table>
|
@@ -79,4 +79,22 @@ RSpec.describe Importer, type: :model do
|
|
79
79
|
let(:importer) { create(:importer, source: 'company') }
|
80
80
|
it { expect(importer.importable_columns).to match_array([:name, :street, :number, :neighborhood, :city, :state, :country]) }
|
81
81
|
end
|
82
|
+
|
83
|
+
context '#human_attribute_name' do
|
84
|
+
let(:importer) { create(:importer, source: 'company') }
|
85
|
+
column = 'name'
|
86
|
+
context 'without a translation set' do
|
87
|
+
it 'defaults to source_klass human_attribute_name' do
|
88
|
+
expect(importer.human_attribute_name(column)).to eq(importer.source_klass.human_attribute_name(column))
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
context 'with a translation set' do
|
93
|
+
it 'returns scoped translation' do
|
94
|
+
allow(I18n).to receive(:translate)
|
95
|
+
allow(I18n).to receive(:translate).with(:"activemodel.attributes.company.csv_import_magic.name", default: importer.source_klass.human_attribute_name(column)).and_return('scoped transalation')
|
96
|
+
expect(importer.human_attribute_name(column)).to eq('scoped transalation')
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
82
100
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: csv_import_magic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Saulo Santiago
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-07-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -479,7 +479,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
479
479
|
version: '0'
|
480
480
|
requirements: []
|
481
481
|
rubyforge_project:
|
482
|
-
rubygems_version: 2.
|
482
|
+
rubygems_version: 2.6.10
|
483
483
|
signing_key:
|
484
484
|
specification_version: 4
|
485
485
|
summary: Engine for import CSV dynamically by model
|