diff options
Diffstat (limited to 'doc/csv/options/generating/write_converters.rdoc')
-rw-r--r-- | doc/csv/options/generating/write_converters.rdoc | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/doc/csv/options/generating/write_converters.rdoc b/doc/csv/options/generating/write_converters.rdoc new file mode 100644 index 0000000000..c7367b96fd --- /dev/null +++ b/doc/csv/options/generating/write_converters.rdoc @@ -0,0 +1,31 @@ +====== Option +write_converters+ + +Specifies the \Proc or \Array of Procs that are to be called +for converting each output field. + +Default value: + CSV::DEFAULT_OPTIONS.fetch(:write_converters) # => nil + +With no write converter: + str = CSV.generate_line(["\na\n", "\tb\t", " c "]) + str # => "\"\na\n\",\tb\t, c \n" + +With a write converter: + strip_converter = lambda {|field| field.strip } + str = CSV.generate_line(["\na\n", "\tb\t", " c "], write_converters: strip_converter) + str # => "a,b,c\n" + +With two write converters (called in order): + upcase_converter = lambda {|field| field.upcase } + downcase_converter = lambda {|field| field.downcase } + write_converters = [upcase_converter, downcase_converter] + str = CSV.generate_line(['a', 'b', 'c'], write_converters: write_converters) + str # => "a,b,c\n" + +--- + +Raises an exception if the converter returns a value that is neither +nil+ +nor \String-convertible: + bad_converter = lambda {|field| BasicObject.new } + # Raises NoMethodError (undefined method `is_a?' for #<BasicObject:>) + CSV.generate_line(['a', 'b', 'c'], write_converters: bad_converter)
\ No newline at end of file |