eventer 0.0.2 → 0.0.3

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,4 @@
1
+ README.*.md
2
+ README.md
3
+ lib/**/*.rb
4
+ LICENSE
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format nested
2
+ --color
@@ -28,8 +28,31 @@ Also, there is the procedure allowing to output the simple result value as an Ar
28
28
 
29
29
  t.event_rs :event, args... # -> ["Matched", ...]
30
30
 
31
+ ### Cleanup
32
+
33
+ Thou canst clean up the handlers and even events with the methods 'purge_handlers', and 'purge_events' as follows:
34
+
35
+ t.on_event do |args|
36
+ "Matched"
37
+ end
38
+
39
+ t.purge_handlers :event
40
+ # or:
41
+ t.purge_handlers
42
+
43
+ t.event :event # => []
44
+
45
+ and events:
46
+
47
+ t.on_event do |args|
48
+ "Matched"
49
+ end
50
+
51
+ t.purge_events :event
52
+
53
+ t.event :event # => exception Eventer::UnknownEventError
54
+
31
55
  # Copyright
32
56
 
33
- Copyright (c) 2011 Malo Skrylevo
57
+ Copyright (c) 2011 Malo Skrylevo.
34
58
  See LICENSE for details.
35
-
data/README.md CHANGED
@@ -29,9 +29,31 @@ Eventer есть простой движокъ для управленія со
29
29
 
30
30
  t.event_rs :event, args... # -> ["Matched", ...]
31
31
 
32
- # Права
32
+ ### Очистка
33
33
 
34
- Авторскія и исключительныя права (а) 2011 Малъ Скрылевъ
35
- Зри LICENSE за подробностями.
34
+ Очистить обработчики или сами событія можно съ помощью методовъ 'purge_handlers' и 'purge_events' такъ:
36
35
 
36
+ t.on_event do |args|
37
+ "Matched"
38
+ end
37
39
 
40
+ t.purge_handlers :event
41
+ # или такъ:
42
+ t.purge_handlers
43
+
44
+ t.event :event # => []
45
+
46
+ и событія:
47
+
48
+ t.on_event do |args|
49
+ "Matched"
50
+ end
51
+
52
+ t.purge_events :event
53
+
54
+ t.event :event # => исключеніе Eventer::UnknownEventError
55
+
56
+ # Права
57
+
58
+ Авторскія и исключительныя права (а) 2011 Малъ Скрылевъ.
59
+ Зри LICENSE за подробностями.
@@ -23,14 +23,12 @@ public
23
23
  def event(event, *args)
24
24
  res = {}
25
25
 
26
- if @__events__
27
- if @__events__[event]
28
- @__events__[event].each do |event_h|
29
- res[event_h] = event_h.call(*args)
30
- end
31
- else
32
- []
26
+ if @__events__ && @__events__[event]
27
+ @__events__[event].each do |event_h|
28
+ res[event_h] = event_h.call(*args)
33
29
  end
30
+ elsif self.methods.include?( eval ":on_#{event}" )
31
+ return []
34
32
  else
35
33
  raise UnknownEventError.new event
36
34
  end
@@ -39,9 +37,18 @@ public
39
37
  end
40
38
 
41
39
  def purge_events(*events)
42
- (events.empty? ? @__events__ : events).each do |e|
43
- @__events__[e].clear if @__events__[e]
44
- end if @__events__
40
+ (events.empty? ? @__events__.keys : events).each do |e|
41
+ self.class.class_eval "undef_method :on_#{e}"
42
+ @__events__.delete(e)
43
+ end
44
+ end
45
+
46
+ def purge_handlers(*events)
47
+ if @__events__
48
+ (events.empty? ? @__events__.keys : events).each do |e|
49
+ @__events__[e].clear if @__events__.key? e
50
+ end
51
+ end
45
52
  end
46
53
 
47
54
  def event_rs(event, *args)
@@ -1,3 +1,3 @@
1
1
  module Eventer
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -57,6 +57,96 @@ describe 'Eventer' do
57
57
 
58
58
  raise "Event result isn't matched" if (not o) or (o != true)
59
59
  end
60
- end
61
60
 
61
+ it "Purge all event handlers" do
62
+ class Test
63
+ events :event
64
+ end
65
+
66
+ t = Test.new
67
+
68
+ t.on_event do |args|
69
+ "Matched"
70
+ end
71
+
72
+ t.purge_handlers
73
+
74
+ o = t.event_rs :event
75
+
76
+ raise "Event result isn't matched" if o != [ ]
77
+ end
78
+
79
+ it "Purge the specific event handlers" do
80
+ class Test
81
+ events :event
82
+ end
83
+
84
+ t = Test.new
85
+
86
+ t.on_event do |args|
87
+ "Matched"
88
+ end
89
+
90
+ t.purge_handlers :event
91
+
92
+ o = t.event_rs :event
93
+
94
+ raise "Event result isn't matched" if o != [ ]
95
+ end
96
+
97
+ it "Purge all events" do
98
+ class Test
99
+ events :event
100
+ end
101
+
102
+ t = Test.new
103
+
104
+ t.on_event do |args|
105
+ "Matched"
106
+ end
107
+
108
+ t.purge_events
109
+
110
+ o = begin
111
+ t.event_rs :event
112
+ rescue Eventer::UnknownEventError
113
+ true
114
+ end
115
+
116
+ raise "Event result isn't matched" if (not o) or (o != true)
117
+ end
118
+
119
+ it "Purge the specific event" do
120
+ class Test
121
+ events :event
122
+ end
123
+
124
+ t = Test.new
125
+
126
+ t.on_event do |args|
127
+ "Matched"
128
+ end
62
129
 
130
+ t.purge_events :event
131
+
132
+ o = begin
133
+ t.event_rs :event
134
+ rescue Eventer::UnknownEventError
135
+ true
136
+ end
137
+
138
+ raise "Event result isn't matched" if (not o) or (o != true)
139
+ end
140
+
141
+ it "Handler isn't defined" do
142
+ class Test
143
+ events :event
144
+ end
145
+
146
+ t = Test.new
147
+
148
+ o = t.event_rs :event
149
+
150
+ raise "Event result isn't matched" if o != [ ]
151
+ end
152
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eventer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-05-16 00:00:00.000000000Z
12
+ date: 2011-05-18 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
16
- requirement: &69597080 !ruby/object:Gem::Requirement
16
+ requirement: &69582660 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.0.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *69597080
24
+ version_requirements: *69582660
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &69596850 !ruby/object:Gem::Requirement
27
+ requirement: &69582430 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: 2.0.1
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *69596850
35
+ version_requirements: *69582430
36
36
  description: eventer is the simpest event throwing engine
37
37
  email:
38
38
  - 3aHyga@gmail.com
@@ -40,9 +40,11 @@ executables: []
40
40
  extensions: []
41
41
  extra_rdoc_files: []
42
42
  files:
43
+ - .document
44
+ - .gitignore
45
+ - .rspec
43
46
  - CHANGES.md
44
47
  - Gemfile
45
- - Gemfile.lock
46
48
  - LICENSE
47
49
  - README.en.md
48
50
  - README.md
@@ -1,27 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- eventer (0.0.2)
5
-
6
- GEM
7
- remote: http://rubygems.org/
8
- specs:
9
- diff-lcs (1.1.2)
10
- rspec (2.0.1)
11
- rspec-core (~> 2.0.1)
12
- rspec-expectations (~> 2.0.1)
13
- rspec-mocks (~> 2.0.1)
14
- rspec-core (2.0.1)
15
- rspec-expectations (2.0.1)
16
- diff-lcs (>= 1.1.2)
17
- rspec-mocks (2.0.1)
18
- rspec-core (~> 2.0.1)
19
- rspec-expectations (~> 2.0.1)
20
-
21
- PLATFORMS
22
- ruby
23
-
24
- DEPENDENCIES
25
- bundler (>= 1.0.0)
26
- eventer!
27
- rspec (~> 2.0.1)