Ruby第三天作业

参考网上例子:

class CsvRow
    attr_accessor :row, :headers
    def initialize(row, headers)
        @headers = {}
        (0...headers.count).each {|i| @headers[headers[i]] = i}    # 保存列数组
        @row = row
    end

    def method_missing(name, *args)
        @row[@headers[name.to_s]]<span style="white-space:pre">	</span># 直接调用列名方法<pre name="code" class="ruby">initialize
endendmodule ActsAsCsv def self.included(base) puts base base.extend ClassMethods end def each @csv_contents.each {|row| yield row} # 覆盖each,调用传入函数,执行打印method_missing end module ClassMethods def acts_as_csv include InstanceMethods # 包含实例方法 end end module InstanceMethods def read @csv_contents = [] file = File.new(self.class.to_s.downcase + '.txt') @headers = file.gets.chomp.split(',') file.each do |row| @csv_contents << CsvRow.new(row.chomp.split(","), @headers) # 放入数组 end end attr_accessor :headers, :csv_contents def initialize read # .new 初始化调用read
end endendclass RubyCsv include ActsAsCsv acts_as_csvendcsv = RubyCsv.newcsv.each {|row| puts row.one}

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值