diff options
author | Burdette Lamar <BurdetteLamar@Yahoo.com> | 2020-06-26 16:29:57 -0500 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2020-07-20 02:32:53 +0900 |
commit | 66b5cedc29de49c564839011c2bcb61552d26b88 (patch) | |
tree | d586d6738f878f22618bffe34108d80f50ee3bf9 /lib/csv.rb | |
parent | 7bf13c51838a4a71fc55712079c5b243c517021c (diff) | |
download | ruby-66b5cedc29de49c564839011c2bcb61552d26b88.tar.gz |
[ruby/csv] Enhancements for RDoc (#148)
Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
https://github.com/ruby/csv/commit/25dd4cddbb
Diffstat (limited to 'lib/csv.rb')
-rw-r--r-- | lib/csv.rb | 71 |
1 files changed, 52 insertions, 19 deletions
diff --git a/lib/csv.rb b/lib/csv.rb index ef73bd0c8a..02ebdb9470 100644 --- a/lib/csv.rb +++ b/lib/csv.rb @@ -1352,36 +1352,52 @@ class CSV end # - # Use to slurp a CSV file into an Array of Arrays. Pass the +path+ to the - # file and +options+. - # See {Options for Parsing}[#class-CSV-label-Options+for+Parsing]. - # - # This method also understands - # an additional <tt>:encoding</tt> parameter that you can use to specify the - # Encoding of the data in the file to be read. You must provide this unless - # your data is in Encoding::default_external(). CSV will use this to determine - # how to parse the data. You may provide a second Encoding to have the data - # transcoded as it is read. For example, - # <tt>encoding: "UTF-32BE:UTF-8"</tt> would read UTF-32BE data from the file - # but transcode it to UTF-8 before CSV parses it. + # :call-seq: + # read(source, **options) -> array_of_arrays + # read(source, headers: true, **options) -> csv_table + # + # Opens the given +source+ with the given +options+ (see CSV.open), + # reads the source (see CSV#read), and returns the result, + # which will be either an \Array of Arrays or a CSV::Table. # + # Without headers: + # string = "foo,0\nbar,1\nbaz,2\n" + # path = 't.csv' + # File.write(path, string) + # CSV.read(path) # => [["foo", "0"], ["bar", "1"], ["baz", "2"]] + # + # With headers: + # string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n" + # path = 't.csv' + # File.write(path, string) + # CSV.read(path, headers: true) # => #<CSV::Table mode:col_or_row row_count:4> def read(path, **options) open(path, **options) { |csv| csv.read } end - # Alias for CSV::read(). + # :call-seq: + # CSV.readlines(source, **options) + # + # Alias for CSV.read. def readlines(path, **options) read(path, **options) end + # :call-seq: + # CSV.table(source, **options) # - # A shortcut for: + # Calls CSV.read with +source+, +options+, and certain default options: + # - +headers+: +true+ + # - +converbers+: +:numeric+ + # - +header_converters+: +:symbol+ # - # CSV.read( path, { headers: true, - # converters: :numeric, - # header_converters: :symbol }.merge(options) ) + # Returns a CSV::Table object. # - # See {Options for Parsing}[#class-CSV-label-Options+for+Parsing]. + # Example: + # string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n" + # path = 't.csv' + # File.write(path, string) + # CSV.table(path # => #<CSV::Table mode:col_or_row row_count:4> def table(path, **options) default_options = { headers: true, @@ -1793,11 +1809,28 @@ class CSV parser_enumerator.each(&block) end + # :call-seq: + # read # - # Slurps the remaining rows and returns an Array of Arrays. + # Forms the remaining rows from +self+ into: + # - A CSV::Table object, if headers are in use. + # - An Array of Arrays, otherwise. # # The data source must be open for reading. # + # Without headers: + # string = "foo,0\nbar,1\nbaz,2\n" + # path = 't.csv' + # File.write(path, string) + # csv = CSV.open(path) + # csv.read # => [["foo", "0"], ["bar", "1"], ["baz", "2"]] + # + # With headers: + # string = "Name,Value\nfoo,0\nbar,1\nbaz,2\n" + # path = 't.csv' + # File.write(path, string) + # csv = CSV.open(path, headers: true) + # csv.read # => #<CSV::Table mode:col_or_row row_count:4> def read rows = to_a if parser.use_headers? |