class Altair::Field

Attributes

options[RW]
type[RW]

Public Class Methods

new(options) click to toggle source
# File lib/altair/field.rb, line 9
def initialize(options)
  @type = options[:type]
  @options = options
end

Public Instance Methods

parse!(value, args = {}) click to toggle source
# File lib/altair/field.rb, line 14
def parse!(value, args = {})
  begin
    resolve_proc(Altair.converter[value.class][type], value)
  rescue
    raise ConversionError.new(type, value)
  end
end
validate!(value, args = {}) click to toggle source
# File lib/altair/field.rb, line 22
def validate!(value, args = {})
  Altair.validators.each do |name, validator|
    if options.has_key? name
      raise ValidationError.new(name, value) unless validator.call(resolve_proc(options[name]), value)
    end
  end

  value
end