Class: ActiveSupport::Callbacks::Callback

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of Callback.



136
137
138
139
140
141
# File 'lib/active_support/callbacks.rb', line 136

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.



134
135
136
# File 'lib/active_support/callbacks.rb', line 134

def identifier
  @identifier
end

#kindObject (readonly)

Returns the value of attribute kind.



134
135
136
# File 'lib/active_support/callbacks.rb', line 134

def kind
  @kind
end

#methodObject (readonly)

Returns the value of attribute method.



134
135
136
# File 'lib/active_support/callbacks.rb', line 134

def method
  @method
end

#optionsObject (readonly)

Returns the value of attribute options.



134
135
136
# File 'lib/active_support/callbacks.rb', line 134

def options
  @options
end

Instance Method Details

#==(other) ⇒ Object



143
144
145
146
147
148
149
150
# File 'lib/active_support/callbacks.rb', line 143

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



160
161
162
163
164
165
166
# File 'lib/active_support/callbacks.rb', line 160

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



156
157
158
# File 'lib/active_support/callbacks.rb', line 156

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

#eql?(other) ⇒ Boolean

Returns:

  • (Boolean)


152
153
154
# File 'lib/active_support/callbacks.rb', line 152

def eql?(other)
  self == other
end