shining 1.0.2 → 1.1.0
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/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: []
|