module FirstResponder::ClassMethods

Public Instance Methods

add_to_nested(attr, type) click to toggle source
# File lib/first_responder.rb, line 129
def add_to_nested(attr, type)
  return if type.is_a? Array
  nested_validations << attr if type.ancestors.include?(FirstResponder)
end
add_to_required(attr, opts) click to toggle source
# File lib/first_responder.rb, line 124
def add_to_required(attr, opts)
  first_responder_opts = opts.extract!(:at)[:at]
  required_attributes << Hash[attr, first_responder_opts]
end
default_validations() click to toggle source
# File lib/first_responder.rb, line 113
def default_validations
  { presence: true }
end
first_responder_root() click to toggle source
# File lib/first_responder.rb, line 97
def first_responder_root
  @first_responder_root ||= ""
end
nested_validations() click to toggle source
# File lib/first_responder.rb, line 93
def nested_validations
  @nested_validations ||= []
end
proc_on_invalid() click to toggle source
# File lib/first_responder.rb, line 105
def proc_on_invalid
  @proc_on_invalid
end
required_attributes() click to toggle source
# File lib/first_responder.rb, line 89
def required_attributes
  @required_attributes ||= []
end
requires(attr, type, opts={}) click to toggle source
# File lib/first_responder.rb, line 117
def requires(attr, type, opts={})
  add_to_required(attr, opts)
  add_to_nested(attr, type)
  validates attr, default_validations.merge(opts)
  attribute attr, type, opts
end
root(node) click to toggle source
# File lib/first_responder.rb, line 101
def root(node)
  @first_responder_root = node
end
when_invalid(&blk) click to toggle source
# File lib/first_responder.rb, line 109
def when_invalid(&blk)
  @proc_on_invalid = blk
end