shining 2.0.0 → 2.0.1

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.
@@ -2,14 +2,14 @@
2
2
  Shining.pluginProcesses['resize'] = setInterval(function() {
3
3
  var width = $(window).width();
4
4
  if (width >= 640 && width < 800) {
5
- $('#stage').css({fontSize: '100%'});
5
+ $('body').css({fontSize: '100%'});
6
6
  } else if (width >= 800 && width < 1024) {
7
- $('#stage').css({fontSize: '130%'});
7
+ $('body').css({fontSize: '110%'});
8
8
  } else if (width >= 1024 && width < 1280) {
9
- $('#stage').css({fontSize: '160%'});
9
+ $('body').css({fontSize: '120%'});
10
10
  } else if (width >= 1280 && width < 1440) {
11
- $('#stage').css({fontSize: '180%'});
11
+ $('body').css({fontSize: '130%'});
12
12
  } else if (width > 1440) {
13
- $('#stage').css({fontSize: '200%'});
13
+ $('body').css({fontSize: '140%'});
14
14
  }
15
15
  }, 500);
@@ -43,7 +43,7 @@
43
43
  when: when,
44
44
  trigger: trigger,
45
45
  pluginProcesses: {},
46
- centerStage: centerStage,
46
+ centerSlide: centerSlide,
47
47
 
48
48
  // slide scripts
49
49
  scripts: {
@@ -93,16 +93,12 @@
93
93
  // Transitions
94
94
  var Transitions = {
95
95
  'fade': {
96
- enter: function() { $('#stage').fadeIn(200); },
97
- leave: function() { $('#stage').fadeOut(200); }
98
- },
99
- 'slide': {
100
- enter: function() { $('#stage').css({ marginLeft: null, marginRight: '-200px' }).animate({ opacity: 1, marginRight: '0' }, 200); },
101
- leave: function() { $('#stage').animate({ opacity: 0, marginLeft: '-200' }, 200); }
96
+ enter: function() { $('div.slide').fadeIn(200); },
97
+ leave: function() { $('div.slide').fadeOut(200); }
102
98
  },
103
99
  'none': {
104
- enter: $.noop,
105
- leave: $.noop
100
+ enter: function() { $('div.slide').show(); },
101
+ leave: function() { $('div.slide').hide(); }
106
102
  }
107
103
  }
108
104
 
@@ -168,40 +164,34 @@
168
164
  }
169
165
  return name;
170
166
  }
171
-
172
- function loadSlide(name, callback) {
173
- if (!Shining.slides.loaded(name)) {
174
- $.get(
175
- 'slides/' + name,
176
- function(data) {
177
- Shining.slides._loaded[name] = {};
178
- Shining.slides._loaded[name].markup = compileSlide(name, data);
179
- trigger('slideloaded', [name]);
180
- if (data) { loadSlideScript(name, callback); };
181
- }
182
- );
183
- } else {
184
- if ($.isFunction(callback)) callback.call();
185
- }
186
- }
187
-
188
- function preloadSlides() {
189
- $(Shining.config.slides).each(function() { loadSlide(this); })
167
+
168
+ function loadSlides(callback) {
169
+ $.getJSON(
170
+ '/slides.json',
171
+ function(slides) {
172
+ Shining.slides._loaded = slides;
173
+ for (slide in slides) {
174
+ slides[slide].markup = compileSlide(slide, slides[slide].markup)
175
+ };
176
+ trigger('slidesloaded');
177
+ if ($.isFunction(callback)) callback();
178
+ }
179
+ );
190
180
  }
191
181
 
192
182
  function playSlide(name) {
193
- $('#stage')
183
+ $('body')
194
184
  .queue(function() { Transitions[Shining.config.transitions].leave(); $(this).dequeue(); })
195
185
  .queue(function() {
196
186
  Shining.scripts.reap();
197
187
  var slide = Shining.slides._loaded[name];
198
188
  Shining.slides.current(name);
199
- $('#stage').html(slide.markup);
200
- setTimeout(centerStage, 500);
189
+ $('body').html('<div class="slide">' + slide.markup + '</div>');
190
+ setTimeout(centerSlide, 500);
201
191
  trigger('slideplay', [name]);
202
192
  $(this).dequeue();
203
193
  })
204
- .queue(function() { Transitions[Shining.config.transitions].enter(); $(this).dequeue(); centerStage(); });
194
+ .queue(function() { Transitions[Shining.config.transitions].enter(); $(this).dequeue(); centerSlide(); });
205
195
  }
206
196
 
207
197
  function loadPlugins() {
@@ -212,16 +202,6 @@
212
202
  }
213
203
  }
214
204
 
215
- function loadSlideScript(name, callback) {
216
- $.ajax({
217
- url: 'slides/' + slidePlusExtension(name, 'js'),
218
- dataType: 'text',
219
- type: 'GET',
220
- success: function(script) { Shining.slides._loaded[name].script = script },
221
- complete: function() { if ($.isFunction(callback)) callback.call() }
222
- })
223
- }
224
-
225
205
  function loadSlideStyle(name) {
226
206
  $('link.slide').remove();
227
207
  $('head').append('<link rel="stylesheet" type="text/css" href="slides/' + slidePlusExtension(name, 'css') + '" media="all" class="slide"/>')
@@ -236,18 +216,18 @@
236
216
  });
237
217
  }
238
218
 
239
- function centerStage() {
240
- var top = ($(window).height() - $('#stage').outerHeight()) / 2;
219
+ function centerSlide() {
220
+ var top = ($(window).height() - $('div.slide:visible').outerHeight()) / 2;
241
221
  if (top < 0) top = 0;
242
- $('#stage').css({ top: top });
222
+ $('div.slide').css({ top: top });
243
223
  }
244
224
 
245
225
  function hasPendingStep() {
246
- return !!$('#stage .step:not(:visible)').length;
226
+ return !!$('div.slide .step:not(:visible)').length;
247
227
  }
248
228
 
249
229
  function runPendingStep() {
250
- $('#stage .step:not(:visible):first').show();
230
+ $('div.slide .step:not(:visible):first').show();
251
231
  }
252
232
 
253
233
  // Now configure everything!
@@ -274,20 +254,15 @@
274
254
  loadSlideStyle(name);
275
255
  Shining.scripts.runSlide(name);
276
256
  if (SyntaxHighlighter) SyntaxHighlighter.highlight({gutter: false, toolbar: false});
277
- if ($('#stage aside').length) setTimeout(function() { note($('#stage aside').html(), 5000) }, 500);
257
+ if ($('body aside').length) setTimeout(function() { note($('body aside').html(), 5000) }, 500);
278
258
  });
279
259
 
280
- when('slideloaded', function(event, name) {
281
- help('Loaded ' + Shining.slides.totalLoaded() + '/' + Shining.slides._slides.length, 5000);
282
- if (Shining.slides.totalLoaded() == Shining.config.slides.length) trigger('slidesloaded');
283
- })
284
-
285
260
  when('slidesloaded', function() {
286
261
  help('← (previous slide), → or SPACE BAR (next slide)', 3000);
287
262
  })
288
263
 
289
264
  $(window)
290
- .resize(function() { centerStage(); })
265
+ .resize(function() { centerSlide(); })
291
266
  .bind('hashchange', function() {
292
267
  var slide = document.location.hash.replace('#', '');
293
268
  if (slide) Shining.playSlide(slide);
@@ -309,7 +284,7 @@
309
284
  loadConfig(function() {
310
285
  loadPlugins();
311
286
  var startAt = document.location.hash.replace('#', ''), first = startAt || Shining.slides.current();
312
- loadSlide(first, function() { playSlide(first); preloadSlides(); setTimeout(centerStage, 500); });
287
+ loadSlides(function() { playSlide(first); });
313
288
  setTitle(Shining.config.title);
314
289
  setTheme(Shining.config.theme);
315
290
  });
@@ -7,7 +7,7 @@ class Preso
7
7
  include FileMethods and extend FileMethods
8
8
  attr_reader :path, :name
9
9
 
10
- SLIDE_FORMATS = %w(markdown html md)
10
+ SLIDE_FORMATS = %w(markdown md html)
11
11
 
12
12
  def initialize dir, fresh = true
13
13
  @path = expand(dir)
@@ -53,9 +53,9 @@ class Preso
53
53
  def remove_slide file
54
54
  file = basename(file)
55
55
  name, format = basename(file, extname(file)), extname(file).sub(/^./, '')
56
- delete! file
57
- delete! "#{name}.css"
58
- delete! "#{name}.js"
56
+ delete! path/'slides'/file
57
+ delete! path/'slides'/"#{name}.css"
58
+ delete! path/'slides'/"#{name}.js"
59
59
  config['slides'].delete file and save_config!
60
60
  end
61
61
 
@@ -1,97 +1,99 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{shining}
8
- s.version = "2.0.0"
8
+ s.version = "2.0.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Julio Cesar Ody"]
12
- s.date = %q{2010-09-17}
12
+ s.date = %q{2011-02-25}
13
13
  s.default_executable = %q{shine}
14
14
  s.description = %q{HTML + CSS + Javascript = awesome presos}
15
15
  s.email = %q{julio.ody@gmail.com}
16
16
  s.executables = ["shine"]
17
17
  s.extra_rdoc_files = [
18
18
  "LICENSE.txt",
19
- "README.markdown"
19
+ "README.markdown"
20
20
  ]
21
21
  s.files = [
22
22
  "CHANGELOG.txt",
23
- "LICENSE.txt",
24
- "README.markdown",
25
- "Rakefile",
26
- "TODO.txt",
27
- "VERSION",
28
- "bin/shine",
29
- "css/base.css",
30
- "css/effects.css",
31
- "css/shAll.css",
32
- "css/shThemeFadeToGrey.css",
33
- "images/default-noise.png",
34
- "lib/config.ru",
35
- "lib/deps.js",
36
- "lib/ext/filemethods.rb",
37
- "lib/ext/string.rb",
38
- "lib/jquery-1.4.2.min.js",
39
- "lib/plugins/iphone.js",
40
- "lib/plugins/resize.js",
41
- "lib/shining.js",
42
- "lib/shining.rb",
43
- "lib/shining/errors.rb",
44
- "lib/shining/heroku.rb",
45
- "lib/shining/player.rb",
46
- "lib/shining/preso.rb",
47
- "shining.gemspec",
48
- "spec/cli_spec.rb",
49
- "spec/filemethods_spec.rb",
50
- "spec/heroku_spec.rb",
51
- "spec/javascripts/dom.html",
52
- "spec/javascripts/rhino.js",
53
- "spec/javascripts/sample/config.json",
54
- "spec/javascripts/sample/index.html",
55
- "spec/javascripts/sample/slides/slide1.css",
56
- "spec/javascripts/sample/slides/slide1.html",
57
- "spec/javascripts/sample/slides/slide1.js",
58
- "spec/javascripts/sample/slides/slide2.css",
59
- "spec/javascripts/sample/slides/slide2.html",
60
- "spec/javascripts/sample/slides/slide2.js",
61
- "spec/javascripts/sample/slides/welcome.html",
62
- "spec/javascripts/unit/spec.helper.js",
63
- "spec/javascripts/unit/spec.js",
64
- "spec/preso_spec.rb",
65
- "spec/sample/base.css",
66
- "spec/sample/config.json",
67
- "spec/sample/effects.css",
68
- "spec/sample/index.html",
69
- "spec/sample/slides/first.html",
70
- "spec/sample/slides/first.js",
71
- "spec/sample/slides/second.html",
72
- "spec/sample/slides/second.js",
73
- "spec/sample/slides/third.html",
74
- "spec/sample/slides/third.js",
75
- "spec/shining_spec.rb",
76
- "spec/spec_helper.rb",
77
- "templates/config.json",
78
- "templates/index.html",
79
- "templates/slides/welcome.html",
80
- "themes/default.css",
81
- "themes/slidedown.css"
23
+ "Gemfile",
24
+ "Gemfile.lock",
25
+ "LICENSE.txt",
26
+ "README.markdown",
27
+ "Rakefile",
28
+ "TODO.txt",
29
+ "VERSION",
30
+ "bin/shine",
31
+ "css/base.css",
32
+ "css/effects.css",
33
+ "css/shAll.css",
34
+ "css/shThemeFadeToGrey.css",
35
+ "images/default-noise.png",
36
+ "lib/config.ru",
37
+ "lib/deps.js",
38
+ "lib/ext/filemethods.rb",
39
+ "lib/ext/string.rb",
40
+ "lib/jquery-1.4.4.min.js",
41
+ "lib/plugins/iphone.js",
42
+ "lib/plugins/resize.js",
43
+ "lib/shining.js",
44
+ "lib/shining.rb",
45
+ "lib/shining/errors.rb",
46
+ "lib/shining/heroku.rb",
47
+ "lib/shining/player.rb",
48
+ "lib/shining/preso.rb",
49
+ "shining.gemspec",
50
+ "spec/cli_spec.rb",
51
+ "spec/filemethods_spec.rb",
52
+ "spec/heroku_spec.rb",
53
+ "spec/javascripts/dom.html",
54
+ "spec/javascripts/rhino.js",
55
+ "spec/javascripts/sample/config.json",
56
+ "spec/javascripts/sample/index.html",
57
+ "spec/javascripts/sample/slides/slide1.css",
58
+ "spec/javascripts/sample/slides/slide1.html",
59
+ "spec/javascripts/sample/slides/slide1.js",
60
+ "spec/javascripts/sample/slides/slide2.css",
61
+ "spec/javascripts/sample/slides/slide2.html",
62
+ "spec/javascripts/sample/slides/slide2.js",
63
+ "spec/javascripts/sample/slides/welcome.html",
64
+ "spec/javascripts/unit/spec.helper.js",
65
+ "spec/javascripts/unit/spec.js",
66
+ "spec/preso_spec.rb",
67
+ "spec/sample/base.css",
68
+ "spec/sample/config.json",
69
+ "spec/sample/effects.css",
70
+ "spec/sample/index.html",
71
+ "spec/sample/slides/first.html",
72
+ "spec/sample/slides/first.js",
73
+ "spec/sample/slides/second.html",
74
+ "spec/sample/slides/second.js",
75
+ "spec/sample/slides/third.html",
76
+ "spec/sample/slides/third.js",
77
+ "spec/shining_spec.rb",
78
+ "spec/spec_helper.rb",
79
+ "templates/config.json",
80
+ "templates/index.html",
81
+ "templates/slides/welcome.html",
82
+ "themes/default.css",
83
+ "themes/retro.css",
84
+ "themes/slidedown.css"
82
85
  ]
83
86
  s.homepage = %q{http://shining.heroku.com}
84
- s.rdoc_options = ["--charset=UTF-8"]
85
87
  s.require_paths = ["lib"]
86
88
  s.rubygems_version = %q{1.3.7}
87
89
  s.summary = %q{HTML + CSS + Javascript = awesome presos}
88
90
  s.test_files = [
89
91
  "spec/cli_spec.rb",
90
- "spec/filemethods_spec.rb",
91
- "spec/heroku_spec.rb",
92
- "spec/preso_spec.rb",
93
- "spec/shining_spec.rb",
94
- "spec/spec_helper.rb"
92
+ "spec/filemethods_spec.rb",
93
+ "spec/heroku_spec.rb",
94
+ "spec/preso_spec.rb",
95
+ "spec/shining_spec.rb",
96
+ "spec/spec_helper.rb"
95
97
  ]
96
98
 
97
99
  if s.respond_to? :specification_version then
@@ -99,30 +101,48 @@ Gem::Specification.new do |s|
99
101
  s.specification_version = 3
100
102
 
101
103
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
104
+ s.add_runtime_dependency(%q<json_pure>, ["= 1.4.6"])
105
+ s.add_runtime_dependency(%q<rack>, ["= 1.2.1"])
106
+ s.add_runtime_dependency(%q<rainbow>, ["= 1.1"])
107
+ s.add_runtime_dependency(%q<heroku>, ["= 1.15.1"])
108
+ s.add_runtime_dependency(%q<stringex>, ["= 1.2.0"])
102
109
  s.add_runtime_dependency(%q<json_pure>, [">= 1.1.9"])
103
110
  s.add_runtime_dependency(%q<heroku>, [">= 1.9.9"])
104
- s.add_runtime_dependency(%q<rack>, [">= 0.9"])
111
+ s.add_runtime_dependency(%q<rack>, [">= 1.0"])
105
112
  s.add_runtime_dependency(%q<stringex>, [">= 1.1.0"])
106
113
  s.add_runtime_dependency(%q<jeweler>, [">= 1.4.0"])
114
+ s.add_runtime_dependency(%q<rainbow>, ["= 1.1"])
107
115
  s.add_development_dependency(%q<rspec>, ["= 1.3.0"])
108
116
  s.add_development_dependency(%q<jspec>, ["= 4.2.0"])
109
117
  s.add_development_dependency(%q<rake>, ["= 0.8.7"])
110
118
  else
119
+ s.add_dependency(%q<json_pure>, ["= 1.4.6"])
120
+ s.add_dependency(%q<rack>, ["= 1.2.1"])
121
+ s.add_dependency(%q<rainbow>, ["= 1.1"])
122
+ s.add_dependency(%q<heroku>, ["= 1.15.1"])
123
+ s.add_dependency(%q<stringex>, ["= 1.2.0"])
111
124
  s.add_dependency(%q<json_pure>, [">= 1.1.9"])
112
125
  s.add_dependency(%q<heroku>, [">= 1.9.9"])
113
- s.add_dependency(%q<rack>, [">= 0.9"])
126
+ s.add_dependency(%q<rack>, [">= 1.0"])
114
127
  s.add_dependency(%q<stringex>, [">= 1.1.0"])
115
128
  s.add_dependency(%q<jeweler>, [">= 1.4.0"])
129
+ s.add_dependency(%q<rainbow>, ["= 1.1"])
116
130
  s.add_dependency(%q<rspec>, ["= 1.3.0"])
117
131
  s.add_dependency(%q<jspec>, ["= 4.2.0"])
118
132
  s.add_dependency(%q<rake>, ["= 0.8.7"])
119
133
  end
120
134
  else
135
+ s.add_dependency(%q<json_pure>, ["= 1.4.6"])
136
+ s.add_dependency(%q<rack>, ["= 1.2.1"])
137
+ s.add_dependency(%q<rainbow>, ["= 1.1"])
138
+ s.add_dependency(%q<heroku>, ["= 1.15.1"])
139
+ s.add_dependency(%q<stringex>, ["= 1.2.0"])
121
140
  s.add_dependency(%q<json_pure>, [">= 1.1.9"])
122
141
  s.add_dependency(%q<heroku>, [">= 1.9.9"])
123
- s.add_dependency(%q<rack>, [">= 0.9"])
142
+ s.add_dependency(%q<rack>, [">= 1.0"])
124
143
  s.add_dependency(%q<stringex>, [">= 1.1.0"])
125
144
  s.add_dependency(%q<jeweler>, [">= 1.4.0"])
145
+ s.add_dependency(%q<rainbow>, ["= 1.1"])
126
146
  s.add_dependency(%q<rspec>, ["= 1.3.0"])
127
147
  s.add_dependency(%q<jspec>, ["= 4.2.0"])
128
148
  s.add_dependency(%q<rake>, ["= 0.8.7"])
@@ -20,10 +20,6 @@ describe 'shine' do
20
20
  quiet "cd #{PRESO} && #{SHINE} slide #{name} #{format}"
21
21
  end
22
22
 
23
- def compile_templates
24
- quiet "cd #{PRESO} && #{SHINE} compile"
25
- end
26
-
27
23
  def make_markdown_template!(name)
28
24
  File.open(PRESO/'slides'/"#{name}.md", 'w') { |f| f << "# Look ma\n\nNo hands" }
29
25
  end
@@ -38,7 +34,7 @@ describe 'shine' do
38
34
  new_preso
39
35
  end
40
36
 
41
- it "creates a new shining preso when passing an argument thats not 'build', 'compile', or 'slide'" do
37
+ it "creates a new shining preso when passing an argument thats not 'build', or 'slide'" do
42
38
  File.directory?(PRESO).should == true
43
39
  end
44
40
 
@@ -53,16 +49,5 @@ describe 'shine' do
53
49
  new_slide 'test', 'md'
54
50
  File.exists?(PRESO/'slides'/'test.md').should be_true
55
51
  end
56
- end
57
-
58
- context 'go' do
59
- it "for now it only works on Mac OSX" do
60
- player = Shining::Player.new Shining::Preso.open(PRESO)
61
- player.should_receive(:osx?).and_return(false)
62
- lambda { player.go! }.should raise_error
63
- end
64
-
65
- it "downloads and decompresses Plainview and if it's not found #{'PRESO_ROOT'/'vendor'/'Plainview.app'}"
66
- it "fires up Plainview"
67
- end
52
+ end
68
53
  end