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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 321553d3e5ebc854442c46e438052d35af9cf4aba2c72bc67d5c2ff069b3c2d8
4
- data.tar.gz: 70fe60e1e926b292ce24c19457267e1af09eee964e3d1d72a47c11bd65c3f535
2
+ SHA1:
3
+ metadata.gz: 3d5b5f8669105bb8d7983048f511abb334ef9d73
4
+ data.tar.gz: f2ebee5e087ef16940f41c4292b2762a59837e81
5
5
  SHA512:
6
- metadata.gz: d98f4090b1882c8cb792f4c1241f0cfdab81216a2843398539b1629d5e9cc6bf19707ac06a77acfd1e5cbb0f8d392aa302095ad483c054dc80978cf98c21b7f3
7
- data.tar.gz: 691276d8559981402e222835d516d18980f245314e4e535c8fcf8e1eed8a45e4d97c7be1996c2087641a8b282d8fcedd57ddc9a830e4b64ee8645e59660df183
6
+ metadata.gz: 8266950fffe4d6d37b60884b491d8402311fc7a5c30f22f1ca7070378a4060355e8c80417d8dfad5054a9eac03cf51a90a2f2c8f9d366aa77f3efee832443836
7
+ data.tar.gz: 5563a6ce0f18183364f3ecdd25b13503c0502cb2591a3ebee8aae78a6a293a76317b7702acb1db4622278377d6e79115030bb0ce5235c6733c71cb850e5c2570
@@ -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
- source_klass.human_attribute_name(column)
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
- source_klass.human_attribute_name(header)
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))
@@ -17,7 +17,7 @@ module CsvImportMagic
17
17
  end
18
18
 
19
19
  def column_separator
20
- header = content.lines("\r")[0].gsub(/[^,;\t]/, '_')
20
+ header = content.lines[0].gsub(/[^,;\t]/, '_')
21
21
  header.scan(/[,;\t]/).first
22
22
  end
23
23
 
@@ -1,4 +1,4 @@
1
- <% columns = @importer.importable_columns(@importer.parser).map { |column| [@importer.source_klass.human_attribute_name(column), column] }.unshift([t('csv_import_magic.views.importers.edit.ignore_column_label'), :ignore]) %>
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][", as: :select, collection: columns, label: false, hint: t('csv_import_magic.views.importers.edit.hint'), include_blank: false, selected: f.object.columns[i] || selected %>
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>
@@ -1,3 +1,3 @@
1
1
  module CsvImportMagic
2
- VERSION = '0.0.7'.freeze
2
+ VERSION = '0.0.8'.freeze
3
3
  end
@@ -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.source_klass.human_attribute_name(column), column] }.unshift([t('csv_import_magic.views.importers.edit.ignore_column_label'), :ignore]) %>
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][", as: :select, collection: columns, label: false, hint: t('csv_import_magic.views.importers.edit.hint'), include_blank: false, selected: f.object.columns[i] || selected %>
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.7
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: 2018-06-06 00:00:00.000000000 Z
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.7.6
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