orator 0.1.1 → 0.2.2
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 +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