class BrainDamage::Field

Attributes

attr_white_list[W]
generated_attribute[RW]
name[R]
relation[R]
resource[R]

Public Class Methods

new(args = {}) click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 16
def initialize(args = {})
  @displays = {}
  @inputs = {}
  @labels = {}

  @name = args[:name]
  @resource = args[:resource]
  @invisible = false
end

Public Instance Methods

add_display(identifier, options) click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 91
def add_display(identifier, options)
  if options.nil?
    @displays[identifier] = false
  else
    @displays[identifier] = View::Factory.create :display, self, options
  end
end
add_input(identifier, options) click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 99
def add_input(identifier, options)
  if options.nil?
    @inputs[identifier] = false
  else
    @inputs[identifier] = View::Factory.create :input, self, options
  end
end
add_label(identifier, options) click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 107
def add_label(identifier, options)
  if options.nil?
    @labels[identifier] = false
  else
    @labels[identifier] = View::Factory.create :label, self, options
  end
end
attr_white_list() click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 52
def attr_white_list
  @field_white_list = FieldWhiteList.new(self, @attr_white_list) unless @field_white_list
  @field_white_list.list
end
display(identifier = :default) click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 147
def display(identifier = :default)
  if @displays.has_key? identifier
    @displays[identifier]
  elsif identifier != :default
    display :default
  end
end
display=(options) click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 61
def display=(options)
  add_display :default, options
end
displayable?(identifier = :default) click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 86
def displayable?(identifier = :default)
  display = display identifier
  display and display.show?
end
field_type() click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 155
def field_type
  if generated_attribute
    generated_attribute.field_type
  else
    :text_field
  end
end
foreign?() click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 43
def foreign?
  @relation.is_a? Relation
end
has_display?() click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 77
def has_display?
  @displays.values.reject(&:nil?).any?
end
has_input?() click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 73
def has_input?
  @inputs.values.reject(&:nil?).any?
end
inline_editable(options = {}) click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 57
def inline_editable(options = {})
  add_display :inline_editable, options
end
input(identifier = :default) click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 139
def input(identifier = :default)
  if @inputs.has_key? identifier
    @inputs[identifier]
  elsif identifier != :default
    input :default
  end
end
input=(options) click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 65
def input=(options)
  add_input :default, options
end
inputable?(identifier = :default) click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 81
def inputable?(identifier = :default)
  input = input identifier
  input and input.show?
end
invisible() click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 26
def invisible
  self.display = nil
  self.input = nil
  self.attr_white_list = ''
  @invisible = true
end
invisible?() click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 33
def invisible?
  @invisible
end
label(scope = :default) click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 127
def label(scope = :default)
  if @labels[scope]
    return @labels[scope]

  elsif scope == :default
    self.label = :default

  end

  label :default
end
label=(options) click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 69
def label=(options)
  add_label :default, options
end
map_display(identifier, *targets) click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 115
def map_display(identifier, *targets)
  targets.each do |target|
    @displays[target] = @displays[identifier]
  end
end
map_input(identifier, *targets) click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 121
def map_input(identifier, *targets)
  targets.each do |target|
    @inputs[target] = @inputs[identifier]
  end
end
model_lines() click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 47
def model_lines
  return @relation.model_lines if @relation
  []
end
relation=(options) click to toggle source
# File lib/generators/brain_damage/lib/field.rb, line 37
def relation= (options)
  options = { type: options } if options.is_a? Symbol
  options[:field] = self
  @relation = Relation.create (@resource.column_relation_type(@name) || options[:type]), options
end