Class: CSV::Reader
Overview
Direct Known Subclasses
Class Method Summary collapse
-
.create(str_or_readable, fs = ',', rs = nil) ⇒ Object
Returns reader instance.
-
.parse(str_or_readable, fs = ',', rs = nil, &block) ⇒ Object
Parse CSV data and get lines.
Instance Method Summary collapse
Class Method Details
.create(str_or_readable, fs = ',', rs = nil) ⇒ Object
Returns reader instance.
542 543 544 545 546 547 548 549 550 551 |
# File 'lib/rubysl/csv/csv.rb', line 542 def Reader.create(str_or_readable, fs = ',', rs = nil) case str_or_readable when IO IOReader.new(str_or_readable, fs, rs) when String StringReader.new(str_or_readable, fs, rs) else IOReader.new(str_or_readable, fs, rs) end end |
.parse(str_or_readable, fs = ',', rs = nil, &block) ⇒ Object
Parse CSV data and get lines. Given block is called for each parsed row. Block value is always nil. Rows are not cached for performance reason.
528 529 530 531 532 533 534 535 536 537 538 539 |
# File 'lib/rubysl/csv/csv.rb', line 528 def Reader.parse(str_or_readable, fs = ',', rs = nil, &block) reader = Reader.create(str_or_readable, fs, rs) if block reader.each do |row| yield(row) end reader.close nil else reader end end |
Instance Method Details
#close ⇒ Object
571 572 573 |
# File 'lib/rubysl/csv/csv.rb', line 571 def close terminate end |
#each ⇒ Object
553 554 555 556 557 558 559 560 561 562 563 |
# File 'lib/rubysl/csv/csv.rb', line 553 def each while true row = [] parsed_cells = get_row(row) if parsed_cells == 0 break end yield(row) end nil end |
#shift ⇒ Object
565 566 567 568 569 |
# File 'lib/rubysl/csv/csv.rb', line 565 def shift row = [] parsed_cells = get_row(row) row end |