Created
March 24, 2011 02:07
-
-
Save kibiz0r/884424 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "csv" | |
class AwesomeCsvReader | |
def initialize(importer) | |
@importer = importer | |
end | |
def read | |
CSV.foreach "large.csv" do |line| | |
@importer.import line | |
end | |
end | |
end | |
class AwesomeRecordImporter | |
def import(datum) | |
puts "Imported #{datum.inspect}" | |
end | |
end | |
importer = AwesomeRecordImporter.new | |
reader = AwesomeCsvReader.new importer | |
reader.read |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "csv" | |
class AwesomeCsvReader | |
def read | |
CSV.read "large.csv" | |
end | |
end | |
class AwesomeRecordImporter | |
def import(data) | |
data.each do |datum| | |
puts "Imported #{datum.inspect}" | |
end | |
end | |
end | |
reader = AwesomeCsvReader.new | |
importer = AwesomeRecordImporter.new | |
importer.import reader.read |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "csv" | |
class AwesomeCsvReader | |
def read | |
CSV.enum_for :foreach, "large.csv" | |
end | |
end | |
class AwesomeRecordImporter | |
def import(data) | |
data.each do |datum| | |
puts "Imported #{datum.inspect}" | |
end | |
end | |
end | |
reader = AwesomeCsvReader.new | |
importer = AwesomeRecordImporter.new | |
importer.import reader.read |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def import_data_source | |
data = [ | |
:good_data, | |
:bad_data, | |
:good_data | |
] | |
Enumerator.new do |yielder| | |
data.each do |data| | |
begin | |
yielder << data | |
rescue | |
end | |
end | |
end | |
end | |
def import(data) | |
raise "Error!" if data == :bad_data | |
puts "Successfully imported #{data}" | |
end | |
import_data_source.each do |data| | |
import data | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment