mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
d9749b4715
* More on RDoc for converters * More on RDoc for converters * Fix indent Co-authored-by: Sutou Kouhei <kou@cozmixng.org> https://github.com/ruby/csv/commit/6044976160
46 lines
1.5 KiB
Text
46 lines
1.5 KiB
Text
====== Option +converters+
|
|
|
|
Specifies converters to be used in parsing fields.
|
|
See {Field Converters}[#class-CSV-label-Field+Converters]
|
|
|
|
Default value:
|
|
CSV::DEFAULT_OPTIONS.fetch(:converters) # => nil
|
|
|
|
The value may be a field converter name
|
|
(see {Stored Converters}[#class-CSV-label-Stored+Converters]):
|
|
str = '1,2,3'
|
|
# Without a converter
|
|
array = CSV.parse_line(str)
|
|
array # => ["1", "2", "3"]
|
|
# With built-in converter :integer
|
|
array = CSV.parse_line(str, converters: :integer)
|
|
array # => [1, 2, 3]
|
|
|
|
The value may be a converter list
|
|
(see {Converter Lists}[#class-CSV-label-Converter+Lists]):
|
|
str = '1,3.14159'
|
|
# Without converters
|
|
array = CSV.parse_line(str)
|
|
array # => ["1", "3.14159"]
|
|
# With built-in converters
|
|
array = CSV.parse_line(str, converters: [:integer, :float])
|
|
array # => [1, 3.14159]
|
|
|
|
The value may be a \Proc custom converter:
|
|
(see {Custom Field Converters}[#class-CSV-label-Custom+Field+Converters]):
|
|
str = ' foo , bar , baz '
|
|
# Without a converter
|
|
array = CSV.parse_line(str)
|
|
array # => [" foo ", " bar ", " baz "]
|
|
# With a custom converter
|
|
array = CSV.parse_line(str, converters: proc {|field| field.strip })
|
|
array # => ["foo", "bar", "baz"]
|
|
|
|
See also {Custom Field Converters}[#class-CSV-label-Custom+Field+Converters]
|
|
|
|
---
|
|
|
|
Raises an exception if the converter is not a converter name or a \Proc:
|
|
str = 'foo,0'
|
|
# Raises NoMethodError (undefined method `arity' for nil:NilClass)
|
|
CSV.parse(str, converters: :foo)
|