class RademadeAdmin::Model::Configuration::Fields

Public Class Methods

new() click to toggle source
# File lib/rademade_admin/model/configuration/fields.rb, line 41
def initialize
  @fields = []
end

Public Instance Methods

all() click to toggle source
# File lib/rademade_admin/model/configuration/fields.rb, line 27
def all
  @fields
end
configure(*options, &block) click to toggle source
# File lib/rademade_admin/model/configuration/fields.rb, line 35
def configure(*options, &block)
  block_given? ? instance_eval(&block) : _init_from_options(*options)
end
find(name) { |field| ... } click to toggle source
# File lib/rademade_admin/model/configuration/fields.rb, line 6
def find(name)
  name = name.to_sym
  field = @fields.select { |field| field.name == name }.first
  return nil if field.nil?
  yield(field) if block_given?
  field
end
find_with_index(name) { |found_field, found_index| ... } click to toggle source
# File lib/rademade_admin/model/configuration/fields.rb, line 14
def find_with_index(name)
  found_field, found_index = nil, nil
  @fields.each_with_index do |field, index|
    if field.name == name
      found_field, found_index = field, index
      break
    end
  end
  return nil if found_field.nil?
  yield(found_field, found_index) if block_given?
  { :field => found_field, :index => found_index }
end
method_missing(name, *arguments) click to toggle source
# File lib/rademade_admin/model/configuration/fields.rb, line 31
def method_missing(name, *arguments)
  @fields << field_class.new(name.to_sym, *arguments)
end

Protected Instance Methods

_init_from_options(*options) click to toggle source
# File lib/rademade_admin/model/configuration/fields.rb, line 49
def _init_from_options(*options)
  options.each do |option|
    #todo add validation
    @fields << field_class.new(option.to_sym)
  end
end
field_class() click to toggle source
# File lib/rademade_admin/model/configuration/fields.rb, line 45
def field_class
  raise NotImplementedError, 'Field class for {CLASS} fields not defined'
end