Sha256: e5a1fefeb84c44847b241a649f548e5896d46fe69161472751d6e6be44b4d16a

Contents?: true

Size: 1.64 KB

Versions: 1

Compression:

Stored size: 1.64 KB

Contents

event_emitter
=============

* Ruby port of EventEmitter from Node.js
* http://shokai.github.com/event_emitter

Install
-------

    % gem install event_emitter


Requirements
------------

testing on

* Ruby 1.8.7+
* Ruby 1.9.2+
* Ruby 2.0.0+
* JRuby 1.6.7+


Synopsys
--------

load rubygem
```ruby
require "rubygems"
require "event_emitter"
```

include
```ruby
class User
  include EventEmitter
  attr_accessor :name
end
```

regist event listener
```ruby
user = User.new
user.name = "shokai"
user.on :go do |data|
  puts "#{name} go to #{data[:place]}"
end
```

call event
```ruby
user.emit :go, {:place => "mountain"}
# => "shokai go to mountain"
```

regist event using "once"
```ruby
user.once :eat do |what, where|
  puts "#{name} -> eat #{what} at #{where}"
end
```

call
```ruby
user.emit :eat, "BEEF", "zanmai"  # =>  "shokai -> eat BEEF at zanmai"
user.emit :eat, "Ramen", "marutomo"  # => do not call. call only first time.
```

apply as instance-specific method
```ruby
class Foo
end

foo = Foo.new
EventEmitter.apply foo
```

remove event listener
```ruby
user.remove_listener :go
user.remove_listener event_id
```

catch all events
```ruby
user.on :* do |event_name, args|
  puts event_name + " called"
  p args
end
```

see samples https://github.com/shokai/event_emitter/tree/master/samples


Test
----

    % gem install bundler
    % bundle install
    % rake test


Benchmark
---------

    % rake benchmark


Contributing
------------
1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
event_emitter-0.2.5 README.md