Class: RubyHooks::Hook

Inherits:
Object
  • Object
show all
Includes:
Observable, Extensible
Defined in:
lib/ruby-hooks/hook.rb

Overview

Wrapper for Observable module

Instance Method Summary collapse

Methods included from Extensible

#add_plugins

Constructor Details

#initialize(options = {}) ⇒ Hook

automatically extends Hook instance with given modules

Parameters:

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • :extend (Array)

    array of modules to extend hook instance

  • :extend (Module)

    module to extend hook instance



19
20
21
22
23
# File 'lib/ruby-hooks/hook.rb', line 19

def initialize(options = {})
  @options = options
  @observer_peers = {}
  add_plugins( :extend, options[:extends])
end

Instance Method Details

#changed_and_notify(*args) ⇒ nil|false

convienience method to set changed state and notify observers in one call

Parameters:

  • args (Array)

    arguments to pass to notify_observers

Returns:

  • (nil|false)

    forwards result of notify_observers



36
37
38
39
# File 'lib/ruby-hooks/hook.rb', line 36

def changed_and_notify(*args)
  changed
  notify_observers(*args)
end

#observersArray

allow writign code independent of the internals of Observable

Returns:

  • (Array)

    array of observers defined for the hook



28
29
30
# File 'lib/ruby-hooks/hook.rb', line 28

def observers
  @observer_peers
end