module Unobservable::ModuleSupport
This module is a mixin that provides support for “instance events”.
Public Instance Methods
instance_events(all = true)
click to toggle source
# File lib/unobservable.rb, line 72 def instance_events(all = true) Unobservable.instance_events_for(self, all) end
Private Instance Methods
attr_event(*names)
click to toggle source
This helper method is similar to attr_reader and attr_accessor. It allows for instance events to be declared inside the body of the class.
# File lib/unobservable.rb, line 102 def attr_event(*names) args = (names[-1].is_a? Hash) ? names.pop : {} names.each {|n| define_event(n, args) } return nil end
define_event(name, args = {})
click to toggle source
# File lib/unobservable.rb, line 80 def define_event(name, args = {}) args = {:create_method => true}.merge(args) name = name.to_sym if args[:create_method] define_method name do return event(name) end end @unobservable_instance_events ||= Set.new if @unobservable_instance_events.include? name return false else @unobservable_instance_events.add name return true end end