shining 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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