class Opium::Model::Field

Attributes

as[RW]
default[W]
name[RW]
readonly[RW]
type[RW]

Public Class Methods

new(name, type, default, readonly, as) click to toggle source
# File lib/opium/model/field.rb, line 4
def initialize(name, type, default, readonly, as)
  self.name, self.type, self.default, self.readonly, self.as = name, type, default, readonly, as
end

Public Instance Methods

contextual_default_value( context = nil) click to toggle source
# File lib/opium/model/field.rb, line 20
def contextual_default_value( context = nil)
  type.to_ruby( default( context ) )
end
default( context = nil ) click to toggle source
# File lib/opium/model/field.rb, line 10
def default( context = nil )
  if @default.respond_to? :call
    params = []
    params.push( context ) if @default.arity != 0
    @default.call( *params )
  else
    @default
  end
end
name_to_parse() click to toggle source
# File lib/opium/model/field.rb, line 36
def name_to_parse
  @name_to_parse ||= (self.as || self.name).to_s.camelize(:lower)
end
name_to_ruby() click to toggle source
# File lib/opium/model/field.rb, line 40
def name_to_ruby
  @name_to_ruby ||= (self.as || self.name).to_s.underscore
end
readonly?() click to toggle source
# File lib/opium/model/field.rb, line 24
def readonly?
  self.readonly == true
end
relation?() click to toggle source
# File lib/opium/model/field.rb, line 28
def relation?
  self.type == Relation
end
virtual?() click to toggle source
# File lib/opium/model/field.rb, line 32
def virtual?
  relation? || self.type == Reference
end