csv_import_magic 0.0.7 → 0.0.8

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