mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
[ruby/csv] RDoc: summary lists for options (#154)
* RDoc: summary lists for options * Enhanced RDoc for certain attributes and instance methods * Enhanced RDoc for certain attributes and instance methods * Enhanced RDoc for certain attributes and instance methods * Enhanced RDoc for certain attributes and instance methods https://github.com/ruby/csv/commit/72d8a25dc9
This commit is contained in:
parent
40c5023629
commit
544d82f49b
Notes:
git
2020-07-20 03:35:33 +09:00
2 changed files with 125 additions and 71 deletions
|
@ -1,6 +1,6 @@
|
|||
====== Option +write_nil_value+
|
||||
|
||||
Specifies the object that is to be substituted for each +nil+ field.
|
||||
Specifies the object that is to be substituted for each +nil+-valued field.
|
||||
|
||||
Default value:
|
||||
CSV::DEFAULT_OPTIONS.fetch(:write_nil_value) # => nil
|
||||
|
|
194
lib/csv.rb
194
lib/csv.rb
|
@ -337,10 +337,30 @@ using CSV::MatchP if CSV.const_defined?(:MatchP)
|
|||
#
|
||||
# ==== Options for Parsing
|
||||
#
|
||||
# :include: ../doc/options/common/col_sep.rdoc
|
||||
# Options for parsing, described in detail below, include:
|
||||
# - +row_sep+: Specifies the row separator; used to delimit rows.
|
||||
# - +col_sep+: Specifies the column separator; used to delimit fields.
|
||||
# - +quote_char+: Specifies the quote character; used to quote fields.
|
||||
# - +field_size_limit+: Specifies the maximum field size allowed.
|
||||
# - +converters+: Specifies the field converters to be used.
|
||||
# - +unconverted_fields+: Specifies whether unconverted fields are to be available.
|
||||
# - +headers+: Specifies whether data contains headers,
|
||||
# or specifies the headers themselves.
|
||||
# - +return_headers+: Specifies whether headers are to be returned.
|
||||
# - +header_converters+: Specifies the header converters to be used.
|
||||
# - +skip_blanks+: Specifies whether blanks lines are to be ignored.
|
||||
# - +skip_lines+: Specifies how comments lines are to be recognized.
|
||||
# - +strip+: Specifies whether leading and trailing whitespace are
|
||||
# to be stripped from fields..
|
||||
# - +liberal_parsing+: Specifies whether \CSV should attempt to parse
|
||||
# non-compliant data.
|
||||
# - +nil_value+: Specifies the object that is to be substituted for each null (no-text) field.
|
||||
# - +empty_value+: Specifies the object that is to be substituted for each empty field.
|
||||
#
|
||||
# :include: ../doc/options/common/row_sep.rdoc
|
||||
#
|
||||
# :include: ../doc/options/common/col_sep.rdoc
|
||||
#
|
||||
# :include: ../doc/options/common/quote_char.rdoc
|
||||
#
|
||||
# :include: ../doc/options/parsing/field_size_limit.rdoc
|
||||
|
@ -369,10 +389,21 @@ using CSV::MatchP if CSV.const_defined?(:MatchP)
|
|||
#
|
||||
# ==== Options for Generating
|
||||
#
|
||||
# :include: ../doc/options/common/col_sep.rdoc
|
||||
# Options for generating, described in detail below, include:
|
||||
# - +row_sep+: Specifies the row separator; used to delimit rows.
|
||||
# - +col_sep+: Specifies the column separator; used to delimit fields.
|
||||
# - +quote_char+: Specifies the quote character; used to quote fields.
|
||||
# - +write_headers+: Specifies whether headers are to be written.
|
||||
# - +force_quotes+: Specifies whether each output field is to be quoted.
|
||||
# - +quote_empty+: Specifies whether each empty output field is to be quoted.
|
||||
# - +write_converters+: Specifies the field converters to be used in writing.
|
||||
# - +write_nil_value+: Specifies the object that is to be substituted for each +nil+-valued field.
|
||||
# - +write_empty_value+: Specifies the object that is to be substituted for each empty field.
|
||||
#
|
||||
# :include: ../doc/options/common/row_sep.rdoc
|
||||
#
|
||||
# :include: ../doc/options/common/col_sep.rdoc
|
||||
#
|
||||
# :include: ../doc/options/common/quote_char.rdoc
|
||||
#
|
||||
# :include: ../doc/options/generating/write_headers.rdoc
|
||||
|
@ -1211,11 +1242,11 @@ class CSV
|
|||
#
|
||||
# Create a \CSV object using a file path:
|
||||
# csv = CSV.open(path)
|
||||
# csv # => #<CSV io_type:File io_path:"t.csv" encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\r\n" quote_char:"\"">
|
||||
# csv # => #<CSV io_type:File io_path:"t.csv" encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\n" quote_char:"\"">
|
||||
#
|
||||
# Create a \CSV object using an open \File:
|
||||
# csv = CSV.open(File.open(path))
|
||||
# csv # => #<CSV io_type:File io_path:"t.csv" encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\r\n" quote_char:"\"">
|
||||
# csv # => #<CSV io_type:File io_path:"t.csv" encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\n" quote_char:"\"">
|
||||
#
|
||||
# ---
|
||||
#
|
||||
|
@ -1224,15 +1255,15 @@ class CSV
|
|||
#
|
||||
# Using a file path:
|
||||
# csv = CSV.open(path) {|csv| p csv}
|
||||
# csv # => #<CSV io_type:File io_path:"t.csv" encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\r\n" quote_char:"\"">
|
||||
# csv # => #<CSV io_type:File io_path:"t.csv" encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\n" quote_char:"\"">
|
||||
# Output:
|
||||
# #<CSV io_type:File io_path:"t.csv" encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\r\n" quote_char:"\"">
|
||||
# #<CSV io_type:File io_path:"t.csv" encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\n" quote_char:"\"">
|
||||
#
|
||||
# Using an open \File:
|
||||
# csv = CSV.open(File.open(path)) {|csv| p csv}
|
||||
# csv # => #<CSV io_type:File io_path:"t.csv" encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\r\n" quote_char:"\"">
|
||||
# csv # => #<CSV io_type:File io_path:"t.csv" encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\n" quote_char:"\"">
|
||||
# Output:
|
||||
# #<CSV io_type:File io_path:"t.csv" encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\r\n" quote_char:"\"">
|
||||
# #<CSV io_type:File io_path:"t.csv" encoding:UTF-8 lineno:0 col_sep:"," row_sep:"\n" quote_char:"\"">
|
||||
#
|
||||
# ---
|
||||
#
|
||||
|
@ -1642,51 +1673,44 @@ class CSV
|
|||
writer if @writer_options[:write_headers]
|
||||
end
|
||||
|
||||
#
|
||||
# The encoded <tt>:col_sep</tt> used in parsing and writing.
|
||||
# See CSV::new for details.
|
||||
#
|
||||
# Returns the encoded column separator; used for parsing and writing;
|
||||
# see {Option +col_sep+}[#class-CSV-label-Option+col_sep]:
|
||||
# CSV.new('').col_sep # => ","
|
||||
def col_sep
|
||||
parser.column_separator
|
||||
end
|
||||
|
||||
#
|
||||
# The encoded <tt>:row_sep</tt> used in parsing and writing.
|
||||
# See CSV::new for details.
|
||||
#
|
||||
# Returns the encoded row separator; used for parsing and writing;
|
||||
# see {Option +row_sep+}[#class-CSV-label-Option+row_sep]:
|
||||
# CSV.new('').row_sep # => "\n"
|
||||
def row_sep
|
||||
parser.row_separator
|
||||
end
|
||||
|
||||
#
|
||||
# The encoded <tt>:quote_char</tt> used in parsing and writing.
|
||||
# See CSV::new for details.
|
||||
#
|
||||
# Returns the encoded quote character; used for parsing and writing;
|
||||
# see {Option +quote_char+}[#class-CSV-label-Option+quote_char]:
|
||||
# CSV.new('').quote_char # => "\""
|
||||
def quote_char
|
||||
parser.quote_character
|
||||
end
|
||||
|
||||
#
|
||||
# The limit for field size, if any.
|
||||
# See CSV::new for details.
|
||||
#
|
||||
# Returns the limit for field size; used for parsing;
|
||||
# see {Option +field_size_limit+}[#class-CSV-label-Option+field_size_limit]:
|
||||
# CSV.new('').field_size_limit # => nil
|
||||
def field_size_limit
|
||||
parser.field_size_limit
|
||||
end
|
||||
|
||||
#
|
||||
# The regex marking a line as a comment.
|
||||
# See CSV::new for details.
|
||||
#
|
||||
# Returns the \Regexp used to identify comment lines; used for parsing;
|
||||
# see {Option +skip_lines+}[#class-CSV-label-Option+skip_lines]:
|
||||
# CSV.new('').skip_lines # => nil
|
||||
def skip_lines
|
||||
parser.skip_lines
|
||||
end
|
||||
|
||||
#
|
||||
# Returns the current list of converters in effect. See CSV::new for details.
|
||||
# Built-in converters will be returned by name, while others will be returned
|
||||
# as is.
|
||||
#
|
||||
# Returns an \Array containing field converters; used for parsing;
|
||||
# see {Option +converters+}[#class-CSV-label-Option+converters]:
|
||||
# CSV.new('').converters # => []
|
||||
def converters
|
||||
parser_fields_converter.map do |converter|
|
||||
name = Converters.rassoc(converter)
|
||||
|
@ -1694,19 +1718,17 @@ class CSV
|
|||
end
|
||||
end
|
||||
|
||||
#
|
||||
# Returns +true+ if unconverted_fields() to parsed results.
|
||||
# See CSV::new for details.
|
||||
#
|
||||
# Returns the value that determines whether unconverted fields are to be
|
||||
# available; used for parsing;
|
||||
# see {Option +unconverted_fields+}[#class-CSV-label-Option+unconverted_fields]:
|
||||
# CSV.new('').unconverted_fields? # => nil
|
||||
def unconverted_fields?
|
||||
parser.unconverted_fields?
|
||||
end
|
||||
|
||||
#
|
||||
# Returns +nil+ if headers will not be used, +true+ if they will but have not
|
||||
# yet been read, or the actual headers after they have been read.
|
||||
# See CSV::new for details.
|
||||
#
|
||||
# Returns the value that determines whether headers are used; used for parsing;
|
||||
# see {Option +headers+}[#class-CSV-label-Option+headers]:
|
||||
# CSV.new('').headers # => nil
|
||||
def headers
|
||||
if @writer
|
||||
@writer.headers
|
||||
|
@ -1718,27 +1740,24 @@ class CSV
|
|||
raw_headers
|
||||
end
|
||||
end
|
||||
#
|
||||
# Returns +true+ if headers will be returned as a row of results.
|
||||
# See CSV::new for details.
|
||||
#
|
||||
|
||||
# Returns the value that determines whether headers are to be returned; used for parsing;
|
||||
# see {Option +return_headers+}[#class-CSV-label-Option+return_headers]:
|
||||
# CSV.new('').return_headers? # => false
|
||||
def return_headers?
|
||||
parser.return_headers?
|
||||
end
|
||||
|
||||
#
|
||||
# Returns +true+ if headers are written in output.
|
||||
# See CSV::new for details.
|
||||
#
|
||||
# Returns the value that determines whether headers are to be written; used for generating;
|
||||
# see {Option +write_headers+}[#class-CSV-label-Option+write_headers]:
|
||||
# CSV.new('').write_headers? # => nil
|
||||
def write_headers?
|
||||
@writer_options[:write_headers]
|
||||
end
|
||||
|
||||
#
|
||||
# Returns the current list of converters in effect for headers. See CSV::new
|
||||
# for details. Built-in converters will be returned by name, while others
|
||||
# will be returned as is.
|
||||
#
|
||||
# Returns an \Array containing header converters; used for parsing;
|
||||
# see {Option +header_converters+}[#class-CSV-label-Option+header_converters]:
|
||||
# CSV.new('').header_converters # => []
|
||||
def header_converters
|
||||
header_fields_converter.map do |converter|
|
||||
name = HeaderConverters.rassoc(converter)
|
||||
|
@ -1746,34 +1765,59 @@ class CSV
|
|||
end
|
||||
end
|
||||
|
||||
#
|
||||
# Returns +true+ blank lines are skipped by the parser. See CSV::new
|
||||
# for details.
|
||||
#
|
||||
# Returns the value that determines whether blank lines are to be ignored; used for parsing;
|
||||
# see {Option +skip_blanks+}[#class-CSV-label-Option+skip_blanks]:
|
||||
# CSV.new('').skip_blanks? # => false
|
||||
def skip_blanks?
|
||||
parser.skip_blanks?
|
||||
end
|
||||
|
||||
# Returns +true+ if all output fields are quoted. See CSV::new for details.
|
||||
# Returns the value that determines whether all output fields are to be quoted;
|
||||
# used for generating;
|
||||
# see {Option +force_quotes+}[#class-CSV-label-Option+force_quotes]:
|
||||
# CSV.new('').force_quotes? # => false
|
||||
def force_quotes?
|
||||
@writer_options[:force_quotes]
|
||||
end
|
||||
|
||||
# Returns +true+ if illegal input is handled. See CSV::new for details.
|
||||
# Returns the value that determines whether illegal input is to be handled; used for parsing;
|
||||
# see {Option +liberal_parsing+}[#class-CSV-label-Option+liberal_parsing]:
|
||||
# CSV.new('').liberal_parsing? # => false
|
||||
def liberal_parsing?
|
||||
parser.liberal_parsing?
|
||||
end
|
||||
|
||||
#
|
||||
# The Encoding CSV is parsing or writing in. This will be the Encoding you
|
||||
# receive parsed data in and/or the Encoding data will be written in.
|
||||
#
|
||||
# Returns the encoding used for parsing and generating;
|
||||
# see {CSV and Character Encodings (M17n or Multilingualization)}[#class-CSV-label-CSV+and+Character+Encodings+-28M17n+or+Multilingualization-29]:
|
||||
# CSV.new('').encoding # => #<Encoding:UTF-8>
|
||||
attr_reader :encoding
|
||||
|
||||
# Returns the count of the rows parsed or generated.
|
||||
#
|
||||
# The line number of the last row read from this file. Fields with nested
|
||||
# line-end characters will not affect this count.
|
||||
# Parsing:
|
||||
# string = "foo,0\nbar,1\nbaz,2\n"
|
||||
# path = 't.csv'
|
||||
# File.write(path, string)
|
||||
# CSV.open(path) do |csv|
|
||||
# csv.each do |row|
|
||||
# p [csv.lineno, row]
|
||||
# end
|
||||
# end
|
||||
# Output:
|
||||
# [1, ["foo", "0"]]
|
||||
# [2, ["bar", "1"]]
|
||||
# [3, ["baz", "2"]]
|
||||
#
|
||||
# Generating:
|
||||
# CSV.generate do |csv|
|
||||
# p csv.lineno; csv << ['foo', 0]
|
||||
# p csv.lineno; csv << ['bar', 1]
|
||||
# p csv.lineno; csv << ['baz', 2]
|
||||
# end
|
||||
# Output:
|
||||
# 0
|
||||
# 1
|
||||
# 2
|
||||
def lineno
|
||||
if @writer
|
||||
@writer.lineno
|
||||
|
@ -1782,9 +1826,19 @@ class CSV
|
|||
end
|
||||
end
|
||||
|
||||
#
|
||||
# The last row read from this file.
|
||||
#
|
||||
# Returns the line most recently read:
|
||||
# string = "foo,0\nbar,1\nbaz,2\n"
|
||||
# path = 't.csv'
|
||||
# File.write(path, string)
|
||||
# CSV.open(path) do |csv|
|
||||
# csv.each do |row|
|
||||
# p [csv.lineno, csv.line]
|
||||
# end
|
||||
# end
|
||||
# Output:
|
||||
# [1, "foo,0\n"]
|
||||
# [2, "bar,1\n"]
|
||||
# [3, "baz,2\n"]
|
||||
def line
|
||||
parser.line
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue