Sha256: ca819ec300dd0f8c109b48ce7d93afe19ff884c5509f2aa65ed99355b013bb1e

Contents?: true

Size: 738 Bytes

Versions: 25

Compression:

Stored size: 738 Bytes

Contents

module Observable2
  def add_observer observer
    @observable_observers ||= []
    @observable_observers << observer unless @observable_observers.include? observer      
  end
  
  def notify_observers method, *args
    raise "Invalid usage, method must be Symbol or String!" unless method.is_a?(Symbol) or method.is_a?(String)
    @observable_observers.each{|observer| observer.respond_to method, *args} if @observable_observers      
  end
  
  def delete_observer observer
    @observable_observers.delete observer if @observable_observers
  end
  
  def delete_observers      
    @observable_observers.clear if @observable_observers
  end
  
  def observers_count
    @observable_observers ? @observable_observers.size : 0
  end
end

Version data entries

25 entries across 25 versions & 2 rubygems

Version Path
ruby_ext-0.4.25 lib/ruby_ext/more/observable2.rb
ruby_ext-0.4.24 lib/ruby_ext/more/observable2.rb
ruby_ext-0.4.23 lib/ruby_ext/more/observable2.rb
ruby_ext-0.4.22 lib/ruby_ext/more/observable2.rb
ruby_ext-0.4.21 lib/ruby_ext/more/observable2.rb
ruby_ext-0.4.20 lib/ruby_ext/more/observable2.rb
ruby_ext-0.4.19 lib/ruby_ext/more/observable2.rb
ruby_ext-0.4.18 lib/ruby_ext/more/observable2.rb
ruby_ext-0.4.17 lib/ruby_ext/more/observable2.rb
ruby_ext-0.4.16 lib/ruby_ext/more/observable2.rb
ruby_ext-0.4.15 lib/ruby_ext/more/observable2.rb
ruby_ext-0.4.14 lib/ruby_ext/more/observable2.rb
ruby_ext-0.4.13 lib/ruby_ext/more/observable2.rb
ruby_ext-0.4.12 lib/ruby_ext/more/observable2.rb
ruby_ext-0.4.11 lib/ruby_ext/observable2.rb
ruby_ext-0.4.10 lib/ruby_ext/observable2.rb
ruby_ext-0.4.9 lib/ruby_ext/observable2.rb
ruby_ext-0.4.7 lib/ruby_ext/observable2.rb
ruby_ext-0.4.6 lib/ruby_ext/observable2.rb
ruby-ext-0.4.6 lib/ruby_ext/observable2.rb