orator 0.3.3 → 0.4.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.
- checksums.yaml +15 -0
- data/lib/generators/templates/orators/application_orator.rb +8 -0
- data/lib/generators/templates/template_orator.rb +1 -1
- data/lib/orator/base.rb +75 -14
- data/lib/orator/version.rb +1 -1
- data/spec/base_orator_spec.rb +34 -0
- metadata +26 -34
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NWVlYWM5Zjc1ZjJhOWE0Mjc5MDEzN2UzNTAzM2I3ZTdjNTc1OTU0Mw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ODczZmM2MTBkOWQ2MGJkOWEwNzI0YTBlYWUxZjA2OGI5YzA1Yzg1Zg==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MmFhYzJhYmQ1ZmZmMDM4YjlmYjc4ZjEwNmVjMDAwYjY4YTM2MjM4ZmIyNjNm
|
10
|
+
ZWE1ODc2MDQ2MzYwY2M0ZmI3YmU2ZTJiMTUyZTQ5ODNkNWU2ODcxYzc5MTkw
|
11
|
+
YTc3MThkYWQ5ZDM4ODYyYWI3MWNkMDEzZDRjN2FiYzE1MWJlOGY=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NTBjOWJlYjQyMTZhMmYwNTJhYzE0ZTg1OTVlMjRjNWQ4Yzc3MmFlNjk2ZDQ1
|
14
|
+
NWZhNzIzNzk5NWEwNDMzNTgwNTY5YTI5YjY2MDE5ZjhlYWJkZDhlOTcxMTA0
|
15
|
+
ZmEyYmI1ZmZmZWI3OTA4NzA0Nzk2NmQzYmUzZDEwMmM1ZDkxNmI=
|
data/lib/orator/base.rb
CHANGED
@@ -25,13 +25,29 @@ module Orator
|
|
25
25
|
orator, method_name = event.to_s.split('.')
|
26
26
|
__check_event(orator, method_name)
|
27
27
|
|
28
|
-
|
28
|
+
@event = [orator, method_name]
|
29
|
+
__run_callbacks(:before, args)
|
29
30
|
out = __run_event(method_name, args) unless @__prevent_event
|
30
|
-
__run_callbacks(:after)
|
31
|
+
__run_callbacks(:after, args)
|
31
32
|
|
32
33
|
out
|
33
34
|
end
|
34
35
|
|
36
|
+
# Returns the current event that the orator is handling in `orator.event`
|
37
|
+
# form.
|
38
|
+
#
|
39
|
+
# @return [String]
|
40
|
+
def full_event
|
41
|
+
@event.join('.')
|
42
|
+
end
|
43
|
+
|
44
|
+
# Returns the current event that the orator is handling in `event` form.
|
45
|
+
#
|
46
|
+
# @return [String]
|
47
|
+
def event
|
48
|
+
@event[1]
|
49
|
+
end
|
50
|
+
|
35
51
|
# Checks the event list to see if this class responds to it.
|
36
52
|
#
|
37
53
|
# @return [Set<Symbol, Proc>, nil]
|
@@ -103,12 +119,12 @@ module Orator
|
|
103
119
|
end
|
104
120
|
|
105
121
|
# Runs the callbacks.
|
106
|
-
def __run_callbacks(type)
|
122
|
+
def __run_callbacks(type, args)
|
107
123
|
self.class.send("#{type}_list").map do |cb|
|
108
124
|
if cb.is_a? Symbol
|
109
|
-
method(cb).call
|
125
|
+
method(cb).call(*args)
|
110
126
|
else
|
111
|
-
instance_exec &cb
|
127
|
+
instance_exec(*args, &cb)
|
112
128
|
end
|
113
129
|
end
|
114
130
|
end
|
@@ -160,16 +176,61 @@ module Orator
|
|
160
176
|
end
|
161
177
|
end
|
162
178
|
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
179
|
+
# This handles the before callbacks that our orator needs. It can accept
|
180
|
+
# a method or a block, and given the two, chooses the method over the
|
181
|
+
# block.
|
182
|
+
#
|
183
|
+
# @example
|
184
|
+
# before do; something; end
|
185
|
+
# @example
|
186
|
+
# before :some_method
|
187
|
+
# @param method [Symbol] the method that will be called for the before
|
188
|
+
# callback.
|
189
|
+
# @yields []
|
190
|
+
def before(method = nil, &block)
|
191
|
+
before_list << (method or block)
|
192
|
+
end
|
193
|
+
|
194
|
+
# This sets up the before list on the first call, and returns the list
|
195
|
+
# on the first and subsequent calls.
|
196
|
+
#
|
197
|
+
# @return [Set<Symbol, Block>] the before callback list.
|
198
|
+
def before_list
|
199
|
+
@before_list ||= Set.new
|
200
|
+
end
|
201
|
+
|
202
|
+
# This handles the after callbacks that our operator needs. It can accept
|
203
|
+
# a method or a block, and given the two, chooses the method over the
|
204
|
+
# block.
|
205
|
+
#
|
206
|
+
# @example
|
207
|
+
# after do; something; end
|
208
|
+
# @example
|
209
|
+
# after :some_method
|
210
|
+
# @param method [Symbol] the method that will be called for the after
|
211
|
+
# callback.
|
212
|
+
# @yields []
|
213
|
+
def after(method = nil, &block)
|
214
|
+
after_list << (method or block)
|
215
|
+
end
|
168
216
|
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
217
|
+
# This sets up the after list on the first call, and returns the list on
|
218
|
+
# the first and subsequent calls.
|
219
|
+
#
|
220
|
+
# @return [Set<Symbol, Block>] the after callback list.
|
221
|
+
def after_list
|
222
|
+
@after_list ||= Set.new
|
223
|
+
end
|
224
|
+
|
225
|
+
# This is called when this class is inherited from. We use this to make
|
226
|
+
# sure that each subclass inherits the event list as well as the before
|
227
|
+
# and after methods.
|
228
|
+
#
|
229
|
+
# @param klass [Base]
|
230
|
+
def inherited(klass)
|
231
|
+
klass.instance_variable_set(:@event_list, event_list.dup )
|
232
|
+
klass.instance_variable_set(:@before_list, before_list.dup)
|
233
|
+
klass.instance_variable_set(:@after_list, after_list.dup )
|
173
234
|
end
|
174
235
|
end
|
175
236
|
|
data/lib/orator/version.rb
CHANGED
data/spec/base_orator_spec.rb
CHANGED
@@ -72,4 +72,38 @@ describe Orator::Base do
|
|
72
72
|
|
73
73
|
klass.new(nil).__trigger('test.some_event')
|
74
74
|
end
|
75
|
+
|
76
|
+
it "should duplicate before events for children" do
|
77
|
+
klass = Class.new(described_class) do
|
78
|
+
orator_name 'test'
|
79
|
+
|
80
|
+
before do; end
|
81
|
+
end
|
82
|
+
|
83
|
+
klass.before_list.length.should be 1
|
84
|
+
|
85
|
+
subklass = Class.new(klass) do
|
86
|
+
orator_name 'test2'
|
87
|
+
end
|
88
|
+
|
89
|
+
subklass.before_list.length.should be 1
|
90
|
+
subklass.before_list.should eql(klass.before_list)
|
91
|
+
end
|
92
|
+
|
93
|
+
it "should duplicate after events for children" do
|
94
|
+
klass = Class.new(described_class) do
|
95
|
+
orator_name 'test'
|
96
|
+
|
97
|
+
after do; end
|
98
|
+
end
|
99
|
+
|
100
|
+
klass.after_list.length.should be 1
|
101
|
+
|
102
|
+
subklass = Class.new(klass) do
|
103
|
+
orator_name 'test2'
|
104
|
+
end
|
105
|
+
|
106
|
+
subklass.after_list.length.should be 1
|
107
|
+
subklass.after_list.should eql(klass.after_list)
|
108
|
+
end
|
75
109
|
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: orator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.4.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Jeremy Rodi
|
@@ -14,7 +13,6 @@ dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: em-websocket
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: oj
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: swf_fu
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ~>
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ~>
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rspec
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ~>
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ~>
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -84,63 +75,64 @@ executables:
|
|
84
75
|
extensions: []
|
85
76
|
extra_rdoc_files: []
|
86
77
|
files:
|
87
|
-
- lib/tasks/orator.rake
|
88
|
-
- lib/orator.rb
|
89
|
-
- lib/orator/engine.rb
|
90
|
-
- lib/orator/server.rb
|
91
|
-
- lib/orator/base.rb
|
92
78
|
- lib/orator/middle_ground.rb
|
93
|
-
- lib/orator/event_handler.rb
|
94
79
|
- lib/orator/version.rb
|
80
|
+
- lib/orator/server.rb
|
95
81
|
- lib/orator/cli.rb
|
96
82
|
- lib/orator/client.rb
|
97
|
-
- lib/
|
83
|
+
- lib/orator/engine.rb
|
84
|
+
- lib/orator/base.rb
|
85
|
+
- lib/orator/event_handler.rb
|
86
|
+
- lib/generators/orator/orator_generator.rb
|
87
|
+
- lib/generators/orator/config_generator.rb
|
98
88
|
- lib/generators/templates/config.yml
|
99
89
|
- lib/generators/templates/orators/example_orator.rb
|
100
|
-
- lib/generators/
|
101
|
-
- lib/generators/
|
90
|
+
- lib/generators/templates/orators/application_orator.rb
|
91
|
+
- lib/generators/templates/template_orator.rb
|
92
|
+
- lib/orator.rb
|
93
|
+
- lib/tasks/orator.rake
|
102
94
|
- bin/orator
|
103
|
-
- spec/event_handler_spec.rb
|
104
|
-
- spec/middle_ground_spec.rb
|
105
95
|
- spec/client_spec.rb
|
106
|
-
- spec/base_orator_spec.rb
|
107
96
|
- spec/spec_helper.rb
|
108
|
-
-
|
109
|
-
-
|
110
|
-
-
|
111
|
-
- vendor/assets/javascripts/orator/
|
112
|
-
- vendor/assets/javascripts/orator/header.coffee
|
113
|
-
- vendor/assets/javascripts/orator/event_handler.coffee
|
114
|
-
- vendor/assets/javascripts/orator/chat_logger.coffee
|
97
|
+
- spec/middle_ground_spec.rb
|
98
|
+
- spec/base_orator_spec.rb
|
99
|
+
- spec/event_handler_spec.rb
|
100
|
+
- vendor/assets/javascripts/orator/middle_ground.coffee
|
115
101
|
- vendor/assets/javascripts/orator/swfobject.js
|
116
102
|
- vendor/assets/javascripts/orator/command_handler.coffee
|
103
|
+
- vendor/assets/javascripts/orator/event_handler.coffee
|
104
|
+
- vendor/assets/javascripts/orator/chat_logger.coffee
|
105
|
+
- vendor/assets/javascripts/orator/web_socket.js
|
117
106
|
- vendor/assets/javascripts/orator/strbuf.coffee
|
118
|
-
- vendor/assets/javascripts/orator/
|
107
|
+
- vendor/assets/javascripts/orator/stringify.jquery.js
|
108
|
+
- vendor/assets/javascripts/orator/header.coffee
|
109
|
+
- vendor/assets/javascripts/orator.coffee
|
110
|
+
- vendor/assets/swfs/WebSocketMain.swf
|
119
111
|
- README.md
|
120
112
|
- Rakefile
|
121
113
|
- LICENSE
|
122
114
|
homepage: http://github.com/redjazz96/orator
|
123
115
|
licenses: []
|
116
|
+
metadata: {}
|
124
117
|
post_install_message:
|
125
118
|
rdoc_options: []
|
126
119
|
require_paths:
|
127
120
|
- lib
|
128
121
|
required_ruby_version: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
122
|
requirements:
|
131
123
|
- - ! '>='
|
132
124
|
- !ruby/object:Gem::Version
|
133
125
|
version: '0'
|
134
126
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
|
-
none: false
|
136
127
|
requirements:
|
137
128
|
- - ! '>='
|
138
129
|
- !ruby/object:Gem::Version
|
139
130
|
version: '0'
|
140
131
|
requirements: []
|
141
132
|
rubyforge_project:
|
142
|
-
rubygems_version:
|
133
|
+
rubygems_version: 2.0.2
|
143
134
|
signing_key:
|
144
|
-
specification_version:
|
135
|
+
specification_version: 4
|
145
136
|
summary: Magic for your browser.
|
146
137
|
test_files: []
|
138
|
+
has_rdoc: false
|