Class: MongoMapper::Plugins::Callbacks::Callback

Inherits:
Object
  • Object
show all
Defined in:
lib/mongo_mapper/plugins/callbacks.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(kind, method, options = {}) ⇒ Callback

Returns a new instance of Callback.



166
167
168
169
170
171
# File 'lib/mongo_mapper/plugins/callbacks.rb', line 166

def initialize(kind, method, options = {})
  @kind       = kind
  @method     = method
  @identifier = options[:identifier]
  @options    = options
end

Instance Attribute Details

#identifierObject (readonly)

Returns the value of attribute identifier.



164
165
166
# File 'lib/mongo_mapper/plugins/callbacks.rb', line 164

def identifier
  @identifier
end

#kindObject (readonly)

Returns the value of attribute kind.



164
165
166
# File 'lib/mongo_mapper/plugins/callbacks.rb', line 164

def kind
  @kind
end

#methodObject (readonly)

Returns the value of attribute method.



164
165
166
# File 'lib/mongo_mapper/plugins/callbacks.rb', line 164

def method
  @method
end

#optionsObject (readonly)

Returns the value of attribute options.



164
165
166
# File 'lib/mongo_mapper/plugins/callbacks.rb', line 164

def options
  @options
end

Instance Method Details

#==(other) ⇒ Object



173
174
175
176
177
178
179
180
# File 'lib/mongo_mapper/plugins/callbacks.rb', line 173

def ==(other)
  case other
  when Callback
    (self.identifier && self.identifier == other.identifier) || self.method == other.method
  else
    (self.identifier && self.identifier == other) || self.method == other
  end
end

#call(*args, &block) ⇒ Object



198
199
200
201
202
203
204
# File 'lib/mongo_mapper/plugins/callbacks.rb', line 198

def call(*args, &block)
  evaluate_method(method, *args, &block) if should_run_callback?(*args)
rescue LocalJumpError
  raise ArgumentError,
    "Cannot yield from a Proc type filter. The Proc must take two " +
    "arguments and execute #call on the second argument."
end

#dupObject



186
187
188
# File 'lib/mongo_mapper/plugins/callbacks.rb', line 186

def dup
  self.class.new(@kind, @method, @options.dup)
end

#eql?(other) ⇒ Boolean

Returns:



182
183
184
# File 'lib/mongo_mapper/plugins/callbacks.rb', line 182

def eql?(other)
  self == other
end

#hashObject



190
191
192
193
194
195
196
# File 'lib/mongo_mapper/plugins/callbacks.rb', line 190

def hash
  if @identifier
    @identifier.hash
  else
    @method.hash
  end
end