Method: Bsm::Constrainable::Model::ClassMethods#constrainable

Defined in:
lib/bsm/constrainable/model.rb

#constrainable(name = nil, &block) ⇒ Object

Constraint definition for a model. Example:

class Post < ActiveRecord::Base

  constrainable do
    # Add your default constraints
  end

  constrainable :custom do
    # Add your custom constraints
  end

end


21
22
23
24
25
26
# File 'lib/bsm/constrainable/model.rb', line 21

def constrainable(name = nil, &block)
  name = name.present? ? name.to_sym : :default
  _constrainable[name] ||= Bsm::Constrainable::Schema.new(self)
  _constrainable[name.to_sym].instance_eval(&block) if block
  _constrainable[name]
end