class DataAccessorModule
Public Class Methods
new( mapping )
click to toggle source
# File lib/csv_madness/data_accessor_module.rb, line 2 def initialize( mapping ) @column_accessors = [] remap_accessors( mapping ) end
Public Instance Methods
install_column_accessors( column, index )
click to toggle source
# File lib/csv_madness/data_accessor_module.rb, line 7 def install_column_accessors( column, index ) @column_accessors << column eval <<-EOF self.send( :define_method, :#{column} ) do self.csv_data[#{index}] end self.send( :define_method, :#{column}= ) do |val| self.csv_data[#{index}] = val end EOF end
remap_accessors( mapping )
click to toggle source
# File lib/csv_madness/data_accessor_module.rb, line 35 def remap_accessors( mapping ) remove_all_column_accessors @mapping = mapping for column, index in @mapping install_column_accessors( column, index ) end end
remove_all_column_accessors()
click to toggle source
# File lib/csv_madness/data_accessor_module.rb, line 25 def remove_all_column_accessors @column_accessors ||= [] for sym in @column_accessors remove_column_accessors( sym ) end @column_accessors = [] end
remove_column_accessors( column )
click to toggle source
# File lib/csv_madness/data_accessor_module.rb, line 20 def remove_column_accessors( column ) self.send( :remove_method, column ) self.send( :remove_method, :"#{column}=" ) end