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