event_emitter 0.2.4 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 53437cd7c3a975110a854e702cac7d66feafc6e2
4
+ data.tar.gz: 8902288ec0d61444c5f314273dfc1d6a621edae6
5
+ SHA512:
6
+ metadata.gz: f7a1a1db775417a9549edb3e0a2a63744a0efee4de8e553a45deeb79b92afa2217ac38f3b6cb3ab3541587d6b7aedd207d4298f9867c2bdb8e282c3dc01f7845
7
+ data.tar.gz: 716573b4a20b33ef08e778536c76bc8dcb9e382dcd12d1a01ec5b90a1de364c1a1ff045de26affc414eff4f13473b4dbeaf768c1b147d88bede2d83bf25b430f
data/.gitignore CHANGED
@@ -20,4 +20,5 @@ rdoc
20
20
  spec/reports
21
21
  test/tmp
22
22
  test/version_tmp
23
- tmp
23
+ tmp
24
+ .ruby-version
data/Gemfile CHANGED
@@ -2,4 +2,3 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in event_emitter.gemspec
4
4
  gemspec
5
- gem 'minitest'
@@ -1,3 +1,7 @@
1
+ === 0.2.5 2013-03-31
2
+
3
+ * add benchmark
4
+
1
5
  === 0.2.4 2013-03-21
2
6
 
3
7
  * bugfix multiple once error
data/README.md CHANGED
@@ -100,6 +100,12 @@ Test
100
100
  % rake test
101
101
 
102
102
 
103
+ Benchmark
104
+ ---------
105
+
106
+ % rake benchmark
107
+
108
+
103
109
  Contributing
104
110
  ------------
105
111
  1. Fork it
data/Rakefile CHANGED
@@ -6,3 +6,9 @@ Rake::TestTask.new do |t|
6
6
  end
7
7
 
8
8
  task :default => :test
9
+
10
+ desc "run eventemitter benchmark"
11
+ task :benchmark do
12
+ require File.expand_path 'benchmark/benchmark', File.dirname(__FILE__)
13
+ Bench.run
14
+ end
@@ -0,0 +1,57 @@
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path 'benchmark_helper', File.dirname(__FILE__)
3
+
4
+ class Bench
5
+
6
+ class Foo
7
+ include EventEmitter
8
+ end
9
+
10
+ def bench_1on_100Kemit
11
+ foo = Foo.new
12
+ count = 0
13
+ foo.on :bar do |num|
14
+ count += num
15
+ end
16
+ 100000.times do
17
+ foo.emit :bar, 1
18
+ end
19
+ raise Error, "test code error" unless count == 100000
20
+ end
21
+
22
+ def bench_1Kon_1Kemit
23
+ foo = Foo.new
24
+ count = 0
25
+ (1000-1).times do
26
+ foo.on :bar do
27
+ end
28
+ end
29
+ foo.on :bar do |num|
30
+ count += num
31
+ end
32
+ 1000.times do
33
+ foo.emit :bar, 1
34
+ end
35
+ raise Error, "test code error" unless count == 1000
36
+ end
37
+
38
+ def bench_100Kon_1emit
39
+ foo = Foo.new
40
+ count = 0
41
+ 1.upto(100000-1).each do |i|
42
+ foo.on "bar_#{i}" do
43
+ end
44
+ end
45
+ foo.on :bar do |num|
46
+ count += num
47
+ end
48
+ foo.emit :bar, 1
49
+ raise Error, "test code error" unless count == 1
50
+ end
51
+
52
+ end
53
+
54
+
55
+ if __FILE__ == $0
56
+ Bench.run
57
+ end
@@ -0,0 +1,22 @@
1
+ $:.unshift File.expand_path '../lib', File.dirname(__FILE__)
2
+ require 'event_emitter'
3
+ require 'benchmark'
4
+
5
+ class Bench
6
+
7
+ class Error < StandardError
8
+ end
9
+
10
+ def self.run
11
+ puts "ruby #{RUBY_VERSION}-p#{RUBY_PATCHLEVEL} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
12
+ bench = self.new
13
+ Benchmark.bm do |x|
14
+ bench.methods.select{|i| i.to_s =~ /^bench_(.+)$/}.sort.each do |m|
15
+ x.report m.to_s.scan(/^bench_(.+)$/)[0][0] do
16
+ bench.__send__ m
17
+ end
18
+ end
19
+ end
20
+ end
21
+
22
+ end
@@ -15,4 +15,8 @@ Gem::Specification.new do |gem|
15
15
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
16
16
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
17
17
  gem.require_paths = ["lib"]
18
+
19
+ gem.add_development_dependency "minitest"
20
+ gem.add_development_dependency "rake"
21
+ gem.add_development_dependency "bundler", "~> 1.3"
18
22
  end
@@ -1,7 +1,7 @@
1
1
 
2
2
  module EventEmitter
3
3
  def self.included(klass)
4
- klass.extend ClassMethods
4
+ # klass.extend ClassMethods
5
5
  klass.__send__ :include, InstanceMethods
6
6
  end
7
7
 
@@ -44,9 +44,10 @@ module EventEmitter
44
44
  end
45
45
 
46
46
  def emit(type, *data)
47
+ type = type.to_sym
47
48
  __events.each do |e|
48
49
  case e[:type]
49
- when type.to_sym
50
+ when type
50
51
  listener = e[:listener]
51
52
  e[:type] = nil if e[:params][:once]
52
53
  instance_exec(*data, &listener)
@@ -1,3 +1,3 @@
1
1
  module EventEmitter
2
- VERSION = '0.2.4'
2
+ VERSION = '0.2.5'
3
3
  end
metadata CHANGED
@@ -1,16 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: event_emitter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
5
- prerelease:
4
+ version: 0.2.5
6
5
  platform: ruby
7
6
  authors:
8
7
  - Sho Hashimoto
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-03-20 00:00:00.000000000 Z
13
- dependencies: []
11
+ date: 2013-03-31 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: minitest
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '1.3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
14
55
  description: Ruby port of EventEmitter from Node.js
15
56
  email:
16
57
  - hashimoto@shokai.org
@@ -24,6 +65,8 @@ files:
24
65
  - LICENSE.txt
25
66
  - README.md
26
67
  - Rakefile
68
+ - benchmark/benchmark.rb
69
+ - benchmark/benchmark_helper.rb
27
70
  - event_emitter.gemspec
28
71
  - lib/event_emitter.rb
29
72
  - lib/event_emitter/emitter.rb
@@ -39,27 +82,26 @@ files:
39
82
  - test/test_singular_method.rb
40
83
  homepage: http://shokai.github.com/event_emitter
41
84
  licenses: []
85
+ metadata: {}
42
86
  post_install_message:
43
87
  rdoc_options: []
44
88
  require_paths:
45
89
  - lib
46
90
  required_ruby_version: !ruby/object:Gem::Requirement
47
- none: false
48
91
  requirements:
49
- - - ! '>='
92
+ - - '>='
50
93
  - !ruby/object:Gem::Version
51
94
  version: '0'
52
95
  required_rubygems_version: !ruby/object:Gem::Requirement
53
- none: false
54
96
  requirements:
55
- - - ! '>='
97
+ - - '>='
56
98
  - !ruby/object:Gem::Version
57
99
  version: '0'
58
100
  requirements: []
59
101
  rubyforge_project:
60
- rubygems_version: 1.8.24
102
+ rubygems_version: 2.0.3
61
103
  signing_key:
62
- specification_version: 3
104
+ specification_version: 4
63
105
  summary: Ruby port of EventEmitter from Node.js
64
106
  test_files:
65
107
  - test/test_catch_all_events.rb