smarter_csv 1.0.2 → 1.0.3

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.
data/README.md CHANGED
@@ -127,7 +127,7 @@ The options and the block are optional.
127
127
  `SmarterCSV.process` supports the following options:
128
128
 
129
129
  Option | Default | Explanation
130
- -----------------------------+----------+--------------------------------------------------------------
130
+ --------------------------------+-----------+--------------------------------------------------------------
131
131
  :col_sep | ',' | column separator
132
132
  :row_sep | $/ ,"\n" | row separator or record separator , defaults to system's $/ , which defaults to "\n"
133
133
  :quote_char | '"' | quotation character
@@ -136,14 +136,16 @@ The options and the block are optional.
136
136
  :key_mapping | nil | a hash which maps headers from the CSV file to keys in the result hash
137
137
  :downcase_header | true | downcase all column headers
138
138
  :strings_as_keys | false | use strings instead of symbols as the keys in the result hashes
139
+ :strip_whitepace_from_values| true | remove whitespace before/after values
139
140
  :remove_empty_values | true | remove values which have nil or empty strings as values
140
141
  :remove_zero_values | true | remove values which have a numeric value equal to zero / 0
141
142
  :remove_values_matching | nil | removes key/value pairs if value matches given regular expressions. e.g.:
142
143
  | | /^\$0\.0+$/ to match $0.00 , or /^#VALUE!$/ to match errors in Excel spreadsheets
143
144
  :convert_values_to_numeric | true | converts strings containing Integers or Floats to the appropriate class
144
145
  :remove_empty_hashes | true | remove / ignore any hashes which don't have any key/value pairs
145
- :user_provided_headers | nil | user provided Array of header strings or symbols, to define
146
- | | what headers should be used, overriding any in-file headers. (dangerous)
146
+ :user_provided_headers | nil | *careful with that axe!*
147
+ | | user provided Array of header strings or symbols, to define
148
+ | | what headers should be used, overriding any in-file headers.
147
149
  | | You can not combine the :user_provided_headers and :key_mapping options
148
150
  :headers_in_file | true | Whether or not the file contains headers as the first line.
149
151
  | | Important if the file does not contain headers,
@@ -194,7 +196,12 @@ Or install it yourself as:
194
196
 
195
197
  ## Changes
196
198
 
197
- #### 1.0.1 (2012-08-02)
199
+ #### 1.0.3 (2012-08-02)
200
+
201
+ * added the following options:
202
+ * strip_whitepace_from_values
203
+
204
+ #### 1.0.2 (2012-08-02)
198
205
 
199
206
  * added more options for dealing with headers:
200
207
  * :user_provided_headers ,user provided Array with header strings or symbols, to precisely define what the headers should be, overriding any in-file headers (default: nil)
@@ -5,7 +5,7 @@ module SmarterCSV
5
5
 
6
6
  def SmarterCSV.process(filename, options={}, &block)
7
7
  default_options = {:col_sep => ',' , :row_sep => $/ , :quote_char => '"',
8
- :remove_empty_values => true, :remove_zero_values => false , :remove_values_matching => nil , :remove_empty_hashes => true ,
8
+ :remove_empty_values => true, :remove_zero_values => false , :remove_values_matching => nil , :remove_empty_hashes => true , :strip_whitespace_from_values => true,
9
9
  :convert_values_to_numeric => true, :strip_chars_from_headers => nil , :user_provided_headers => nil , :headers_in_file => true,
10
10
  :comment_regexp => /^#/, :chunk_size => nil , :key_mapping_hash => nil , :downcase_header => true, :strings_as_keys => false
11
11
  }
@@ -68,6 +68,7 @@ module SmarterCSV
68
68
  line.chomp! # will use $/ which is set to options[:col_sep]
69
69
 
70
70
  dataA = line.split(options[:col_sep])
71
+ dataA.map!{|x| x.strip} if options[:strip_whitespace_from_values]
71
72
  hash = Hash.zip(headerA,dataA) # from Facets of Ruby library
72
73
  # make sure we delete any key/value pairs from the hash, which the user wanted to delete:
73
74
  hash.delete(nil); hash.delete(''); hash.delete(:"") # delete any hash keys which were mapped to be deleted
@@ -1,3 +1,3 @@
1
1
  module SmarterCSV
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  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.0.2
4
+ version: 1.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2012-08-02 00:00:00.000000000 Z
14
+ date: 2012-08-17 00:00:00.000000000 Z
15
15
  dependencies: []
16
16
  description: Ruby Gem for smarter importing of CSV Files as Array(s) of Hashes, with
17
17
  optional features for processing large files in parallel, embedded comments, unusual