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.
- checksums.yaml +8 -8
- data/default-configuration/assets/javascript/sockjs-0.3.4.js +2379 -0
- data/default-configuration/assets/stylesheets/rhet.css.sass +4 -3
- data/default-configuration/common/templates/header-javascript.html +1 -1
- data/default-configuration/common/templates/presentation.html.erb +1 -1
- data/default-configuration/common/templates/presenter-qr.html.erb +1 -1
- data/default-configuration/presenter/templates/stylesheets.html.erb +1 -0
- data/lib/rhet-butler/command-line.rb +2 -0
- data/lib/rhet-butler/filter-resolver.rb +10 -1
- data/lib/rhet-butler/messaging.rb +24 -7
- data/lib/rhet-butler/resource-localizer.rb +1 -1
- data/lib/rhet-butler/slide-contents/embed.rb +39 -0
- data/lib/rhet-butler/slide-contents.rb +40 -0
- data/lib/rhet-butler/slide-loader.rb +8 -7
- data/lib/rhet-butler/slide-rendering.rb +17 -6
- data/lib/rhet-butler/slide.rb +9 -78
- data/lib/rhet-butler/stasis/rack-loader.rb +3 -1
- data/lib/rhet-butler/stasis/transform-queue.rb +23 -13
- data/lib/rhet-butler/static-generator.rb +1 -1
- data/lib/rhet-butler/web/main-app.rb +12 -12
- data/lib/rhet-butler/web/presentation-app.rb +5 -1
- data/lib/rhet-butler/yaml-schema.rb +1 -1
- data/spec/slide-loader.rb +11 -1
- metadata +8 -12
- data/lib/rhet-butler/arrangement-finder.rb +0 -71
- data/lib/rhet-butler/arrangement.rb +0 -78
- data/lib/rhet-butler/layout-rule.rb +0 -61
- data/lib/rhet-butler/slide-arranger.rb +0 -39
- data/lib/rhet-butler/slide-processor.rb +0 -27
- data/spec/arrangements.rb +0 -76
- 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
|
data/spec/slide-processing.rb
DELETED
@@ -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
|