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