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.
- 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
|