rhet-butler 0.11.1 → 0.12.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.
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