tp 0.3.0 → 0.3.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.
- data/Readme.md +14 -3
- data/lib/tp/presenter.rb +1 -1
- data/lib/tp/slide.rb +12 -0
- data/lib/tp/slide_deck.rb +17 -0
- data/lib/tp/version.rb +1 -1
- data/slides.md +7 -1
- data/spec/lib/tp/slide_deck_spec.rb +11 -0
- data/spec/lib/tp/slide_spec.rb +20 -0
- metadata +1 -1
data/Readme.md
CHANGED
@@ -34,7 +34,8 @@ tp slides.md
|
|
34
34
|
|
35
35
|
* Arrow keys
|
36
36
|
* Space/Enter/Backspace
|
37
|
-
* H,J,K,L
|
37
|
+
* H,J,K,L
|
38
|
+
* W,A,S,D
|
38
39
|
* Q to quit
|
39
40
|
|
40
41
|
# Paragraphs
|
@@ -45,12 +46,22 @@ Short paragraphs are centered
|
|
45
46
|
|
46
47
|
Sometimes paragraphs are really really long and might wrap a few lines. It does its best to wrap them logically. Also, they stay left-aligned.
|
47
48
|
|
49
|
+
# Paragraphs
|
50
|
+
|
51
|
+
There can also be...
|
52
|
+
|
53
|
+
...multiple paragraphs.
|
54
|
+
|
55
|
+
#
|
56
|
+
|
57
|
+
Headers can also be blank
|
58
|
+
|
48
59
|
# Contribute
|
49
60
|
|
50
|
-
|
61
|
+
justincampbell/tp
|
51
62
|
|
52
63
|
# Thanks!
|
53
64
|
|
54
|
-
@
|
65
|
+
@justincampbell
|
55
66
|
```
|
56
67
|
|
data/lib/tp/presenter.rb
CHANGED
data/lib/tp/slide.rb
CHANGED
@@ -29,6 +29,18 @@ module TP
|
|
29
29
|
body unless bullets
|
30
30
|
end
|
31
31
|
|
32
|
+
def width
|
33
|
+
return header.length unless body
|
34
|
+
|
35
|
+
(body.lines.to_a.collect(&:length) + [header.length]).max
|
36
|
+
end
|
37
|
+
|
38
|
+
def height
|
39
|
+
return 1 unless body
|
40
|
+
|
41
|
+
body.lines.count + 2
|
42
|
+
end
|
43
|
+
|
32
44
|
private
|
33
45
|
|
34
46
|
def lines
|
data/lib/tp/slide_deck.rb
CHANGED
@@ -56,5 +56,22 @@ module TP
|
|
56
56
|
|
57
57
|
current
|
58
58
|
end
|
59
|
+
|
60
|
+
def width
|
61
|
+
slides_without_paragraphs = slides.reject(&:paragraph)
|
62
|
+
|
63
|
+
if slides_without_paragraphs.empty?
|
64
|
+
[slides.collect(&:width).max, 80].min
|
65
|
+
else
|
66
|
+
[
|
67
|
+
slides.collect(&:header).map(&:length).max,
|
68
|
+
slides_without_paragraphs.collect(&:width).max
|
69
|
+
].max
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def height
|
74
|
+
slides.collect(&:height).max
|
75
|
+
end
|
59
76
|
end
|
60
77
|
end
|
data/lib/tp/version.rb
CHANGED
data/slides.md
CHANGED
@@ -30,7 +30,13 @@ Short paragraphs are centered
|
|
30
30
|
|
31
31
|
# Paragraphs
|
32
32
|
|
33
|
-
Sometimes paragraphs are really really long and might wrap a few lines. It does
|
33
|
+
Sometimes paragraphs are really really long and might wrap a few lines. It does its best to wrap them logically. Also, they stay left-aligned.
|
34
|
+
|
35
|
+
# Paragraphs
|
36
|
+
|
37
|
+
There can also be...
|
38
|
+
|
39
|
+
...multiple paragraphs.
|
34
40
|
|
35
41
|
#
|
36
42
|
|
@@ -10,5 +10,16 @@ describe TP::SlideDeck do
|
|
10
10
|
]
|
11
11
|
}
|
12
12
|
|
13
|
+
its(:height) { should == 4 }
|
14
|
+
its(:width) { should == 12 }
|
15
|
+
|
16
|
+
context "with only really long paragraphs" do
|
17
|
+
let (:slides) {
|
18
|
+
[TP::Slide.new("# First Slide\n\n#{'word ' * 100}")]
|
19
|
+
}
|
20
|
+
|
21
|
+
its(:width) { should == 80 }
|
22
|
+
end
|
23
|
+
|
13
24
|
it { slide_deck.frames.count.should == 4 }
|
14
25
|
end
|
data/spec/lib/tp/slide_spec.rb
CHANGED
@@ -19,6 +19,9 @@ describe TP::Slide do
|
|
19
19
|
|
20
20
|
its(:bullets) { should =~ ["Bullet 1", "Bullet 2"] }
|
21
21
|
its(:paragraph) { should be_nil }
|
22
|
+
|
23
|
+
its(:width) { should == 11 }
|
24
|
+
its(:height) { should == 4 }
|
22
25
|
end
|
23
26
|
|
24
27
|
context "with a paragraph" do
|
@@ -31,6 +34,9 @@ describe TP::Slide do
|
|
31
34
|
|
32
35
|
its(:bullets) { should be_nil }
|
33
36
|
its(:paragraph) { should == "This is a paragraph of text" }
|
37
|
+
|
38
|
+
its(:width) { should == 27 }
|
39
|
+
its(:height) { should == 3 }
|
34
40
|
end
|
35
41
|
|
36
42
|
context "with just a header" do
|
@@ -43,6 +49,17 @@ describe TP::Slide do
|
|
43
49
|
|
44
50
|
its(:bullets) { should be_nil }
|
45
51
|
its(:paragraph) { should be_nil }
|
52
|
+
|
53
|
+
its(:width) { should == 11 }
|
54
|
+
its(:height) { should == 1 }
|
55
|
+
end
|
56
|
+
|
57
|
+
context "with a header longer than the paragraph" do
|
58
|
+
let(:markdown) {
|
59
|
+
"# This is a very long header\n\nand short paragraph"
|
60
|
+
}
|
61
|
+
|
62
|
+
its(:width) { should == 26 }
|
46
63
|
end
|
47
64
|
|
48
65
|
context "with a blank header" do
|
@@ -55,6 +72,9 @@ describe TP::Slide do
|
|
55
72
|
|
56
73
|
its(:bullets) { should be_nil }
|
57
74
|
its(:paragraph) { should == "First Slide" }
|
75
|
+
|
76
|
+
its(:width) { should == 11 }
|
77
|
+
its(:height) { should == 3 }
|
58
78
|
end
|
59
79
|
|
60
80
|
context "with trailing newlines" do
|