Module: HaveAPI::Hookable::InstanceMethods

Defined in:
lib/haveapi/hooks.rb

Instance Method Summary collapse

Instance Method Details

#call_class_hooks_as_for(klass, *args) ⇒ Object

Call only class hooks for different klass.



186
187
188
# File 'lib/haveapi/hooks.rb', line 186

def call_class_hooks_as_for(klass, *args)
  Hooks.call_for(klass, *args)
end

#call_class_hooks_for(name, where = nil, args: [], initial: {}) ⇒ Object

Call only class hooks.



170
171
172
# File 'lib/haveapi/hooks.rb', line 170

def call_class_hooks_for(name, where  = nil, args: [], initial: {})
  Hooks.call_for(self.class, name, where, args: args, initial: initial)
end

#call_hooks_as_for(klass, *args) ⇒ Object

Call hooks for different klass.



175
176
177
178
# File 'lib/haveapi/hooks.rb', line 175

def call_hooks_as_for(klass, *args)
  ret = call_instance_hooks_as_for(klass, *args)
  call_class_hooks_as_for(klass.class, *args, initial: ret)
end

#call_hooks_for(*args) ⇒ Object

Call all instance and class hooks.



153
154
155
156
157
158
159
160
161
162
# File 'lib/haveapi/hooks.rb', line 153

def call_hooks_for(*args)
  ret = call_instance_hooks_for(*args)

  if args.last.is_a?(::Hash)
    args.last.update(initial: ret)
    call_class_hooks_for(*args)
  else
    call_class_hooks_for(*args, initial: ret)
  end
end

#call_instance_hooks_as_for(klass, *args) ⇒ Object

Call only instance hooks for different klass.



181
182
183
# File 'lib/haveapi/hooks.rb', line 181

def call_instance_hooks_as_for(klass, *args)
  Hooks.call_for(klass, *args)
end

#call_instance_hooks_for(name, where = nil, args: [], initial: {}) ⇒ Object

Call only instance hooks.



165
166
167
# File 'lib/haveapi/hooks.rb', line 165

def call_instance_hooks_for(name, where = nil, args: [], initial: {})
  Hooks.call_for(self, name, where, args: args, initial: initial)
end

#connect_hook(name, &block) ⇒ Object

Connect instance level hook name to block.



191
192
193
# File 'lib/haveapi/hooks.rb', line 191

def connect_hook(name, &block)
  Hooks.connect_instance_hook(self, name, &block)
end