Module: HaveAPI::Hookable::InstanceMethods

Defined in:
lib/haveapi/hooks.rb

Instance Method Summary collapse

Instance Method Details

#call_class_hooks_as_for(klass, *args, **kwargs) ⇒ Object

Call only class hooks for different klass.



245
246
247
# File 'lib/haveapi/hooks.rb', line 245

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

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

Call only class hooks.



227
228
229
# File 'lib/haveapi/hooks.rb', line 227

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

#call_hooks_as_for(klass, *args, **kwargs) ⇒ Object

Call hooks for different klass.



232
233
234
235
236
237
# File 'lib/haveapi/hooks.rb', line 232

def call_hooks_as_for(klass, *args, **kwargs)
  ret = call_instance_hooks_as_for(klass, *args, **kwargs)

  kwargs[:initial] = ret
  call_class_hooks_as_for(klass.class, *args, **kwargs)
end

#call_hooks_for(*args, **kwargs) ⇒ Object

Call all instance and class hooks.



214
215
216
217
218
219
# File 'lib/haveapi/hooks.rb', line 214

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

  kwargs[:initial] = ret
  call_class_hooks_for(*args, **kwargs)
end

#call_instance_hooks_as_for(klass, *args, **kwargs) ⇒ Object

Call only instance hooks for different klass.



240
241
242
# File 'lib/haveapi/hooks.rb', line 240

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

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

Call only instance hooks.



222
223
224
# File 'lib/haveapi/hooks.rb', line 222

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

#connect_hook(name, &block) ⇒ Object

Connect instance level hook name to block.



250
251
252
# File 'lib/haveapi/hooks.rb', line 250

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