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 CHANGED
@@ -1 +1 @@
1
- 1.0.2
1
+ 1.1.0
data/bin/console CHANGED
@@ -1,6 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
- require File.join(File.dirname(__FILE__), *%w(.. .bundle environment))
3
- require 'harmony'
2
+
3
+ $:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
4
+
5
+ require 'shining'
4
6
  require 'irb'
5
- require 'tilt'
7
+
6
8
  IRB.start
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!
@@ -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) }
@@ -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
- $(document).click(function(event) {
43
- if ($(event.target).is('a')) return false;
44
- if (event.pageX < ($(window).width() / 2)) {
45
- $.shining.previousSlide();
40
+ loadConfig(function() {
41
+ var startAt = document.location.hash.replace('#', '');
42
+ if (startAt) {
43
+ getSlide(startAt)
46
44
  } else {
47
- $.shining.nextSlide();
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
@@ -4,6 +4,7 @@ require 'rubygems'
4
4
  require 'ext/string'
5
5
  require 'ext/filemethods'
6
6
  require 'shining/preso'
7
+ require 'shining/player'
7
8
  require 'term/ansicolor'
8
9
 
9
10
  module Shining
@@ -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
- system "#{SHINE} #{PRESO}"
12
+ quiet "#{SHINE} #{PRESO}"
9
13
  end
10
14
 
11
15
  def vendorize
12
- system "cd #{PRESO} && #{SHINE} vendor"
16
+ quiet "cd #{PRESO} && #{SHINE} vendor"
13
17
  end
14
18
 
15
19
  def new_slide(name, format = 'html')
16
- system "cd #{PRESO} && #{SHINE} slide #{name} #{format}"
20
+ quiet "cd #{PRESO} && #{SHINE} slide #{name} #{format}"
17
21
  end
18
22
 
19
23
  def compile_templates
20
- system "cd #{PRESO} && #{SHINE} compile"
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'; require 'spec'
8
- gem 'rake', '0.8.7'; require 'rake'
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'; require 'json/pure'
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.2
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-11 00:00:00 +11:00
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: []