highcarb 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/.gitignore +1 -0
- data/README.md +7 -8
- data/highcarb.gemspec +31 -0
- data/lib/highcarb/command.rb +16 -1
- data/lib/highcarb/generator.rb +8 -0
- data/lib/highcarb/services.rb +9 -2
- data/lib/highcarb/version.rb +3 -0
- data/resources/views/index.coffee +4 -3
- data/resources/views/index.haml +2 -2
- data/resources/views/remote.haml +0 -1
- metadata +68 -21
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -6,15 +6,8 @@ The presentation is based on Deck.js
|
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
9
|
-
I have to create a gem (or event a .deb package). Right now, the easiest way to install it
|
10
|
-
is clone the repository and add an alias.
|
11
|
-
|
12
9
|
```
|
13
|
-
$
|
14
|
-
$ git clone git://github.com/ayosec/highcarb.git
|
15
|
-
$ cd highcarb
|
16
|
-
$ bundle install
|
17
|
-
$ alias highcarb="ruby /somewhere/highcarb/bin/highcarb"
|
10
|
+
$ gem install highcarb
|
18
11
|
```
|
19
12
|
|
20
13
|
### Dependencies
|
@@ -28,6 +21,12 @@ In Debian (and derived) everything can be installed with
|
|
28
21
|
$ sudo apt-get install nodejs python-pygments
|
29
22
|
```
|
30
23
|
|
24
|
+
Mac OSX
|
25
|
+
|
26
|
+
```
|
27
|
+
$ brew install node.js
|
28
|
+
$ sudo easy_install Pygments
|
29
|
+
```
|
31
30
|
## Generate a presentation project
|
32
31
|
|
33
32
|
The `-g` flag generate a new tree with the base for the presentation
|
data/highcarb.gemspec
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "highcarb/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
# Metadata
|
7
|
+
s.name = "highcarb"
|
8
|
+
s.version = HighCarb::Version
|
9
|
+
s.authors = ["Ayose Cazorla"]
|
10
|
+
s.email = ["ayosec@gmail.com"]
|
11
|
+
s.homepage = "https://github.com/ayosec/highcarb"
|
12
|
+
s.summary = %q{Slides manager based on Deck.js }
|
13
|
+
s.description = %q{HighCarb can build a presentation based on HAML, Markdown or raw HTML, and let to control them from another browser, via WebSockets.}
|
14
|
+
|
15
|
+
# Manifest
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
s.add_runtime_dependency "thin"
|
22
|
+
s.add_runtime_dependency "mime-types"
|
23
|
+
s.add_runtime_dependency "em-websocket"
|
24
|
+
s.add_runtime_dependency "trollop"
|
25
|
+
s.add_runtime_dependency "nokogiri"
|
26
|
+
s.add_runtime_dependency "haml"
|
27
|
+
s.add_runtime_dependency "sass"
|
28
|
+
s.add_runtime_dependency "kramdown"
|
29
|
+
s.add_runtime_dependency "coffee-script"
|
30
|
+
end
|
31
|
+
|
data/lib/highcarb/command.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
|
2
2
|
require "trollop"
|
3
3
|
require "logger"
|
4
|
+
require "io/console"
|
4
5
|
|
5
6
|
require "highcarb"
|
6
7
|
require "highcarb/generator"
|
@@ -31,6 +32,8 @@ module HighCarb
|
|
31
32
|
opt "skip-libs", "Don't download vendor libraries, like Deck.js and jQuery"
|
32
33
|
|
33
34
|
opt "verbose", "Be verbose"
|
35
|
+
|
36
|
+
opt "auth", "Require auth to access", default: ""
|
34
37
|
end
|
35
38
|
|
36
39
|
if @options["verbose"]
|
@@ -51,7 +54,19 @@ module HighCarb
|
|
51
54
|
# Generate a new project
|
52
55
|
HighCarb::Generator.new(self, args.first).run!
|
53
56
|
else
|
54
|
-
|
57
|
+
auth = nil
|
58
|
+
if not options["auth"].empty?
|
59
|
+
user, password = options["auth"].split(":", 2)
|
60
|
+
if password.nil?
|
61
|
+
print "Type the password for #{user}: "
|
62
|
+
$stdout.flush
|
63
|
+
password = $stdin.noecho { $stdin.readline.chomp }
|
64
|
+
end
|
65
|
+
|
66
|
+
auth = [ user, password ]
|
67
|
+
end
|
68
|
+
|
69
|
+
HighCarb::Services.start!(self, @logger, auth)
|
55
70
|
end
|
56
71
|
|
57
72
|
rescue HighCarb::Error => error
|
data/lib/highcarb/generator.rb
CHANGED
@@ -35,9 +35,17 @@ module HighCarb
|
|
35
35
|
create_file path.join("assets/base.scss"),
|
36
36
|
"/*\n * Write here your own styles.\n" +
|
37
37
|
" * Compass modules are available\n */\n\n\n" +
|
38
|
+
"@import url('/assets/vendor/deck.js/core/deck.core.scss');\n" +
|
39
|
+
"@import url('/assets/vendor/deck.js/extensions/goto/deck.goto.scss');\n" +
|
40
|
+
"@import url('/assets/vendor/deck.js/extensions/menu/deck.menu.scss');\n" +
|
41
|
+
"@import url('/assets/vendor/deck.js/extensions/navigation/deck.navigation.scss');\n" +
|
42
|
+
"@import url('/assets/vendor/deck.js/extensions/status/deck.status.scss');\n" +
|
43
|
+
"@import url('/assets/vendor/deck.js/extensions/hash/deck.hash.scss');\n" +
|
44
|
+
"\n\n/* Choose your favourite deck.js theme */\n" +
|
38
45
|
"@import url('/assets/vendor/deck.js/themes/style/swiss.css');\n" +
|
39
46
|
"@import url('/assets/vendor/deck.js/themes/transition/horizontal-slide.css');\n"
|
40
47
|
|
48
|
+
|
41
49
|
create_file path.join("assets/remote.scss"), "/* Add here your styles for the /remote view */"
|
42
50
|
create_file path.join("assets/custom-remote.coffee"), "# Add here your own code for the /remote view"
|
43
51
|
create_file path.join("assets/custom.coffee"), "# Add here your own code for the views"
|
data/lib/highcarb/services.rb
CHANGED
@@ -9,7 +9,7 @@ module HighCarb
|
|
9
9
|
module Services
|
10
10
|
extend self
|
11
11
|
|
12
|
-
def start!(command, logger)
|
12
|
+
def start!(command, logger, auth)
|
13
13
|
EM.run do
|
14
14
|
EM::WebSocket.start(host: '0.0.0.0', port: command.options["ws-port"] ) do |websocket|
|
15
15
|
WSConnection.new websocket, logger
|
@@ -18,7 +18,14 @@ module HighCarb
|
|
18
18
|
Thin::Server.start(
|
19
19
|
'0.0.0.0',
|
20
20
|
command.options["http-port"],
|
21
|
-
Rack::Builder.new
|
21
|
+
Rack::Builder.new do
|
22
|
+
if auth
|
23
|
+
use Rack::Auth::Basic, "HighCarb" do |username, password|
|
24
|
+
username == auth[0] && password == auth[1]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
run RackApp.new(command)
|
28
|
+
end
|
22
29
|
)
|
23
30
|
end
|
24
31
|
end
|
@@ -4,9 +4,10 @@ window.WebSocket = MozWebSocket if MozWebSocket?
|
|
4
4
|
$ ->
|
5
5
|
|
6
6
|
# Load slides and initialize Deck.js
|
7
|
-
|
8
|
-
->
|
9
|
-
$(".
|
7
|
+
$.get "/slides",
|
8
|
+
(data) ->
|
9
|
+
$(".slides").replaceWith data
|
10
|
+
$(".slides").find(".note").remove()
|
10
11
|
$.deck ".slide"
|
11
12
|
|
12
13
|
# Open a permanent connection to the server. With this channel
|
data/resources/views/index.haml
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
%head
|
4
4
|
%link{rel: "stylesheet", href: "/assets/base.scss"}
|
5
5
|
|
6
|
-
%body.presenter
|
7
|
-
.
|
6
|
+
%body.presenter.deck-container
|
7
|
+
.slides Loading...
|
8
8
|
|
9
9
|
%script{ src: "/assets/vendor/deck.js/jquery-1.7.min.js" }
|
10
10
|
%script{ src: "/assets/vendor/deck.js/modernizr.custom.js" }
|
data/resources/views/remote.haml
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: highcarb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.2'
|
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: 2012-
|
12
|
+
date: 2012-07-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thin
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: mime-types
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: em-websocket
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ! '>='
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: '0'
|
44
54
|
type: :runtime
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: trollop
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: '0'
|
55
70
|
type: :runtime
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: nokogiri
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ! '>='
|
@@ -65,10 +85,15 @@ dependencies:
|
|
65
85
|
version: '0'
|
66
86
|
type: :runtime
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: haml
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ! '>='
|
@@ -76,10 +101,15 @@ dependencies:
|
|
76
101
|
version: '0'
|
77
102
|
type: :runtime
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
80
110
|
- !ruby/object:Gem::Dependency
|
81
111
|
name: sass
|
82
|
-
requirement:
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
83
113
|
none: false
|
84
114
|
requirements:
|
85
115
|
- - ! '>='
|
@@ -87,10 +117,15 @@ dependencies:
|
|
87
117
|
version: '0'
|
88
118
|
type: :runtime
|
89
119
|
prerelease: false
|
90
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
91
126
|
- !ruby/object:Gem::Dependency
|
92
127
|
name: kramdown
|
93
|
-
requirement:
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
94
129
|
none: false
|
95
130
|
requirements:
|
96
131
|
- - ! '>='
|
@@ -98,10 +133,15 @@ dependencies:
|
|
98
133
|
version: '0'
|
99
134
|
type: :runtime
|
100
135
|
prerelease: false
|
101
|
-
version_requirements:
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
102
142
|
- !ruby/object:Gem::Dependency
|
103
143
|
name: coffee-script
|
104
|
-
requirement:
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
105
145
|
none: false
|
106
146
|
requirements:
|
107
147
|
- - ! '>='
|
@@ -109,7 +149,12 @@ dependencies:
|
|
109
149
|
version: '0'
|
110
150
|
type: :runtime
|
111
151
|
prerelease: false
|
112
|
-
version_requirements:
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
113
158
|
description: HighCarb can build a presentation based on HAML, Markdown or raw HTML,
|
114
159
|
and let to control them from another browser, via WebSockets.
|
115
160
|
email:
|
@@ -125,6 +170,7 @@ files:
|
|
125
170
|
- Gemfile.lock
|
126
171
|
- README.md
|
127
172
|
- bin/highcarb
|
173
|
+
- highcarb.gemspec
|
128
174
|
- lib/highcarb.rb
|
129
175
|
- lib/highcarb/assets_controller.rb
|
130
176
|
- lib/highcarb/command.rb
|
@@ -133,6 +179,7 @@ files:
|
|
133
179
|
- lib/highcarb/services.rb
|
134
180
|
- lib/highcarb/slides_controller.rb
|
135
181
|
- lib/highcarb/sockets.rb
|
182
|
+
- lib/highcarb/version.rb
|
136
183
|
- lib/highcarb/views_controller.rb
|
137
184
|
- resources/views/index.coffee
|
138
185
|
- resources/views/index.haml
|
@@ -158,7 +205,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
158
205
|
version: '0'
|
159
206
|
requirements: []
|
160
207
|
rubyforge_project:
|
161
|
-
rubygems_version: 1.8.
|
208
|
+
rubygems_version: 1.8.23
|
162
209
|
signing_key:
|
163
210
|
specification_version: 3
|
164
211
|
summary: Slides manager based on Deck.js
|