ruku 0.1 → 0.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.
- data/README.rdoc +6 -5
- data/bin/ruku +3 -0
- data/lib/ruku/clients/web.rb +11 -2
- data/lib/ruku/clients/web/installer.rb +64 -0
- data/lib/ruku/clients/{web_static → web/static}/css/ruku.css +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/box-medium.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/box-small.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/back-over.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/back.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/down-over.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/down.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/fwd-over.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/fwd.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/home-over.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/home.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/left-over.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/left.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/pause-over.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/pause.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/right-over.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/right.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/select-over.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/select.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/space1.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/space2.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/space3.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/up-over.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/remote/up.png +0 -0
- data/lib/ruku/clients/{web_static → web/static}/images/spacer.gif +0 -0
- data/lib/ruku/clients/{web_static → web/static}/index.html +0 -0
- data/lib/ruku/clients/{web_static → web/static}/js/jquery-1.4.2.js +0 -0
- data/lib/ruku/clients/{web_static → web/static}/js/ruku.js +0 -0
- data/ruku.gemspec +1 -1
- metadata +32 -31
data/README.rdoc
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
= Ruku
|
1
|
+
= Ruku
|
2
|
+
|
3
|
+
Ruku is a Roku™ set-top box remote control, with command line and web interfaces
|
2
4
|
|
3
5
|
== Installation
|
4
6
|
|
@@ -80,13 +82,12 @@ Ruku is MIT licensed.
|
|
80
82
|
|
81
83
|
:include: MIT-LICENSE
|
82
84
|
|
83
|
-
|
85
|
+
== Other stuff
|
84
86
|
|
85
87
|
Author:: Aaron Royer <aaronroyer@gmail.com>
|
86
88
|
Requires:: Ruby 1.8.6 or later
|
87
|
-
License:: Copyright 2010 by Aaron Royer
|
88
|
-
|
89
|
-
included in the distribution.
|
89
|
+
License:: Copyright 2010-2011 by Aaron Royer
|
90
|
+
MIT licensed - see the MIT-LICENSE file included in the distribution
|
90
91
|
|
91
92
|
== Warranty
|
92
93
|
|
data/bin/ruku
CHANGED
@@ -40,6 +40,9 @@ Options:
|
|
40
40
|
-c, --force-roku-command Force send command to the active Roku box
|
41
41
|
--web Fire up the web client (port 3030 default)
|
42
42
|
-p, --port PORT Specify port (only use with --web)
|
43
|
+
--install Installs the web client to start up on login;
|
44
|
+
right now this only works on OS X (only use
|
45
|
+
with --web)
|
43
46
|
-h, --help Show this message
|
44
47
|
HELP
|
45
48
|
puts help
|
data/lib/ruku/clients/web.rb
CHANGED
@@ -8,15 +8,23 @@ include WEBrick
|
|
8
8
|
module Ruku
|
9
9
|
module Clients
|
10
10
|
class Web
|
11
|
+
DEFAULT_PORT = 3030
|
12
|
+
|
11
13
|
attr_reader :options
|
12
14
|
|
13
15
|
def initialize(opts={})
|
14
16
|
@options = OpenStruct.new(opts)
|
15
17
|
handle_options
|
16
18
|
|
19
|
+
if options.install
|
20
|
+
require File.join(File.dirname(__FILE__), 'web', 'installer')
|
21
|
+
WebInstaller.install(options.port || DEFAULT_PORT)
|
22
|
+
exit
|
23
|
+
end
|
24
|
+
|
17
25
|
server_options = {
|
18
|
-
:Port => options.port ||
|
19
|
-
:DocumentRoot => File.join(File.dirname(__FILE__), '
|
26
|
+
:Port => options.port || DEFAULT_PORT,
|
27
|
+
:DocumentRoot => File.join(File.dirname(__FILE__), 'web', 'static')
|
20
28
|
}
|
21
29
|
@server = HTTPServer.new(server_options)
|
22
30
|
|
@@ -35,6 +43,7 @@ module Ruku
|
|
35
43
|
def handle_options
|
36
44
|
OptionParser.new do |opts|
|
37
45
|
opts.on('-p', '--port PORT') {|p| options.port = p.to_i }
|
46
|
+
opts.on('--install') { options.install = true }
|
38
47
|
opts.on('--web') { } # ignore
|
39
48
|
end.parse!
|
40
49
|
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module Ruku
|
2
|
+
module Clients
|
3
|
+
class WebInstaller
|
4
|
+
def self.install(port)
|
5
|
+
case RUBY_PLATFORM.downcase
|
6
|
+
when /darwin/
|
7
|
+
osx_install port
|
8
|
+
else
|
9
|
+
fail('Cannot install for your operating system')
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def self.fail(msg)
|
16
|
+
$stderr.puts msg
|
17
|
+
exit 1
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.osx_install(port)
|
21
|
+
# TODO: make finding the executable a little more sophisticated
|
22
|
+
executable_path = (ENV['GEM_HOME'] || '/usr') + '/bin/ruku'
|
23
|
+
|
24
|
+
fail('Could not find Ruku executable') if not File.exist?(executable_path)
|
25
|
+
|
26
|
+
plist = <<PLIST
|
27
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
28
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
29
|
+
<plist version="1.0">
|
30
|
+
<dict>
|
31
|
+
<key>Label</key>
|
32
|
+
<string>com.aaronroyer.ruku</string>
|
33
|
+
<key>KeepAlive</key>
|
34
|
+
<true/>
|
35
|
+
<key>ProgramArguments</key>
|
36
|
+
<array>
|
37
|
+
<string>#{executable_path}</string>
|
38
|
+
<string>--web</string>
|
39
|
+
<string>--port</string>
|
40
|
+
<string>#{port}</string>
|
41
|
+
</array>
|
42
|
+
<key>RunAtLoad</key>
|
43
|
+
<true/>
|
44
|
+
</dict>
|
45
|
+
</plist>
|
46
|
+
PLIST
|
47
|
+
|
48
|
+
plist_path= '~/Library/LaunchAgents/com.aaronroyer.ruku.plist'
|
49
|
+
expanded = File.expand_path plist_path
|
50
|
+
begin
|
51
|
+
File.open(expanded, 'w') {|f| f.puts plist }
|
52
|
+
rescue
|
53
|
+
fail "Could not write to #{expanded}"
|
54
|
+
end
|
55
|
+
$stderr.puts <<-SUCCESS
|
56
|
+
Ruku installed for launch on startup
|
57
|
+
|
58
|
+
To launch right now:
|
59
|
+
launchctl load -w #{plist_path}
|
60
|
+
SUCCESS
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/ruku.gemspec
CHANGED
metadata
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruku
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: "0.
|
8
|
+
- 2
|
9
|
+
version: "0.2"
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Aaron Royer
|
@@ -61,35 +61,36 @@ files:
|
|
61
61
|
- bin/ruku
|
62
62
|
- lib/ruku/clients/simple.rb
|
63
63
|
- lib/ruku/clients/tk.rb
|
64
|
+
- lib/ruku/clients/web/installer.rb
|
65
|
+
- lib/ruku/clients/web/static/css/ruku.css
|
66
|
+
- lib/ruku/clients/web/static/images/box-medium.png
|
67
|
+
- lib/ruku/clients/web/static/images/box-small.png
|
68
|
+
- lib/ruku/clients/web/static/images/remote/back-over.png
|
69
|
+
- lib/ruku/clients/web/static/images/remote/back.png
|
70
|
+
- lib/ruku/clients/web/static/images/remote/down-over.png
|
71
|
+
- lib/ruku/clients/web/static/images/remote/down.png
|
72
|
+
- lib/ruku/clients/web/static/images/remote/fwd-over.png
|
73
|
+
- lib/ruku/clients/web/static/images/remote/fwd.png
|
74
|
+
- lib/ruku/clients/web/static/images/remote/home-over.png
|
75
|
+
- lib/ruku/clients/web/static/images/remote/home.png
|
76
|
+
- lib/ruku/clients/web/static/images/remote/left-over.png
|
77
|
+
- lib/ruku/clients/web/static/images/remote/left.png
|
78
|
+
- lib/ruku/clients/web/static/images/remote/pause-over.png
|
79
|
+
- lib/ruku/clients/web/static/images/remote/pause.png
|
80
|
+
- lib/ruku/clients/web/static/images/remote/right-over.png
|
81
|
+
- lib/ruku/clients/web/static/images/remote/right.png
|
82
|
+
- lib/ruku/clients/web/static/images/remote/select-over.png
|
83
|
+
- lib/ruku/clients/web/static/images/remote/select.png
|
84
|
+
- lib/ruku/clients/web/static/images/remote/space1.png
|
85
|
+
- lib/ruku/clients/web/static/images/remote/space2.png
|
86
|
+
- lib/ruku/clients/web/static/images/remote/space3.png
|
87
|
+
- lib/ruku/clients/web/static/images/remote/up-over.png
|
88
|
+
- lib/ruku/clients/web/static/images/remote/up.png
|
89
|
+
- lib/ruku/clients/web/static/images/spacer.gif
|
90
|
+
- lib/ruku/clients/web/static/index.html
|
91
|
+
- lib/ruku/clients/web/static/js/jquery-1.4.2.js
|
92
|
+
- lib/ruku/clients/web/static/js/ruku.js
|
64
93
|
- lib/ruku/clients/web.rb
|
65
|
-
- lib/ruku/clients/web_static/css/ruku.css
|
66
|
-
- lib/ruku/clients/web_static/images/box-medium.png
|
67
|
-
- lib/ruku/clients/web_static/images/box-small.png
|
68
|
-
- lib/ruku/clients/web_static/images/remote/back-over.png
|
69
|
-
- lib/ruku/clients/web_static/images/remote/back.png
|
70
|
-
- lib/ruku/clients/web_static/images/remote/down-over.png
|
71
|
-
- lib/ruku/clients/web_static/images/remote/down.png
|
72
|
-
- lib/ruku/clients/web_static/images/remote/fwd-over.png
|
73
|
-
- lib/ruku/clients/web_static/images/remote/fwd.png
|
74
|
-
- lib/ruku/clients/web_static/images/remote/home-over.png
|
75
|
-
- lib/ruku/clients/web_static/images/remote/home.png
|
76
|
-
- lib/ruku/clients/web_static/images/remote/left-over.png
|
77
|
-
- lib/ruku/clients/web_static/images/remote/left.png
|
78
|
-
- lib/ruku/clients/web_static/images/remote/pause-over.png
|
79
|
-
- lib/ruku/clients/web_static/images/remote/pause.png
|
80
|
-
- lib/ruku/clients/web_static/images/remote/right-over.png
|
81
|
-
- lib/ruku/clients/web_static/images/remote/right.png
|
82
|
-
- lib/ruku/clients/web_static/images/remote/select-over.png
|
83
|
-
- lib/ruku/clients/web_static/images/remote/select.png
|
84
|
-
- lib/ruku/clients/web_static/images/remote/space1.png
|
85
|
-
- lib/ruku/clients/web_static/images/remote/space2.png
|
86
|
-
- lib/ruku/clients/web_static/images/remote/space3.png
|
87
|
-
- lib/ruku/clients/web_static/images/remote/up-over.png
|
88
|
-
- lib/ruku/clients/web_static/images/remote/up.png
|
89
|
-
- lib/ruku/clients/web_static/images/spacer.gif
|
90
|
-
- lib/ruku/clients/web_static/index.html
|
91
|
-
- lib/ruku/clients/web_static/js/jquery-1.4.2.js
|
92
|
-
- lib/ruku/clients/web_static/js/ruku.js
|
93
94
|
- lib/ruku/remote.rb
|
94
95
|
- lib/ruku/remotes.rb
|
95
96
|
- lib/ruku/storage.rb
|