rhet-butler 0.11.1 → 0.12.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. checksums.yaml +8 -8
  2. data/default-configuration/assets/javascript/sockjs-0.3.4.js +2379 -0
  3. data/default-configuration/assets/stylesheets/rhet.css.sass +4 -3
  4. data/default-configuration/common/templates/header-javascript.html +1 -1
  5. data/default-configuration/common/templates/presentation.html.erb +1 -1
  6. data/default-configuration/common/templates/presenter-qr.html.erb +1 -1
  7. data/default-configuration/presenter/templates/stylesheets.html.erb +1 -0
  8. data/lib/rhet-butler/command-line.rb +2 -0
  9. data/lib/rhet-butler/filter-resolver.rb +10 -1
  10. data/lib/rhet-butler/messaging.rb +24 -7
  11. data/lib/rhet-butler/resource-localizer.rb +1 -1
  12. data/lib/rhet-butler/slide-contents/embed.rb +39 -0
  13. data/lib/rhet-butler/slide-contents.rb +40 -0
  14. data/lib/rhet-butler/slide-loader.rb +8 -7
  15. data/lib/rhet-butler/slide-rendering.rb +17 -6
  16. data/lib/rhet-butler/slide.rb +9 -78
  17. data/lib/rhet-butler/stasis/rack-loader.rb +3 -1
  18. data/lib/rhet-butler/stasis/transform-queue.rb +23 -13
  19. data/lib/rhet-butler/static-generator.rb +1 -1
  20. data/lib/rhet-butler/web/main-app.rb +12 -12
  21. data/lib/rhet-butler/web/presentation-app.rb +5 -1
  22. data/lib/rhet-butler/yaml-schema.rb +1 -1
  23. data/spec/slide-loader.rb +11 -1
  24. metadata +8 -12
  25. data/lib/rhet-butler/arrangement-finder.rb +0 -71
  26. data/lib/rhet-butler/arrangement.rb +0 -78
  27. data/lib/rhet-butler/layout-rule.rb +0 -61
  28. data/lib/rhet-butler/slide-arranger.rb +0 -39
  29. data/lib/rhet-butler/slide-processor.rb +0 -27
  30. data/spec/arrangements.rb +0 -76
  31. data/spec/slide-processing.rb +0 -76
@@ -1,39 +0,0 @@
1
- require 'rhet-butler/slide-traverser'
2
- module RhetButler
3
- class SlideArranger < SlideTraverser
4
- attr_reader :slides, :current_slide
5
- attr_accessor :root_arrangement
6
-
7
- def setup
8
- @slides = []
9
- on_group(@root_arrangement)
10
- end
11
-
12
- def null_slide
13
- @null_slide ||= Slide.new
14
- end
15
-
16
- def previous_slide
17
- case @previous_slide
18
- when Slide
19
- @previous_slide
20
- when nil
21
- null_slide
22
- else
23
- @previous_slide.previous_slide
24
- end
25
- end
26
-
27
- def on_slide(slide)
28
- @current_slide = slide.dup
29
- target_stack.last.arrange(self)
30
- @slides.push @current_slide
31
- @previous_slide = @current_slide
32
- end
33
-
34
- def ascend
35
- @previous_slide = target_stack.last
36
- super
37
- end
38
- end
39
- end
@@ -1,27 +0,0 @@
1
- require 'rhet-butler/slide-rendering'
2
- require 'rhet-butler/arrangement-finder'
3
- require 'rhet-butler/slide-arranger'
4
-
5
- module RhetButler
6
- class SlideProcessor
7
- attr_accessor :root_group, :blueprint, :default_content_filters, :default_note_filters
8
- attr_reader :slides
9
-
10
- def process
11
- rendering = SlideRendering.new
12
- rendering.root_group = @root_group
13
- rendering.traverse
14
-
15
- finder = ArrangementFinder.new
16
- finder.root_group = @root_group
17
- finder.blueprint = @blueprint
18
- finder.traverse
19
-
20
- arranger = SlideArranger.new
21
- arranger.root_arrangement = finder.root_arrangement
22
- arranger.traverse
23
-
24
- @slides = arranger.slides
25
- end
26
- end
27
- end
data/spec/arrangements.rb DELETED
@@ -1,76 +0,0 @@
1
- require 'rhet-butler/arrangement'
2
- require 'rhet-butler/slide'
3
- require 'rhet-butler/slide-loader'
4
-
5
- describe RhetButler::Arrangement do
6
- let :slides do
7
- (1..5).map do |num|
8
- RhetButler::Slide.new.tap do |slide|
9
- slide.content = "Slide ##{num}"
10
- end
11
- end
12
- end
13
-
14
- let :arranger do
15
- arranger = RhetButler::SlideArranger.new
16
- arranger.root_arrangement = arrangement
17
- arranger
18
- end
19
-
20
- let :arranged do
21
- arranger.traverse
22
- arranger.slides
23
- end
24
-
25
- describe "digression" do
26
- let :arrangement do
27
- arrangement = RhetButler::Arrangement["linear"].new(1000, 0)
28
- digression = RhetButler::Arrangement["linear-digress"].new(0, 1000)
29
- digression.slides = (1..3).map do |num|
30
- RhetButler::Slide.new.tap do |slide|
31
- slide.content = "Aside ##{num}"
32
- end
33
- end
34
- arrangement.slides = slides
35
- arrangement.slides.insert(4, digression)
36
- arrangement
37
- end
38
-
39
- it "should still last slide a 5000,0" do
40
- arranged.last.position.x.should == 5000
41
- arranged.last.position.y.should == 0
42
- end
43
-
44
- it "should have 8 slides" do
45
- arranged.should have(8).slides
46
- end
47
-
48
- it "should put the last digression slide at 4000,3000" do
49
- arranged[6].position.x.should == 4000
50
- arranged[6].position.y.should == 3000
51
- end
52
- end
53
-
54
- describe "horizontal" do
55
- let :arrangement do
56
- arrangement = RhetButler::Arrangement["horizontal"].new
57
- arrangement.slides = slides
58
- arrangement
59
- end
60
-
61
- it "should all at the same y position" do
62
- arranged.map do |slide|
63
- slide.position.y
64
- end.uniq.should have(1).value
65
- end
66
-
67
- it "should monotonically increase x position" do
68
- arranged.each_cons(2).map do |left, right|
69
- right.position.x - left.position.x
70
- end.each do |difference|
71
- difference.should > 0
72
- end
73
- end
74
-
75
- end
76
- end
@@ -1,76 +0,0 @@
1
- require 'rhet-butler/slide-loader'
2
-
3
- describe RhetButler::SlideProcessor do
4
- def slide(content)
5
- slide = RhetButler::Slide.new
6
- slide.content = content
7
- slide.content_filters = default_content_filters
8
- slide.note_filters = default_content_filters
9
- slide
10
- end
11
-
12
- def group(*slides)
13
- group = RhetButler::SlideGroup.new
14
- group.slides = slides
15
- group
16
- end
17
-
18
- let :slides do
19
- [
20
- slide("A"),
21
- slide("B"),
22
- group(slide("C"), slide("D"), slide("E"))
23
- ]
24
- end
25
-
26
- let :root_group do
27
- group(*slides)
28
- end
29
-
30
- let :root_arrangement do
31
- RhetButler::Arrangement['horizontal'].new
32
- end
33
-
34
- let :blueprint do
35
- [
36
- RhetButler::LayoutRule.new.tap do |rule|
37
- rule.layout_type = 'horizontal'
38
- end
39
- ]
40
- end
41
-
42
- let :default_content_filters do
43
- [RhetButler::SlideRenderers::Textile.new]
44
- end
45
-
46
- let :processor do
47
- processor = RhetButler::SlideProcessor.new
48
- processor.root_group = root_group
49
- processor.blueprint = blueprint
50
- processor.default_content_filters = default_content_filters
51
- processor.default_note_filters = default_content_filters
52
- processor
53
- end
54
-
55
- let :result do
56
- processor.process
57
- processor.slides
58
- end
59
-
60
- it "should produce slides" do
61
- result.each do |slide|
62
- slide.should be_a_kind_of(RhetButler::Slide)
63
- end
64
- end
65
-
66
- it "should have five slides" do
67
- result.should have(5).slides
68
-
69
- end
70
-
71
- it "should put all the slides in order" do
72
- result.map do |slide|
73
- slide.content
74
- end.should == %w{A B C D E}.map{|str| "<p>#{str}</p>"}
75
- end
76
- end