smarter_csv 1.2.3 → 1.2.4

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: c0efcd4dbad2546469ba99c1a133bc7548382e147fca66207d11065607fdb5ee
4
- data.tar.gz: 98024633925ed73251dd00606f23f73ca6cbda5517c24882b95935138ab4d7e3
3
+ metadata.gz: b12b00d4615d3c9c6bb3f233b5179b8a3990204af46c88b6ee2203de307608e0
4
+ data.tar.gz: 215dc43d5280083f7452c0be169daab991057239601fa37c23cd474649a8cd4d
5
5
  SHA512:
6
- metadata.gz: ac64f3a688f9b5b4bce09e26d8ee140994bf585578ea6eed1d998cec434535f3afb4aa8c2ea222b873cb5ee113fba748412a96e1b3b23a8b5425d13aa7a6436c
7
- data.tar.gz: f8c3132f1f2cf60f8f67d2278d0b3660d7aab456581256e1c2508d1397c1cc31d455035c68656777c34e90ad6238c239699b1c59cdd918cdcd63c9f5a264aaba
6
+ metadata.gz: 05bc8348e29d095788ee6d2a9cf299232fc1e7f8abc5048544e80a0f0c6b5d7517b935daddc3eb697a5f01616eb5a3dd2a9b4d0ee489f358e0b95718caba243f
7
+ data.tar.gz: bd2b070f965ba554b2b2551a5959690308a1a68fdbe452b6d7900e7c665202e73e1b1bfba0b4d4da72324490c55e8fd869497df64e959b80706af63509a4b1fd
@@ -9,7 +9,7 @@ matrix:
9
9
  - rvm: 2.2.8
10
10
  - rvm: 2.3.5
11
11
  - rvm: 2.4.2
12
- - rvm: jruby-9.1.13.0
12
+ - rvm: jruby-9.1.15.0
13
13
  env:
14
14
  - JRUBY_OPTS="--server -Xcompile.invokedynamic=false -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -J-noverify -J-Xms512m -J-Xmx1024m"
15
15
  - rvm: ruby-head
@@ -17,3 +17,5 @@ matrix:
17
17
  branches:
18
18
  only:
19
19
  - master
20
+ - 1.2-stable
21
+ - 2.0-develop
data/README.md CHANGED
@@ -324,11 +324,12 @@ Planned in the next releases:
324
324
 
325
325
  ## Changes
326
326
 
327
+ #### 1.2.4 (2018-08-06)
328
+ * using Rails blank? if it's available
329
+
327
330
  #### 1.2.3 (2018-01-27)
328
331
  * fixed regression / test
329
332
  * fuxed quote_char interpolation for headers, but not data (thanks to Colin Petruno)
330
-
331
- #### 1.2.1 (2018-01-25) ### YANKED!
332
333
  * bugfix (thanks to Joshua Smith for reporting)
333
334
 
334
335
  #### 1.2.0 (2018-01-20)
@@ -385,9 +386,6 @@ Planned in the next releases:
385
386
  #### 1.0.14 (2013-11-01)
386
387
  * added GPL-2 and MIT license to GEM spec file; if you need another license contact me
387
388
 
388
- #### 1.0.13 (2013-11-01) ### YANKED!
389
- * added GPL-2 license to GEM spec file; if you need another license contact me
390
-
391
389
  #### 1.0.12 (2013-10-15)
392
390
  * added RSpec tests
393
391
 
@@ -22,6 +22,7 @@ module SmarterCSV
22
22
  old_row_sep = $/
23
23
  file_line_count = 0
24
24
  csv_line_count = 0
25
+ has_rails = !! defined?(Rails)
25
26
  begin
26
27
  f = input.respond_to?(:readline) ? input : File.open(input, "r:#{options[:file_encoding]}")
27
28
 
@@ -167,7 +168,13 @@ module SmarterCSV
167
168
 
168
169
  # remove empty values using the same regexp as used by the rails blank? method
169
170
  # which caters for double \n and \r\n characters such as "1\r\n\r\n2" whereas the original check (v =~ /^\s*$/) does not
170
- hash.delete_if{|k,v| v.nil? || v !~ /[^[:space:]]/} if options[:remove_empty_values]
171
+ if options[:remove_empty_values]
172
+ if has_rails
173
+ hash.delete_if{|k,v| v.blank?}
174
+ else
175
+ hash.delete_if{|k,v| v.nil? || v !~ /[^[:space:]]/}
176
+ end
177
+ end
171
178
 
172
179
  hash.delete_if{|k,v| ! v.nil? && v =~ /^(\d+|\d+\.\d+)$/ && v.to_f == 0} if options[:remove_zero_values] # values are typically Strings!
173
180
  hash.delete_if{|k,v| v =~ options[:remove_values_matching]} if options[:remove_values_matching]
@@ -1,3 +1,3 @@
1
1
  module SmarterCSV
2
- VERSION = "1.2.3"
2
+ VERSION = "1.2.4"
3
3
  end
@@ -0,0 +1,8 @@
1
+ Compte;Date de comptabilisation;Date op�ration;Libell�;R�f�rence;Date valeur;Montant
2
+ 22215449203;02/06/2018;01/06/2018;ECHEANCE PRET DONT CAP 410,33 ASS. 8,00E INT. 21,87 COM. 0,00E;8711552;01/06/2018;-440,20;
3
+ 22215449203;04/06/2018;04/06/2018;EVI Gaultier Laperche remboursement compte courant;1038326;04/06/2018;-144,07;
4
+ 22215449203;04/06/2018;04/06/2018;EVI Guillemain Nicolas remboursement CC pret d'honneur;1038328;04/06/2018;-144,07;
5
+ 22215449203;01/06/2018;01/06/2018;310518 SC****5448 INTERMARCHE 95ERMONT;701JQ1K;01/06/2018;-16,00;
6
+ 22215449203;01/06/2018;01/06/2018;EVI Stripe Payments UK L STRIPE E7U0R1;706AO1Q;01/06/2018;45,89;
7
+ 22215449203;01/06/2018;01/06/2018;EVI Compte N26 Heroku;1100653;01/06/2018;-700,00;
8
+ 22215449203;31/05/2018;31/05/2018;EVI Stripe Payments UK L STRIPE L2J1N7;6YISBWF;31/05/2018;465,89;
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ fixture_path = 'spec/fixtures'
4
+
5
+ describe 'loading file with UTF-8 characters in the header' do
6
+
7
+ # file which caused issues because of UTF-8 characters in the header
8
+ it 'loads the file with force_utf8 flag set' do
9
+ options = {col_sep: ";", force_utf8: true}
10
+ data = SmarterCSV.process("#{fixture_path}/problematic.csv", options)
11
+
12
+ data.length.should eq 7
13
+ end
14
+
15
+ it 'loads the file with strings as keys' do
16
+ options = {
17
+ file_encoding: 'iso-8859-1:UTF-8', # important!
18
+ col_sep: ";", strings_as_keys: true,
19
+ }
20
+ data = SmarterCSV.process("#{fixture_path}/problematic.csv", options)
21
+
22
+ data.length.should eq 7
23
+ data.first.keys.sort.should eq [
24
+ "compte",
25
+ "date_de_comptabilisation",
26
+ "date_opération",
27
+ "date_valeur",
28
+ "libellé",
29
+ "montant",
30
+ "référence"
31
+ ]
32
+ end
33
+
34
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smarter_csv
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.3
4
+ version: 1.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - 'Tilo Sloboda
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2018-01-27 00:00:00.000000000 Z
13
+ date: 2018-08-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
@@ -68,6 +68,7 @@ files:
68
68
  - spec/fixtures/no_header.csv
69
69
  - spec/fixtures/numeric.csv
70
70
  - spec/fixtures/pets.csv
71
+ - spec/fixtures/problematic.csv
71
72
  - spec/fixtures/quote_char.csv
72
73
  - spec/fixtures/quoted.csv
73
74
  - spec/fixtures/quoted2.csv
@@ -95,6 +96,7 @@ files:
95
96
  - spec/smarter_csv/malformed_spec.rb
96
97
  - spec/smarter_csv/no_header_spec.rb
97
98
  - spec/smarter_csv/not_downcase_header_spec.rb
99
+ - spec/smarter_csv/problematic.rb
98
100
  - spec/smarter_csv/quoted_spec.rb
99
101
  - spec/smarter_csv/remove_empty_values_spec.rb
100
102
  - spec/smarter_csv/remove_keys_from_hashes_spec.rb
@@ -157,6 +159,7 @@ test_files:
157
159
  - spec/fixtures/no_header.csv
158
160
  - spec/fixtures/numeric.csv
159
161
  - spec/fixtures/pets.csv
162
+ - spec/fixtures/problematic.csv
160
163
  - spec/fixtures/quote_char.csv
161
164
  - spec/fixtures/quoted.csv
162
165
  - spec/fixtures/quoted2.csv
@@ -184,6 +187,7 @@ test_files:
184
187
  - spec/smarter_csv/malformed_spec.rb
185
188
  - spec/smarter_csv/no_header_spec.rb
186
189
  - spec/smarter_csv/not_downcase_header_spec.rb
190
+ - spec/smarter_csv/problematic.rb
187
191
  - spec/smarter_csv/quoted_spec.rb
188
192
  - spec/smarter_csv/remove_empty_values_spec.rb
189
193
  - spec/smarter_csv/remove_keys_from_hashes_spec.rb