File: header_converters.rdoc

package info (click to toggle)
ruby3.3 3.3.8-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 153,620 kB
  • sloc: ruby: 1,244,308; ansic: 836,474; yacc: 28,074; pascal: 6,748; sh: 3,913; python: 1,719; cpp: 1,158; makefile: 742; asm: 712; javascript: 394; lisp: 97; perl: 62; awk: 36; sed: 23; xml: 4
file content (43 lines) | stat: -rw-r--r-- 1,473 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
====== Option +header_converters+

Specifies converters to be used in parsing headers.
See {Header Converters}[#class-CSV-label-Header+Converters]

Default value:
  CSV::DEFAULT_OPTIONS.fetch(:header_converters) # => nil

Identical in functionality to option {converters}[#class-CSV-label-Option+converters]
except that:
- The converters apply only to the header row.
- The built-in header converters are +:downcase+ and +:symbol+.

This section assumes prior execution of:
  str = <<-EOT
  Name,Value
  foo,0
  bar,1
  baz,2
  EOT
  # With no header converter
  table = CSV.parse(str, headers: true)
  table.headers # => ["Name", "Value"]

The value may be a header converter name
(see {Stored Converters}[#class-CSV-label-Stored+Converters]):
  table = CSV.parse(str, headers: true, header_converters: :downcase)
  table.headers # => ["name", "value"]

The value may be a converter list
(see {Converter Lists}[#class-CSV-label-Converter+Lists]):
  header_converters = [:downcase, :symbol]
  table = CSV.parse(str, headers: true, header_converters: header_converters)
  table.headers # => [:name, :value]

The value may be a \Proc custom converter
(see {Custom Header Converters}[#class-CSV-label-Custom+Header+Converters]):
  upcase_converter = proc {|field| field.upcase }
  table = CSV.parse(str, headers: true, header_converters: upcase_converter)
  table.headers # => ["NAME", "VALUE"]

See also {Custom Header Converters}[#class-CSV-label-Custom+Header+Converters]