Class: Mongoid::Alize::FromCallback

Inherits:
Callback
  • Object
show all
Defined in:
lib/mongoid/alize/from_callback.rb

Direct Known Subclasses

Callbacks::From::Many, Callbacks::From::One

Instance Attribute Summary

Attributes inherited from Callback

#debug, #denorm_attrs, #inverse_klass, #inverse_metadata, #inverse_relation, #klass, #metadata, #relation

Instance Method Summary collapse

Methods inherited from Callback

#alias_callback, #aliased_callback_name, #callback_attached?, #callback_defined?, #callback_name, #define_denorm_attrs, #denorm_attrs_name, #field_values, #fields_to_s, #force_check, #force_param, #initialize, #to_s

Constructor Details

This class inherits a constructor from Mongoid::Alize::Callback

Instance Method Details

#attachObject



5
6
7
8
9
10
11
12
# File 'lib/mongoid/alize/from_callback.rb', line 5

def attach
  define_mongoid_field
  define_denorm_attrs

  define_callback
  alias_callback
  set_callback
end

#directionObject



34
35
36
# File 'lib/mongoid/alize/from_callback.rb', line 34

def direction
  "from"
end

#ensure_field_not_defined!(prefixed_name, klass) ⇒ Object



20
21
22
23
24
# File 'lib/mongoid/alize/from_callback.rb', line 20

def ensure_field_not_defined!(prefixed_name, klass)
  if field_defined?(prefixed_name, klass)
    raise Mongoid::Alize::Errors::AlreadyDefinedField.new(prefixed_name, klass.name)
  end
end

#field_defined?(prefixed_name, klass) ⇒ Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/mongoid/alize/from_callback.rb', line 26

def field_defined?(prefixed_name, klass)
  !!klass.fields[prefixed_name]
end

#prefixed_nameObject



30
31
32
# File 'lib/mongoid/alize/from_callback.rb', line 30

def prefixed_name
  "#{relation}_fields"
end

#set_callbackObject



14
15
16
17
18
# File 'lib/mongoid/alize/from_callback.rb', line 14

def set_callback
  unless callback_attached?("save", aliased_callback_name)
    klass.set_callback(:save, :before, aliased_callback_name)
  end
end