module Algebrick::FieldMethodReaders

Public Instance Methods

add_all_field_method_readers() click to toggle source
# File lib/algebrick/field_method_readers.rb, line 38
def add_all_field_method_readers
  add_field_method_readers *field_names
  self
end
add_field_method_reader(field) click to toggle source
# File lib/algebrick/field_method_readers.rb, line 25
def add_field_method_reader(field)
  raise TypeError, 'no field names' unless field_names?
  raise ArgumentError, "no field name #{field}" unless field_names.include? field
  raise ArgumentError, "method #{field} already defined" if instance_methods.include? field
  define_method(field) { self[field] }
  self
end
add_field_method_readers(*fields) click to toggle source
# File lib/algebrick/field_method_readers.rb, line 33
def add_field_method_readers(*fields)
  fields.each { |f| add_field_method_reader f }
  self
end
field_names() click to toggle source
# File lib/algebrick/field_method_readers.rb, line 17
def field_names
  @field_names or raise TypeError, "field names not defined on #{self}"
end
field_names?() click to toggle source
# File lib/algebrick/field_method_readers.rb, line 21
def field_names?
  !!@field_names
end