shining 1.0.2 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/bin/console +5 -3
- data/bin/shine +8 -1
- data/lib/ext/filemethods.rb +4 -0
- data/lib/jquery.shining.js +54 -18
- data/lib/shining.rb +1 -0
- data/lib/shining/player.rb +50 -0
- data/shining.gemspec +125 -0
- data/spec/cli_spec.rb +19 -4
- data/spec/spec_helper.rb +4 -3
- data/themes/default.css +1 -1
- data/themes/slidedown.css +19 -0
- metadata +5 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0
|
1
|
+
1.1.0
|
data/bin/console
CHANGED
data/bin/shine
CHANGED
@@ -8,7 +8,8 @@ ACTIONS = {
|
|
8
8
|
:new_on! => ['build'],
|
9
9
|
:new_slide! => ['slide'],
|
10
10
|
:compile_templates! => ['compile'],
|
11
|
-
:vendorize => ['vendor', 'vendorize']
|
11
|
+
:vendorize => ['vendor', 'vendorize'],
|
12
|
+
:play => ['play', 'go']
|
12
13
|
}
|
13
14
|
|
14
15
|
def bail! reason
|
@@ -57,4 +58,10 @@ def compile_templates!
|
|
57
58
|
preso.compile_templates!
|
58
59
|
end
|
59
60
|
|
61
|
+
def play
|
62
|
+
preso = Shining::Preso.open Dir.pwd
|
63
|
+
player = Shining::Player.new preso
|
64
|
+
player.go!
|
65
|
+
end
|
66
|
+
|
60
67
|
figure_what_to_do!
|
data/lib/ext/filemethods.rb
CHANGED
@@ -11,6 +11,10 @@ module FileMethods
|
|
11
11
|
def dir? dir
|
12
12
|
File.directory? dir
|
13
13
|
end
|
14
|
+
|
15
|
+
def move from, to
|
16
|
+
Shining.say("Moving #{from} to #{to}") { FileUtils.mv(from, to) }
|
17
|
+
end
|
14
18
|
|
15
19
|
def copy from, to
|
16
20
|
Shining.say("Copying #{from} to #{to}") { File.directory?(from) ? FileUtils.cp_r(from, to) : FileUtils.cp(from, to) }
|
data/lib/jquery.shining.js
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
(function($) {
|
2
|
+
|
2
3
|
$.shining = function() {
|
3
4
|
$.shining.slides = {
|
4
5
|
get length() { return this._slides.length },
|
@@ -22,7 +23,8 @@
|
|
22
23
|
firstSlide: function() { getSlide($.shining.slides.first) },
|
23
24
|
lastSlide: function() { getSlide($.shining.slides.last ) },
|
24
25
|
nextSlide: function() { getSlide($.shining.slides.next) },
|
25
|
-
previousSlide: function() { getSlide($.shining.slides.previous) }
|
26
|
+
previousSlide: function() { getSlide($.shining.slides.previous) },
|
27
|
+
getSlide: function(slide) { getSlide(slide) }
|
26
28
|
});
|
27
29
|
|
28
30
|
function init() {
|
@@ -32,25 +34,20 @@
|
|
32
34
|
function(controls) { $(controls).addClass('fades-in') },
|
33
35
|
function(controls) { $(controls).removeClass('fades-in') }
|
34
36
|
);
|
35
|
-
$('#controls #first'). click(function() { $.shining.firstSlide() });
|
36
|
-
$('#controls #previous'). click(function() { $.shining.previousSlide() });
|
37
|
-
$('#controls #next'). click(function() { $.shining.nextSlide() });
|
38
|
-
$('#controls #last'). click(function() { $.shining.lastSlide() });
|
39
37
|
$('#stage').centralize();
|
40
38
|
});
|
41
39
|
$(window).resize(function() { $('#stage').centralize() });
|
42
|
-
|
43
|
-
|
44
|
-
if (
|
45
|
-
|
40
|
+
loadConfig(function() {
|
41
|
+
var startAt = document.location.hash.replace('#', '');
|
42
|
+
if (startAt) {
|
43
|
+
getSlide(startAt)
|
46
44
|
} else {
|
47
|
-
$.shining.
|
45
|
+
getSlide($.shining.slides.current);
|
48
46
|
}
|
49
|
-
})
|
50
|
-
loadConfig(function() {
|
51
|
-
getSlide($.shining.slides.current);
|
52
47
|
setTitle($.shining.config.title);
|
53
48
|
setTheme($.shining.config.theme);
|
49
|
+
parseEffects();
|
50
|
+
updateControlAnchors();
|
54
51
|
});
|
55
52
|
}
|
56
53
|
|
@@ -83,7 +80,7 @@
|
|
83
80
|
var path = $('link.theme').attr('href').replace('default.css', name + 'css');
|
84
81
|
return $('link.theme').attr('href', path);
|
85
82
|
}
|
86
|
-
|
83
|
+
|
87
84
|
// private
|
88
85
|
function slide(name) {
|
89
86
|
return 'slides/' + name;
|
@@ -102,6 +99,7 @@
|
|
102
99
|
if (SyntaxHighlighter) SyntaxHighlighter.highlight();
|
103
100
|
$('#stage').centralize();
|
104
101
|
$.shining.scripts.reap();
|
102
|
+
updateControlAnchors();
|
105
103
|
if (data) {
|
106
104
|
loadSlideScript(name);
|
107
105
|
loadSlideStyle(name);
|
@@ -128,13 +126,24 @@
|
|
128
126
|
$.getJSON('config.json', function(config) {
|
129
127
|
$.shining.config = config;
|
130
128
|
$.shining.slides.add(config.slides);
|
131
|
-
if (config.transitions) {
|
132
|
-
$('#stage').addClass('transparent fades-in');
|
133
|
-
}
|
129
|
+
if (config.transitions) { $('#stage').addClass('transparent fades-in'); }
|
134
130
|
callback.call();
|
135
131
|
});
|
136
132
|
}
|
137
133
|
|
134
|
+
function parseEffects() {
|
135
|
+
$.get($('link[href$=effects.css]').attr('href'),
|
136
|
+
function(css) { $.shining.effects = $.parseCSS(css) }
|
137
|
+
);
|
138
|
+
}
|
139
|
+
|
140
|
+
function updateControlAnchors() {
|
141
|
+
$('#controls #first'). attr('href', '#' + $.shining.slides.first);
|
142
|
+
$('#controls #previous'). attr('href', ($.shining.slides.previous ? '#' + $.shining.slides.previous : ''));
|
143
|
+
$('#controls #next'). attr('href', ($.shining.slides.next ? '#' + $.shining.slides.next : ''));
|
144
|
+
$('#controls #last'). attr('href', '#' + $.shining.slides.first);
|
145
|
+
}
|
146
|
+
|
138
147
|
$.shining.scripts = {
|
139
148
|
LINE: /^(\d[.\d]*),[\s]*(.*)/,
|
140
149
|
parsed: [], processes: [],
|
@@ -192,8 +201,35 @@
|
|
192
201
|
*/
|
193
202
|
(function(b){var a=function(c){return parseInt(c,10)||0};b.each(["min","max"],function(d,c){b.fn[c+"Size"]=function(g){var f,e;if(g){if(g.width!==undefined){this.css(c+"-width",g.width)}if(g.height!==undefined){this.css(c+"-height",g.height)}return this}else{f=this.css(c+"-width");e=this.css(c+"-height");return{width:(c==="max"&&(f===undefined||f==="none"||a(f)===-1)&&Number.MAX_VALUE)||a(f),height:(c==="max"&&(e===undefined||e==="none"||a(e)===-1)&&Number.MAX_VALUE)||a(e)}}}});b.fn.isVisible=function(){return this.is(":visible")};b.each(["border","margin","padding"],function(d,c){b.fn[c]=function(e){if(e){if(e.top!==undefined){this.css(c+"-top"+(c==="border"?"-width":""),e.top)}if(e.bottom!==undefined){this.css(c+"-bottom"+(c==="border"?"-width":""),e.bottom)}if(e.left!==undefined){this.css(c+"-left"+(c==="border"?"-width":""),e.left)}if(e.right!==undefined){this.css(c+"-right"+(c==="border"?"-width":""),e.right)}return this}else{return{top:a(this.css(c+"-top"+(c==="border"?"-width":""))),bottom:a(this.css(c+"-bottom"+(c==="border"?"-width":""))),left:a(this.css(c+"-left"+(c==="border"?"-width":""))),right:a(this.css(c+"-right"+(c==="border"?"-width":"")))}}}})})(jQuery);
|
194
203
|
|
204
|
+
|
195
205
|
// http://github.com/juliocesar/jquery-ondistance
|
196
206
|
(function($){$.fn.ondistance=function(specified,close,far){var elt=this.get(0),last=new Date().getTime();$(document).mousemove(function(e){var current=new Date().getTime();if(current-last<500)return;var offset=$(elt).offset(),center={x:offset.left+($(elt).width()/2),y:offset.top+($(elt).height()/2)},last=current,distance=parseInt(Math.sqrt(Math.pow(e.pageX-center.x,2)+Math.pow(e.pageY-center.y,2)));if(specified>=distance){if($(elt).data('mouseclose')==true)return false;$(elt).data('mouseclose',true);close(elt);}else{if($(elt).data('mouseclose')==false)return false;$(elt).data('mouseclose',false);far(elt);}})}})(jQuery);
|
197
207
|
|
198
208
|
// centralizes an element vertically
|
199
|
-
(function($){$.fn.centralize=function(){var self=this.get(0);windowHeight=document.documentElement.clientHeight,elementHeight=(self.offsetHeight+$(self).padding().top+$(self).padding().bottom);$(self).css('position','relative').css('top',(windowHeight/2)-(elementHeight/2)+'px');};})(jQuery);
|
209
|
+
(function($){$.fn.centralize=function(){var self=this.get(0);windowHeight=document.documentElement.clientHeight,elementHeight=(self.offsetHeight+$(self).padding().top+$(self).padding().bottom);$(self).css('position','relative').css('top',(windowHeight/2)-(elementHeight/2)+'px');};})(jQuery);
|
210
|
+
|
211
|
+
// Trimmed down/modified version of the original Javascript/jQuery CSS parser
|
212
|
+
// by Danny.
|
213
|
+
// http://bililite.com/blog/2009/01/16/jquery-css-parser/
|
214
|
+
(function($){$.parseCSS=function(str){var ret={};str=munge(str).replace(/@(([^;`]|`[^b]|`b[^%])*(`b%)?);?/g,function(s,rule){return'';});$.each(str.split('`b%'),function(i,css){css=css.split('%b`');if(css.length<2)return;css[0]=restore(css[0]);ret[css[0]]=$.extend(ret[css[0]]||{},parsedeclarations(css[1]));});return ret;};$.parseCSS.mediumApplies=(window.media&&window.media.query)||function(str){if(!str)return true;if(str in media)return media[str];var style=$('<style media="'+str+'">body {position: relative; z-index: 1;}</style>').appendTo('head');return media[str]=[$('body').css('z-index')==1,style.remove()][0];};$.parseCSS.parseArguments=function(str){if(!str)return[];var ret=[],mungedArguments=munge(str,true).split(/\s+/);for(var i=0;i<mungedArguments.length;++i){var a=restore(mungedArguments[i]);try{ret.push(eval('('+a+')'));}catch(err){ret.push(a);}}
|
215
|
+
return ret;};var media={};var munged={};function parsedeclarations(index){var str=munged[index].replace(/^{|}$/g,'');str=munge(str);var parsed={};$.each(str.split(';'),function(i,decl){decl=decl.split(':');if(decl.length<2)return;parsed[restore(decl[0])]=restore(decl[1]);});return parsed;}
|
216
|
+
var REbraces=/{[^{}]*}/,REfull=/\[[^\[\]]*\]|{[^{}]*}|\([^()]*\)|function(\s+\w+)?(\s*%b`\d+`b%){2}/,REatcomment=/\/\*@((?:[^\*]|\*[^\/])*)\*\//g,REcomment_string=/(?:\/\*(?:[^\*]|\*[^\/])*\*\/)|(\\.|"(?:[^\\\"]|\\.|\\\n)*"|'(?:[^\\\']|\\.|\\\n)*')/g,REmunged=/%\w`(\d+)`\w%/,uid=0;function munge(str,full){str=str.replace(REatcomment,'$1').replace(REcomment_string,function(s,string){if(!string)return'';var replacement='%s`'+(++uid)+'`s%';munged[uid]=string.replace(/^\\/,'');return replacement;});var RE=full?REfull:REbraces;while(match=RE.exec(str)){replacement='%b`'+(++uid)+'`b%';munged[uid]=match[0];str=str.replace(RE,replacement);}
|
217
|
+
return str;}
|
218
|
+
function restore(str){if(str===undefined)return str;while(match=REmunged.exec(str)){str=str.replace(REmunged,munged[match[1]]);}
|
219
|
+
return $.trim(str);}
|
220
|
+
var RESGMLcomment=/<!--([^-]|-[^-])*-->/g;var REnotATag=/(>)[^<]*/g;var REtag=/<(\w+)([^>]*)>/g;})(jQuery);
|
221
|
+
|
222
|
+
/*
|
223
|
+
* jQuery hashchange event - v1.2 - 2/11/2010
|
224
|
+
* http://benalman.com/projects/jquery-hashchange-plugin/
|
225
|
+
*
|
226
|
+
* Copyright (c) 2010 "Cowboy" Ben Alman
|
227
|
+
* Dual licensed under the MIT and GPL licenses.
|
228
|
+
* http://benalman.com/about/license/
|
229
|
+
*/
|
230
|
+
(function($,i,b){var j,k=$.event.special,c="location",d="hashchange",l="href",f=$.browser,g=document.documentMode,h=f.msie&&(g===b||g<8),e="on"+d in i&&!h;function a(m){m=m||i[c][l];return m.replace(/^[^#]*#?(.*)$/,"$1")}$[d+"Delay"]=100;k[d]=$.extend(k[d],{setup:function(){if(e){return false}$(j.start)},teardown:function(){if(e){return false}$(j.stop)}});j=(function(){var m={},r,n,o,q;function p(){o=q=function(s){return s};if(h){n=$('<iframe src="javascript:0"/>').hide().insertAfter("body")[0].contentWindow;q=function(){return a(n.document[c][l])};o=function(u,s){if(u!==s){var t=n.document;t.open().close();t[c].hash="#"+u}};o(a())}}m.start=function(){if(r){return}var t=a();o||p();(function s(){var v=a(),u=q(t);if(v!==t){o(t=v,u);$(i).trigger(d)}else{if(u!==t){i[c][l]=i[c][l].replace(/#.*/,"")+"#"+u}}r=setTimeout(s,$[d+"Delay"])})()};m.stop=function(){if(!n){r&&clearTimeout(r);r=0}};return m})()})(jQuery,this);
|
231
|
+
|
232
|
+
$(window).bind('hashchange', function(event) {
|
233
|
+
var slide = document.location.hash.replace('#', '');
|
234
|
+
if (slide) { $.shining.getSlide(slide) };
|
235
|
+
});
|
data/lib/shining.rb
CHANGED
@@ -0,0 +1,50 @@
|
|
1
|
+
# For now this is just a wrapper for Plainview. More goodness coming soon
|
2
|
+
|
3
|
+
require 'rbconfig'
|
4
|
+
|
5
|
+
module Shining
|
6
|
+
|
7
|
+
class Player
|
8
|
+
include FileMethods and extend FileMethods
|
9
|
+
|
10
|
+
def initialize(preso)
|
11
|
+
raise ArgumentError, "argument needs to be an instance of Shining::Preso" unless preso.is_a? Shining::Preso
|
12
|
+
@preso = preso
|
13
|
+
end
|
14
|
+
|
15
|
+
def go!
|
16
|
+
raise RuntimeError, %w(
|
17
|
+
Sorry! We currently only support Plainview on MacOSX as
|
18
|
+
a player. Manually open your presentation's index.html
|
19
|
+
via Safari or Chrome for the time being.
|
20
|
+
).join(' ') unless osx?
|
21
|
+
download and decompress and install unless installed?
|
22
|
+
`#{@preso.path}/vendor/Plainview.app/Contents/MacOS/Plainview #{@preso.path}/index.html`
|
23
|
+
end
|
24
|
+
|
25
|
+
def download
|
26
|
+
Shining.say "Downloading Plainview from http://s3.amazonaws.com/plainviewapp/plainview_1.0.173.zip..."
|
27
|
+
`curl -# http://s3.amazonaws.com/plainviewapp/plainview_1.0.173.zip -o /tmp/plainview.zip`
|
28
|
+
end
|
29
|
+
|
30
|
+
def decompress
|
31
|
+
Shining.say "Decompressing /tmp/plainview.zip"
|
32
|
+
`unzip -o -d /tmp /tmp/plainview.zip`
|
33
|
+
end
|
34
|
+
|
35
|
+
def install
|
36
|
+
new_dir @preso.path/'vendor'
|
37
|
+
move '/tmp/Plainview.app', @preso.path/'vendor/'
|
38
|
+
end
|
39
|
+
|
40
|
+
def installed?
|
41
|
+
dir? @preso.path/'vendor'/'Plainview.app'
|
42
|
+
end
|
43
|
+
|
44
|
+
protected
|
45
|
+
def osx?
|
46
|
+
Config::CONFIG['host_os'].include? 'darwin'
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
data/shining.gemspec
ADDED
@@ -0,0 +1,125 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{shining}
|
8
|
+
s.version = "1.1.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Julio Cesar Ody"]
|
12
|
+
s.date = %q{2010-03-23}
|
13
|
+
s.description = %q{Webkit + CSS + Javascript = awesome presos}
|
14
|
+
s.email = %q{julio.ody@gmail.com}
|
15
|
+
s.executables = ["console", "shine"]
|
16
|
+
s.extra_rdoc_files = [
|
17
|
+
"README.markdown"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
"README.markdown",
|
21
|
+
"Rakefile",
|
22
|
+
"VERSION",
|
23
|
+
"bin/console",
|
24
|
+
"bin/shine",
|
25
|
+
"css/base.css",
|
26
|
+
"css/effects.css",
|
27
|
+
"css/shCore.css",
|
28
|
+
"css/shThemeFadeToGrey.css",
|
29
|
+
"images/help.png",
|
30
|
+
"images/magnifier.png",
|
31
|
+
"images/page_white_code.png",
|
32
|
+
"images/page_white_copy.png",
|
33
|
+
"images/printer.png",
|
34
|
+
"lib/ext/filemethods.rb",
|
35
|
+
"lib/ext/string.rb",
|
36
|
+
"lib/jquery-1.4.1.min.js",
|
37
|
+
"lib/jquery.shining.js",
|
38
|
+
"lib/plugins/jquery.shining-audio-0.0.1.js",
|
39
|
+
"lib/shBrushAll.js",
|
40
|
+
"lib/shCore.js",
|
41
|
+
"lib/shining.rb",
|
42
|
+
"lib/shining/player.rb",
|
43
|
+
"lib/shining/preso.rb",
|
44
|
+
"shining.gemspec",
|
45
|
+
"spec/cli_spec.rb",
|
46
|
+
"spec/generators_spec.rb",
|
47
|
+
"spec/preso_spec.rb",
|
48
|
+
"spec/sample/base.css",
|
49
|
+
"spec/sample/config.json",
|
50
|
+
"spec/sample/effects.css",
|
51
|
+
"spec/sample/index.html",
|
52
|
+
"spec/sample/slides/first.html",
|
53
|
+
"spec/sample/slides/first.js",
|
54
|
+
"spec/sample/slides/second.html",
|
55
|
+
"spec/sample/slides/second.js",
|
56
|
+
"spec/sample/slides/third.html",
|
57
|
+
"spec/sample/slides/third.js",
|
58
|
+
"spec/shining_spec.rb",
|
59
|
+
"spec/spec_helper.rb",
|
60
|
+
"templates/config.json",
|
61
|
+
"templates/index.html",
|
62
|
+
"templates/slides/welcome.html",
|
63
|
+
"themes/default.css",
|
64
|
+
"themes/slidedown.css"
|
65
|
+
]
|
66
|
+
s.homepage = %q{http://github.com/juliocesar/shining}
|
67
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
68
|
+
s.require_paths = ["lib"]
|
69
|
+
s.rubygems_version = %q{1.3.5}
|
70
|
+
s.summary = %q{Webkit + CSS + Javascript = awesome presos}
|
71
|
+
s.test_files = [
|
72
|
+
"spec/cli_spec.rb",
|
73
|
+
"spec/generators_spec.rb",
|
74
|
+
"spec/preso_spec.rb",
|
75
|
+
"spec/shining_spec.rb",
|
76
|
+
"spec/spec_helper.rb"
|
77
|
+
]
|
78
|
+
|
79
|
+
if s.respond_to? :specification_version then
|
80
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
81
|
+
s.specification_version = 3
|
82
|
+
|
83
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
84
|
+
s.add_runtime_dependency(%q<haml>, [">= 2.2.17"])
|
85
|
+
s.add_runtime_dependency(%q<json_pure>, [">= 1.1.9"])
|
86
|
+
s.add_runtime_dependency(%q<tilt>, [">= 0.6"])
|
87
|
+
s.add_runtime_dependency(%q<rdiscount>, [">= 1.6.3"])
|
88
|
+
s.add_runtime_dependency(%q<term-ansicolor>, [">= 1.0.4"])
|
89
|
+
s.add_development_dependency(%q<rspec>, ["= 1.3.0"])
|
90
|
+
s.add_development_dependency(%q<stackdeck>, ["= 0.2.0"])
|
91
|
+
s.add_development_dependency(%q<johnson>, ["= 2.0.0.pre2"])
|
92
|
+
s.add_development_dependency(%q<rspec>, ["= 1.3.0"])
|
93
|
+
s.add_development_dependency(%q<rake>, ["= 0.8.7"])
|
94
|
+
s.add_development_dependency(%q<envjs>, ["= 0.1.4"])
|
95
|
+
s.add_development_dependency(%q<juliocesar-harmony>, ["= 0.5.2"])
|
96
|
+
else
|
97
|
+
s.add_dependency(%q<haml>, [">= 2.2.17"])
|
98
|
+
s.add_dependency(%q<json_pure>, [">= 1.1.9"])
|
99
|
+
s.add_dependency(%q<tilt>, [">= 0.6"])
|
100
|
+
s.add_dependency(%q<rdiscount>, [">= 1.6.3"])
|
101
|
+
s.add_dependency(%q<term-ansicolor>, [">= 1.0.4"])
|
102
|
+
s.add_dependency(%q<rspec>, ["= 1.3.0"])
|
103
|
+
s.add_dependency(%q<stackdeck>, ["= 0.2.0"])
|
104
|
+
s.add_dependency(%q<johnson>, ["= 2.0.0.pre2"])
|
105
|
+
s.add_dependency(%q<rspec>, ["= 1.3.0"])
|
106
|
+
s.add_dependency(%q<rake>, ["= 0.8.7"])
|
107
|
+
s.add_dependency(%q<envjs>, ["= 0.1.4"])
|
108
|
+
s.add_dependency(%q<juliocesar-harmony>, ["= 0.5.2"])
|
109
|
+
end
|
110
|
+
else
|
111
|
+
s.add_dependency(%q<haml>, [">= 2.2.17"])
|
112
|
+
s.add_dependency(%q<json_pure>, [">= 1.1.9"])
|
113
|
+
s.add_dependency(%q<tilt>, [">= 0.6"])
|
114
|
+
s.add_dependency(%q<rdiscount>, [">= 1.6.3"])
|
115
|
+
s.add_dependency(%q<term-ansicolor>, [">= 1.0.4"])
|
116
|
+
s.add_dependency(%q<rspec>, ["= 1.3.0"])
|
117
|
+
s.add_dependency(%q<stackdeck>, ["= 0.2.0"])
|
118
|
+
s.add_dependency(%q<johnson>, ["= 2.0.0.pre2"])
|
119
|
+
s.add_dependency(%q<rspec>, ["= 1.3.0"])
|
120
|
+
s.add_dependency(%q<rake>, ["= 0.8.7"])
|
121
|
+
s.add_dependency(%q<envjs>, ["= 0.1.4"])
|
122
|
+
s.add_dependency(%q<juliocesar-harmony>, ["= 0.5.2"])
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
data/spec/cli_spec.rb
CHANGED
@@ -4,20 +4,24 @@ describe 'shine' do
|
|
4
4
|
PRESO = Dir.tmpdir/'shining-tmp'/'preso'
|
5
5
|
SHINE = Shining.root/'bin'/'shine'
|
6
6
|
|
7
|
+
def quiet command
|
8
|
+
system "#{command} > /dev/null"
|
9
|
+
end
|
10
|
+
|
7
11
|
def new_preso
|
8
|
-
|
12
|
+
quiet "#{SHINE} #{PRESO}"
|
9
13
|
end
|
10
14
|
|
11
15
|
def vendorize
|
12
|
-
|
16
|
+
quiet "cd #{PRESO} && #{SHINE} vendor"
|
13
17
|
end
|
14
18
|
|
15
19
|
def new_slide(name, format = 'html')
|
16
|
-
|
20
|
+
quiet "cd #{PRESO} && #{SHINE} slide #{name} #{format}"
|
17
21
|
end
|
18
22
|
|
19
23
|
def compile_templates
|
20
|
-
|
24
|
+
quiet "cd #{PRESO} && #{SHINE} compile"
|
21
25
|
end
|
22
26
|
|
23
27
|
def make_haml_template!(name)
|
@@ -70,4 +74,15 @@ describe 'shine' do
|
|
70
74
|
compile_templates
|
71
75
|
File.read(PRESO/'slides'/'test.html').should == "<p>LOOK MA</p>\n"
|
72
76
|
end
|
77
|
+
|
78
|
+
describe 'go' do
|
79
|
+
it "for now it only works on Mac OSX" do
|
80
|
+
player = Shining::Player.new
|
81
|
+
player.should_receive(:osx?).and_return(false)
|
82
|
+
lambda { player.go! }.should raise_error
|
83
|
+
end
|
84
|
+
|
85
|
+
it "downloads and decompresses Plainview and if it's not found #{'PRESO_ROOT'/'vendor'/'Plainview.app'}"
|
86
|
+
it "fires up Plainview"
|
87
|
+
end
|
73
88
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -4,8 +4,9 @@ require File.join(File.dirname(__FILE__), *%w(.. lib shining))
|
|
4
4
|
|
5
5
|
gem 'stackdeck', '0.2.0'; require 'stackdeck'
|
6
6
|
gem 'johnson', '2.0.0.pre2'; require 'johnson'
|
7
|
-
gem 'rspec', '1.3.0';
|
8
|
-
gem 'rake', '0.8.7';
|
7
|
+
gem 'rspec', '>= 1.3.0'; require 'spec'
|
8
|
+
gem 'rake', '>= 0.8.7'; require 'rake'
|
9
9
|
gem 'envjs', '0.1.4'; require 'envjs'
|
10
10
|
gem 'juliocesar-harmony', '0.5.2'; require 'harmony'
|
11
|
-
gem 'json_pure', '1.1.9';
|
11
|
+
gem 'json_pure', '>= 1.1.9'; require 'json/pure'
|
12
|
+
gem 'haml', '>= 2.2.17'; require 'haml'
|
data/themes/default.css
CHANGED
@@ -5,7 +5,7 @@ body { background-color: rgb(48, 48, 48) }
|
|
5
5
|
}
|
6
6
|
|
7
7
|
h1, h2, h3, p, li { color: rgb(238, 238, 238); text-shadow: rgb(0, 0, 0) 2px 2px 4px }
|
8
|
-
a { color: rgb(73, 157, 255) }
|
8
|
+
a { color: rgb(73, 157, 255); text-decoration: none }
|
9
9
|
ul { list-style-type: disc }
|
10
10
|
|
11
11
|
#controls {
|
@@ -0,0 +1,19 @@
|
|
1
|
+
body { background-color: rgb(255, 255, 255) }
|
2
|
+
#stage { color: rgb(0, 0, 0) }
|
3
|
+
|
4
|
+
h1, h2, h3, p, li { color: rgb(238, 238, 238); text-shadow: rgb(0, 0, 0) 2px 2px 4px }
|
5
|
+
a { color: rgb(73, 157, 255) }
|
6
|
+
ul { list-style-type: disc }
|
7
|
+
|
8
|
+
#controls {
|
9
|
+
position: fixed;
|
10
|
+
bottom: 0;
|
11
|
+
left: 62%;
|
12
|
+
margin-left: -300px;
|
13
|
+
background-color: rgba(0, 0, 0, 0.5);
|
14
|
+
-webkit-border-top-left-radius: 5px;
|
15
|
+
-webkit-border-top-right-radius: 5px;
|
16
|
+
}
|
17
|
+
#controls a { display: inline-block; width: 75px; padding: 5px 0; font-weight: bold; color: #fff; text-decoration: none }
|
18
|
+
em { color: rgb(73, 255, 80) }
|
19
|
+
strong { color: rgb(255, 171, 73); font-weight: bold }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shining
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julio Cesar Ody
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-03-
|
12
|
+
date: 2010-03-23 00:00:00 +11:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -164,7 +164,9 @@ files:
|
|
164
164
|
- lib/shBrushAll.js
|
165
165
|
- lib/shCore.js
|
166
166
|
- lib/shining.rb
|
167
|
+
- lib/shining/player.rb
|
167
168
|
- lib/shining/preso.rb
|
169
|
+
- shining.gemspec
|
168
170
|
- spec/cli_spec.rb
|
169
171
|
- spec/generators_spec.rb
|
170
172
|
- spec/preso_spec.rb
|
@@ -184,6 +186,7 @@ files:
|
|
184
186
|
- templates/index.html
|
185
187
|
- templates/slides/welcome.html
|
186
188
|
- themes/default.css
|
189
|
+
- themes/slidedown.css
|
187
190
|
has_rdoc: true
|
188
191
|
homepage: http://github.com/juliocesar/shining
|
189
192
|
licenses: []
|