Class: Opium::Model::Field

Inherits:
Object show all
Defined in:
lib/opium/model/field.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, type, default, readonly, as) ⇒ Field

Returns a new instance of Field.



4
5
6
# 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

Instance Attribute Details

#asObject

Returns the value of attribute as.



8
9
10
# File 'lib/opium/model/field.rb', line 8

def as
  @as
end

#default(context = nil) ⇒ Object



10
11
12
13
14
15
16
17
18
# 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

#nameObject

Returns the value of attribute name.



8
9
10
# File 'lib/opium/model/field.rb', line 8

def name
  @name
end

#readonlyObject

Returns the value of attribute readonly.



8
9
10
# File 'lib/opium/model/field.rb', line 8

def readonly
  @readonly
end

#typeObject

Returns the value of attribute type.



8
9
10
# File 'lib/opium/model/field.rb', line 8

def type
  @type
end

Instance Method Details

#contextual_default_value(context = nil) ⇒ Object



20
21
22
# File 'lib/opium/model/field.rb', line 20

def contextual_default_value( context = nil)
  type.to_ruby( default( context ) )
end

#name_to_parseObject



36
37
38
# 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_rubyObject



40
41
42
# File 'lib/opium/model/field.rb', line 40

def name_to_ruby
  @name_to_ruby ||= (self.as || self.name).to_s.underscore
end

#readonly?Boolean

Returns:



24
25
26
# File 'lib/opium/model/field.rb', line 24

def readonly?
  self.readonly == true
end

#relation?Boolean

Returns:



28
29
30
# File 'lib/opium/model/field.rb', line 28

def relation?
  self.type == Relation
end

#virtual?Boolean

Returns:



32
33
34
# File 'lib/opium/model/field.rb', line 32

def virtual?
  relation? || self.type == Reference
end