class Toys::Settings::Field

@private

Attributes

container[R]
default[R]
group_class[R]
name[R]
type[R]

Public Class Methods

new(container, name, type_spec, default_or_group_class) click to toggle source
# File lib/toys/settings.rb, line 580
def initialize(container, name, type_spec, default_or_group_class)
  @container = container
  @name = name
  if type_spec == SETTINGS_TYPE
    @default = nil
    @group_class = default_or_group_class
    @type = type_spec
  else
    @group_class = nil
    if type_spec == DEFAULT_TYPE
      @default = default_or_group_class
      @type = Type.for_default_value(@default)
    else
      @type = Type.for_type_spec(type_spec)
      @default = validate(default_or_group_class)
    end
  end
end

Public Instance Methods

group?() click to toggle source
# File lib/toys/settings.rb, line 605
def group?
  !@group_class.nil?
end
validate(value) click to toggle source
# File lib/toys/settings.rb, line 609
def validate(value)
  validated_value = @type.call(value)
  if validated_value == ILLEGAL_VALUE
    raise FieldError.new(value, container, name, @type.description)
  end
  validated_value
end