orator 0.1.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +4 -0
- data/lib/orator/cli.rb +22 -2
- data/lib/orator/event_handler.rb +16 -6
- data/lib/orator/middle_ground.rb +1 -1
- data/lib/orator/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
OGNmZTliMTc2ZjkxYTM1NzU0YmE2MzY4ODE5MTQ0Y2EyYzBlODU1ZQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YmJhNDE5ZDI1YmY3OGQ5MjlkMTY5OGE0YTNhZjU5Y2JlMTFmOThhZA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NTI3YjA0NjdlMjBjOWU4Zjk0NWI1MGMyYmE0YzkzNzVjMzQ4YTE3NzhhNWQ5
|
10
|
+
NDc0MGRkODIzZDhlMjg0ZGQ1ZDYyYzA0MDgwM2U5ZWI3YzMzNDc3YWZkNDRj
|
11
|
+
NDE4NDc1MmYxMjk4YTY0OTk0NzkzNjg2MmQyMWI2NGIwNWMxMDI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NGRmM2U1NmVmNWI0YmFiNDM5NjBkMGUwNDYyYzgzYmQ0ZWE4YWEwNmFmMmI5
|
14
|
+
NjRkNGZhMmZlZTlkYzRmOWI2ZDE0OTY4Y2NhODQxY2MxODRhZGQ0NDk1N2Jl
|
15
|
+
MDYxM2ZiZmU0NDhjMmU0N2FiODk2Mzc3OWYyOWMxYzBjODMyNDI=
|
data/README.md
CHANGED
@@ -98,6 +98,10 @@ send a ping message (whose response will be handled by our TestHandler). When
|
|
98
98
|
we receive the `user.alias` message, we set the key-pair `:name => json["name"]`
|
99
99
|
on the `#user` hash. Cool, eh?
|
100
100
|
|
101
|
+
To run the server, run `orator --command start` in the root rails directory.
|
102
|
+
To daemonize it, run `orator --command start -d`. To stop, run
|
103
|
+
`orator --command stop`.
|
104
|
+
|
101
105
|
## JavaScript Client
|
102
106
|
Let's go through an example together.
|
103
107
|
|
data/lib/orator/cli.rb
CHANGED
@@ -17,7 +17,7 @@ module Orator
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def parse_arguments(args)
|
20
|
-
OptionParser.new do |opts|
|
20
|
+
@opt_parser = OptionParser.new do |opts|
|
21
21
|
|
22
22
|
opts.on('--config FILE', "Loads the configuration settings from FILE.") do |file|
|
23
23
|
@options[:file] = file
|
@@ -41,11 +41,18 @@ module Orator
|
|
41
41
|
exit
|
42
42
|
end
|
43
43
|
|
44
|
+
opts.on('-s', '--slient', "Runs orator silently.") do
|
45
|
+
$stdout = $stdin = File.open("/dev/null", 'w')
|
46
|
+
end
|
47
|
+
|
44
48
|
opts.separator ""
|
45
49
|
opts.separator "Valid Commands:"
|
46
50
|
opts.separator "\tstart: start the orator server."
|
47
51
|
opts.separator "\tstop: stop the orator server."
|
48
|
-
|
52
|
+
opts.separator "\tstatus: checks the status of the server. Exits 1 if it's down."
|
53
|
+
end
|
54
|
+
|
55
|
+
@opt_parser.parse!(args)
|
49
56
|
end
|
50
57
|
|
51
58
|
def handle_command
|
@@ -79,6 +86,19 @@ module Orator
|
|
79
86
|
end
|
80
87
|
end
|
81
88
|
|
89
|
+
def status
|
90
|
+
check_pid_file if File.exists? yaml_options[:pid_file]
|
91
|
+
puts "Not running."
|
92
|
+
exit 1
|
93
|
+
rescue ProcessExistsError
|
94
|
+
puts "Up, running."
|
95
|
+
end
|
96
|
+
|
97
|
+
def help
|
98
|
+
puts @opt_parser
|
99
|
+
exit
|
100
|
+
end
|
101
|
+
|
82
102
|
# Add a handler to be used by the server.
|
83
103
|
#
|
84
104
|
# @param klass [Class] the class to use as a handler.
|
data/lib/orator/event_handler.rb
CHANGED
@@ -52,12 +52,8 @@ module Orator
|
|
52
52
|
puts "Running event #{event}..." if Orator.debug
|
53
53
|
events(event).map do |event|
|
54
54
|
puts "Found responder #{event[:block] || event[:class]}" if Orator.debug
|
55
|
-
|
56
|
-
|
57
|
-
elsif event[:class]
|
58
|
-
event[:class].new(context).__trigger(event[:event], *args)
|
59
|
-
end
|
60
|
-
|
55
|
+
|
56
|
+
run_event(event, context, args)
|
61
57
|
if event[:count] then event[:count] -= 1 end
|
62
58
|
end
|
63
59
|
|
@@ -92,6 +88,20 @@ module Orator
|
|
92
88
|
end
|
93
89
|
end
|
94
90
|
|
91
|
+
# This runs a given event with the given context and arguments.
|
92
|
+
#
|
93
|
+
# @param event [Hash] the event to run.
|
94
|
+
# @param context [Object] the context to run in.
|
95
|
+
# @param arguments [Array<Object>] the arguments to run with.
|
96
|
+
# @return [void]
|
97
|
+
def run_event(event, context, arguments)
|
98
|
+
if event[:block]
|
99
|
+
context.instance_exec *arguments, context, &event[:block]
|
100
|
+
elsif event[:class]
|
101
|
+
event[:class].new(context).__trigger(event[:event], *arguments)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
95
105
|
end
|
96
106
|
|
97
107
|
end
|
data/lib/orator/middle_ground.rb
CHANGED
@@ -40,7 +40,7 @@ module Orator
|
|
40
40
|
def method_missing(method, *args, &block)
|
41
41
|
super unless respond_to_missing?(method)
|
42
42
|
|
43
|
-
@struct.
|
43
|
+
@struct.public_send(method, *args, &block)
|
44
44
|
end
|
45
45
|
|
46
46
|
# Lets ruby know we're doing some {#method_missing} magic.
|
data/lib/orator/version.rb
CHANGED