Classes, Objects, and Variables(Chapter 3 of Programming Ruby)
2010-06-27 16:44
971 查看
csv_reader.rb
1 require 'csv'
2 require_relative 'book_in_stock'
3 class CsvReader
4 def initialize
5 @books_in_stock = []
6 end
7 def read_in_csv_data(csv_file_name)
8 CSV.foreach(csv_file_name, headers: true) do |row|
9 @books_in_stock << BookInStock.new(row["ISBN"], row["Amount"])
end
end
def total_value_in_stock
sum = 0.0
@books_in_stock.each {|book| sum += book.price}
sum
end
def number_of_each_isbn
# ...
end
end
stock_stats.rb
require_relative 'csv_reader'
reader = CsvReader.new
ARGV.each do |csv_file_name|
STDERR.puts "Processing #{csv_file_name}"
reader.read_in_csv_data(csv_file_name)
end
puts "Total value = #{reader.total_value_in_stock}"
ruby stock_stats.rb test.csv
Processing test.csv
Total value = 122.07
1 require 'csv'
2 require_relative 'book_in_stock'
3 class CsvReader
4 def initialize
5 @books_in_stock = []
6 end
7 def read_in_csv_data(csv_file_name)
8 CSV.foreach(csv_file_name, headers: true) do |row|
9 @books_in_stock << BookInStock.new(row["ISBN"], row["Amount"])
end
end
def total_value_in_stock
sum = 0.0
@books_in_stock.each {|book| sum += book.price}
sum
end
def number_of_each_isbn
# ...
end
end
stock_stats.rb
require_relative 'csv_reader'
reader = CsvReader.new
ARGV.each do |csv_file_name|
STDERR.puts "Processing #{csv_file_name}"
reader.read_in_csv_data(csv_file_name)
end
puts "Total value = #{reader.total_value_in_stock}"
ruby stock_stats.rb test.csv
Processing test.csv
Total value = 122.07
相关文章推荐
- Classes, Objects, and Methods(Chapter 3 of Programming in Objective-C 2.0)
- More on Classes(Chapter 7 of Programming in Objective-C 2.0)
- Expressions(Chapter 9 of Programming Ruby)
- Unit Testing(Chapter 13 of Programming Ruby)
- Objects in Python(Chapter 2 of Python 3 Object Oriented Programming)
- When Trouble Strikes(Chapter 14 of Programming Ruby)
- More About Methods(Chapter 8 of Programming Ruby)
- Classes(Chapter 10 of The C++ Programming Language)
- Containers, Blocks, and Iterators(Chapter 4 of Programming Ruby)
- Exceptions, Catch, and Throw(Chapter 10 of Programming Ruby)
- Ruby and Its World(Chapter 15 of Programming Ruby)
- Sharing Functionality: Inheritance, Modules, and Mixins(Chapter 5 of Programming Ruby)
- Ruby.new(Chapter 2 of Programming Ruby)
- Standard Types(Chapter 6 of Programming Ruby)
- Fibers, Threads, and Processes(Chapter 12 of Programming Ruby)
- Namespaces, Source Files, and Distribution(Chapter 16 of Programming Ruby)
- Basic Input and Output(Chapter 11 of Programming Ruby)
- When Objects are Alike(Chapter 3 of Python 3 Object Oriented Programming)
- Memory Management(Chapter 3 of iOS Programming: The Big Nerd Ranch Guide)
- thinkCSpy学习笔记: Chapter 13 Classes and objects 类和对象