class Rasti::Form

Public Class Methods

new(attributes={}) click to toggle source
Calls superclass method
# File lib/rasti/form.rb, line 13
def initialize(attributes={})
  begin
    super attributes

    cast_attributes!

  rescue Rasti::Model::UnexpectedAttributesError => ex
    ex.attributes.each do |attr_name|
      errors[attr_name] << 'unexpected attribute'
    end

  rescue Rasti::Types::CompoundError => ex
    ex.errors.each do |key, messages|
      errors[key] += messages
    end

  end

  validate!
end

Public Instance Methods

assigned?(attr_name) click to toggle source
# File lib/rasti/form.rb, line 34
def assigned?(attr_name)
  assigned_attribute? attr_name.to_sym
end

Private Instance Methods

assert_included_in(attr_name, set) click to toggle source
# File lib/rasti/form.rb, line 61
def assert_included_in(attr_name, set)
  if assert_present attr_name
    assert attr_name, set.include?(public_send(attr_name)), "not included in #{set.map(&:inspect).join(', ')}"
  end
end
assert_not_empty(attr_name) click to toggle source
# File lib/rasti/form.rb, line 54
def assert_not_empty(attr_name)
  if assert_present attr_name
    value = public_send attr_name
    assert attr_name, value.is_a?(String) ? !value.strip.empty? : !value.empty?, 'is empty'
  end
end
assert_not_present(attr_name) click to toggle source
# File lib/rasti/form.rb, line 48
def assert_not_present(attr_name)
  assert attr_name, !assigned?(attr_name) || public_send(attr_name).nil?, 'is present'
rescue Types::Error
  assert attr_name, false, 'is present'
end
assert_present(attr_name) click to toggle source
# File lib/rasti/form.rb, line 40
def assert_present(attr_name)
  if !errors.key?(attr_name)
    assert attr_name, assigned?(attr_name) && !public_send(attr_name).nil?, 'not present'
  end
rescue Types::Error
  assert attr_name, false, 'not present'
end
assert_range(attr_name_from, attr_name_to) click to toggle source
# File lib/rasti/form.rb, line 67
def assert_range(attr_name_from, attr_name_to)
  if assert_present(attr_name_from) && assert_present(attr_name_to)
    assert attr_name_from, public_send(attr_name_from) <= public_send(attr_name_to), 'invalid range'
  end
end