Method: Entangled::Model::ClassMethods#entangle
- Defined in:
- lib/entangled/model.rb
#entangle(options = {}) ⇒ Object
Create after_ callbacks for options
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/entangled/model.rb', line 5 def entangle( = {}) # If :only is specified, the options can either # be an array or a symbol if [:only].present? # If it is a symbol, something like only: :create # was passed in, and we need to create a hook # only for that one option if [:only].is_a?(Symbol) create_hook [:only] # If it is an array, something like only: [:create, :update] # was passed in, and we need to create hook for each # of these options elsif [:only].is_a?(Array) [:only].each { |option| create_hook option } end # Instead of :only, :except can be specified; similarly, # the options can either be an array or a symbol elsif [:except].present? # If it is a symbol, it has to be taken out of the default # options. A callback has to be defined for each of the # remaining options if [:except].is_a?(Symbol) ( - [[:except]]).each do |option| create_hook option end # If it is an array, it also has to be taen out of the # default options. A callback then also has to be defined # for each of the remaining options elsif [:except].is_a?(Array) ( - [:except]).each do |option| create_hook option end end else # If neither :only nor :except is specified, simply create # a callback for each default option .each { |option| create_hook option } end end |