vebdew 0.0.3 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +2 -1
- data/Gemfile.lock +4 -6
- data/README.md +18 -13
- data/Rakefile +3 -5
- data/VERSION +1 -1
- data/lib/template/config.ru +1 -0
- data/lib/vebdew/parser.rb +106 -34
- data/test/test_parser.rb +87 -0
- data/vebdew.gemspec +10 -7
- metadata +27 -16
- data/test/helper.rb +0 -18
- data/test/test_vebdew.rb +0 -7
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
+
bacon (1.1.0)
|
4
5
|
erubis (2.7.0)
|
5
6
|
git (1.2.5)
|
7
|
+
htmlentities (4.3.1)
|
6
8
|
jeweler (1.8.3)
|
7
9
|
bundler (~> 1.0)
|
8
10
|
git (>= 1.2.5)
|
@@ -12,18 +14,14 @@ GEM
|
|
12
14
|
rake (0.9.2.2)
|
13
15
|
rdoc (3.12)
|
14
16
|
json (~> 1.4)
|
15
|
-
shoulda (3.0.1)
|
16
|
-
shoulda-context (~> 1.0.0)
|
17
|
-
shoulda-matchers (~> 1.0.0)
|
18
|
-
shoulda-context (1.0.0)
|
19
|
-
shoulda-matchers (1.0.0)
|
20
17
|
|
21
18
|
PLATFORMS
|
22
19
|
ruby
|
23
20
|
|
24
21
|
DEPENDENCIES
|
22
|
+
bacon (~> 1.1.0)
|
25
23
|
bundler (~> 1.0.0)
|
26
24
|
erubis
|
25
|
+
htmlentities
|
27
26
|
jeweler (~> 1.8.3)
|
28
27
|
rdoc (~> 3.12)
|
29
|
-
shoulda
|
data/README.md
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
# vebdew
|
2
2
|
|
3
3
|
A simple HTML5 slide generator.
|
4
|
-
Converts vew files into HTML5 slides.
|
4
|
+
Converts vew files (markdown like syntax) into HTML5 slides.
|
5
5
|
|
6
6
|
## Library used
|
7
|
-
- reveal.js
|
8
|
-
- erubis
|
7
|
+
- reveal.js: for the slides animation
|
8
|
+
- erubis: for the template
|
9
|
+
- htmlentities: for escaping the HTML
|
9
10
|
|
10
11
|
## Install
|
11
12
|
```
|
@@ -20,17 +21,21 @@ Run `new` to create a new project, `generate` to convert all vew files in the pr
|
|
20
21
|
Usage: vebdew COMMAND
|
21
22
|
|
22
23
|
Directory:
|
23
|
-
- /vew
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
- /vew # Vew file, all the *.vew files will be compiled to html
|
25
|
+
# when running the `generate` command
|
26
|
+
- template.erb # ERB template for the HTML
|
27
|
+
# @header meta tags and stylesheets
|
28
|
+
# @body for the contents
|
29
|
+
# @footer for the javascripts
|
30
|
+
- /css # CSS styles
|
31
|
+
- /js # Javascript files
|
32
|
+
- *.html # Compiled html slides
|
28
33
|
|
29
34
|
Commands:
|
30
|
-
new
|
31
|
-
generate
|
32
|
-
compile
|
33
|
-
|
35
|
+
new # Create a new slide project
|
36
|
+
generate # Generate slides for current directory (shortcut: g)
|
37
|
+
compile # Compiles single file into HTML5 slides (shortcut: c)
|
38
|
+
# [VEW FILE] [ERB TEMPLATE] [HTML SLIDE]
|
34
39
|
```
|
35
40
|
|
36
41
|
## Vew file syntax
|
@@ -112,7 +117,7 @@ generating
|
|
112
117
|
Another example is:
|
113
118
|
|
114
119
|
```
|
115
|
-
`<input>` tag has an attribute called
|
120
|
+
`<input>` tag has an attribute called {:.attr[title=checkbox|radio|submit]}`type`
|
116
121
|
```
|
117
122
|
|
118
123
|
emits
|
data/Rakefile
CHANGED
@@ -25,11 +25,9 @@ Jeweler::Tasks.new do |gem|
|
|
25
25
|
end
|
26
26
|
Jeweler::RubygemsDotOrgTasks.new
|
27
27
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
test.pattern = 'test/**/test_*.rb'
|
32
|
-
test.verbose = true
|
28
|
+
desc 'Run test'
|
29
|
+
task :test do
|
30
|
+
sh "bundle exec bacon -a"
|
33
31
|
end
|
34
32
|
|
35
33
|
task :default => :test
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
0.1.0
|
@@ -0,0 +1 @@
|
|
1
|
+
run Rack::Directory.new(".")
|
data/lib/vebdew/parser.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'htmlentities'
|
2
|
+
|
1
3
|
module Vebdew
|
2
4
|
class Parser
|
3
5
|
attr_reader :header, :body, :footer
|
@@ -15,36 +17,71 @@ module Vebdew
|
|
15
17
|
end
|
16
18
|
|
17
19
|
protected
|
20
|
+
CMD = /^:(\w+) (.*)$/
|
21
|
+
SLIDE = /^\!SLIDE$/
|
22
|
+
ENDSLIDE = /^\!ENDSLIDE$/
|
23
|
+
STACK = /^\!STACK$/
|
24
|
+
ENDSTACK = /^\!ENDSTACK$/
|
25
|
+
SELECTOR = /^\{:([^\}]+)\}$/
|
26
|
+
CURLY_BAR = /^~{2,}$/
|
27
|
+
GRAVE_BAR = /^`{2,}$/
|
28
|
+
SINGLE_BAR = /^-{2,}$/
|
29
|
+
DOUBLE_BAR = /^={2,}$/
|
30
|
+
SHARP = /^(#+) (.+)$/
|
31
|
+
UL = /^\* (.+)$/
|
32
|
+
|
18
33
|
def parse
|
19
34
|
for raw_line in @lines
|
20
35
|
line = raw_line.lstrip
|
21
36
|
|
22
37
|
# special case for no enders
|
23
|
-
close_flag :ul if @flag[:ul] and !line.match(
|
38
|
+
close_flag :ul if @flag[:ul] and !line.match(UL)
|
39
|
+
|
40
|
+
# special case for blocks
|
41
|
+
block_flag = false
|
42
|
+
[[:sample, CURLY_BAR], [:code, GRAVE_BAR]].each do |rule, mth|
|
43
|
+
if @flag[rule] and !line.match(mth)
|
44
|
+
@buffer << raw_line
|
45
|
+
block_flag = true
|
46
|
+
break
|
47
|
+
end
|
48
|
+
end
|
49
|
+
next if block_flag
|
24
50
|
|
25
51
|
case line
|
26
|
-
when
|
52
|
+
when CMD
|
27
53
|
command $1, $2
|
28
|
-
when
|
54
|
+
when SLIDE
|
29
55
|
close_buffer
|
30
56
|
close_flag :slide
|
31
57
|
start_flag :slide
|
32
|
-
when
|
58
|
+
when ENDSLIDE
|
33
59
|
close_buffer
|
34
60
|
close_flag :slide
|
35
|
-
when
|
61
|
+
when STACK
|
36
62
|
close_buffer
|
37
63
|
close_flag :slide
|
38
64
|
close_flag :stack
|
39
65
|
start_flag :stack
|
40
|
-
when
|
66
|
+
when ENDSTACK
|
41
67
|
close_buffer
|
42
68
|
close_flag :slide
|
43
69
|
close_flag :stack
|
44
|
-
when
|
70
|
+
when SELECTOR
|
71
|
+
close_buffer
|
45
72
|
selector $1
|
46
|
-
when
|
73
|
+
when CURLY_BAR
|
74
|
+
if @flag[:sample]
|
75
|
+
@body << @buffer.join
|
76
|
+
@buffer.clear
|
77
|
+
close_flag :sample
|
78
|
+
else
|
79
|
+
close_buffer
|
80
|
+
start_flag :sample
|
81
|
+
end
|
82
|
+
when GRAVE_BAR
|
47
83
|
if @flag[:code]
|
84
|
+
format_indent
|
48
85
|
@body << @buffer.join
|
49
86
|
@buffer.clear
|
50
87
|
close_flag :code
|
@@ -52,24 +89,24 @@ module Vebdew
|
|
52
89
|
close_buffer
|
53
90
|
start_flag :code
|
54
91
|
end
|
55
|
-
when
|
92
|
+
when SHARP
|
56
93
|
level = $1.size
|
57
|
-
@body << "<h#{level}#{append}>#{$2}</h#{level}>"
|
58
|
-
when
|
94
|
+
@body << "<h#{level}#{append}>#{format_content $2}</h#{level}>"
|
95
|
+
when SINGLE_BAR
|
59
96
|
tagged = @buffer.pop
|
60
97
|
close_buffer
|
61
98
|
if tagged and !tagged.empty?
|
62
|
-
@body << "<h2#{append}>#{tagged.strip}</h2>"
|
99
|
+
@body << "<h2#{append}>#{format_content tagged.strip}</h2>"
|
63
100
|
else
|
64
101
|
@body << "<hr#{append}>"
|
65
102
|
end
|
66
|
-
when
|
103
|
+
when DOUBLE_BAR
|
67
104
|
tagged = @buffer.pop
|
68
105
|
close_buffer
|
69
106
|
if tagged and !tagged.empty?
|
70
|
-
@body << "<h1#{append}>#{tagged.strip}</h1>"
|
107
|
+
@body << "<h1#{append}>#{format_content tagged.strip}</h1>"
|
71
108
|
end
|
72
|
-
when
|
109
|
+
when UL
|
73
110
|
start_flag :ul unless @flag[:ul]
|
74
111
|
@body << "<li#{append}>#{format_content($1)}</li>"
|
75
112
|
else
|
@@ -79,6 +116,7 @@ module Vebdew
|
|
79
116
|
close_buffer
|
80
117
|
close_flag :slide
|
81
118
|
close_flag :stack
|
119
|
+
close_flag :ul
|
82
120
|
end
|
83
121
|
|
84
122
|
def command type, body
|
@@ -111,21 +149,23 @@ module Vebdew
|
|
111
149
|
@buffer.clear
|
112
150
|
end
|
113
151
|
|
114
|
-
START_STR = { :slide => "<section
|
115
|
-
:stack => "<section
|
116
|
-
:
|
117
|
-
:
|
152
|
+
START_STR = { :slide => "<section$>",
|
153
|
+
:stack => "<section$>",
|
154
|
+
:sample => '<script type="text/x-sample"$>',
|
155
|
+
:code => '<pre$><code><!--',
|
156
|
+
:ul => "<ul$>" }
|
118
157
|
|
119
158
|
def start_flag flag
|
120
|
-
str = START_STR[flag]
|
121
|
-
str[
|
159
|
+
str = START_STR[flag].dup
|
160
|
+
str['$'] = append
|
122
161
|
@body << str
|
123
162
|
@flag[flag] = true
|
124
163
|
end
|
125
164
|
|
126
165
|
CLOSE_STR = { :slide => "</section>",
|
127
166
|
:stack => "</section>",
|
128
|
-
:
|
167
|
+
:sample => "</script>",
|
168
|
+
:code => '--></code></pre>',
|
129
169
|
:ul => "</ul>" }
|
130
170
|
|
131
171
|
def close_flag flag
|
@@ -133,16 +173,20 @@ module Vebdew
|
|
133
173
|
@flag[flag] = false
|
134
174
|
end
|
135
175
|
|
176
|
+
SEL_CLASS = /\.([^\.\[#]+)/
|
177
|
+
SEL_ID = /#([^\.\[#]+)/
|
178
|
+
SEL_ATTR = /\[([^\.\]=#]+)=([^\.\]]+)\]/
|
179
|
+
|
136
180
|
def selector str
|
137
|
-
klass = str.scan(
|
138
|
-
id = str.scan(
|
139
|
-
attrs = str.scan(
|
181
|
+
klass = str.scan(SEL_CLASS).flatten
|
182
|
+
id = str.scan(SEL_ID).flatten
|
183
|
+
attrs = str.scan(SEL_ATTR)
|
140
184
|
|
141
185
|
@attrs = ""
|
142
|
-
@attrs +=
|
143
|
-
@attrs +=
|
186
|
+
@attrs += %Q{ class="#{klass.join(' ')}"} unless klass.empty?
|
187
|
+
@attrs += %Q{ id="#{id.join(' ')}"} unless id.empty?
|
144
188
|
attrs.each do |a|
|
145
|
-
@attrs +=
|
189
|
+
@attrs += %Q{ #{a[0]}="#{a[1]}"}
|
146
190
|
end
|
147
191
|
end
|
148
192
|
|
@@ -152,22 +196,50 @@ module Vebdew
|
|
152
196
|
str
|
153
197
|
end
|
154
198
|
|
199
|
+
ESCAPER = HTMLEntities.new
|
200
|
+
|
155
201
|
def escape_html str
|
156
|
-
|
202
|
+
ESCAPER.encode str
|
203
|
+
end
|
204
|
+
|
205
|
+
def format_indent
|
206
|
+
indent = @buffer.map{ |l| l =~ /[^\s]/ }.reject{ |l| l == 0 }.min
|
207
|
+
@buffer.map! { |l| escape_html(l.gsub(/^\s{#{indent}}/, '')) }
|
208
|
+
@buffer[0] = "-->" + @buffer[0]
|
209
|
+
@buffer[-1] += "<!--"
|
157
210
|
end
|
158
211
|
|
159
212
|
def format_buffer
|
160
213
|
@buffer.map! do |buf|
|
161
|
-
"<p#{append}>#{format_content(buf)}</p>"
|
214
|
+
"<p#{append}>#{format_content(buf)}</p>" unless buf.empty?
|
162
215
|
end
|
163
216
|
end
|
164
217
|
|
218
|
+
INL_SELECTOR = /\{:([^\}]+)\}/
|
219
|
+
INL_CODE = /`(([^\\`]|\\.)*)`/
|
220
|
+
INL_IMG_ALT = /\!\[([^\]]+)\]\(([^\)]+)\)/
|
221
|
+
INL_IMG = /\!\[([^\]]+)\]/
|
222
|
+
INL_A = /\[([^\]]+)\]\(([^\)]+)\)/
|
223
|
+
|
165
224
|
def format_content str
|
166
225
|
str.strip!
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
226
|
+
loop do
|
227
|
+
case str
|
228
|
+
when INL_SELECTOR
|
229
|
+
selector $1
|
230
|
+
str.sub!(INL_SELECTOR, "")
|
231
|
+
when INL_CODE
|
232
|
+
str.sub!(INL_CODE) {%Q{<code#{append}>#{escape_html($1)}</code>}}
|
233
|
+
when INL_IMG_ALT
|
234
|
+
str.sub!(INL_IMG_ALT) {%Q{<img src="#{$1}" alt="#{$2}"#{append}>}}
|
235
|
+
when INL_IMG
|
236
|
+
str.sub!(INL_IMG) {%Q{<img src="#{$1}"#{append}>}}
|
237
|
+
when INL_A
|
238
|
+
str.sub!(INL_A) {%Q{<a href="#{$1}"#{append}>#{$2}</a>}}
|
239
|
+
else
|
240
|
+
break
|
241
|
+
end
|
242
|
+
end
|
171
243
|
str
|
172
244
|
end
|
173
245
|
end
|
data/test/test_parser.rb
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
require 'vebdew'
|
2
|
+
require 'bacon'
|
3
|
+
|
4
|
+
describe 'Parser' do
|
5
|
+
Q_AND_A = [[["!SLIDE\n", "a\n", "!ENDSLIDE\n"],
|
6
|
+
["<section>","<p>a</p>","</section>"]],
|
7
|
+
[["!STACK\n", "!SLIDE\n", "!ENDSTACK\n"],
|
8
|
+
["<section>", "<section>", "</section>", "</section>"]],
|
9
|
+
[["~~~", " <tag>AS-IS</tag>", "~~~"],
|
10
|
+
["<script type=\"text/x-sample\">", " <tag>AS-IS</tag>", "</script>"]],
|
11
|
+
[["```\n", " if(a)\n", "# unindented comment\n", " b\n", " <tag>\n", " end\n", "```\n"],
|
12
|
+
["<pre><code><!--", "-->if(a)\n# unindented comment\n b\n <tag>\nend\n<!--", "--></code></pre>"]],
|
13
|
+
[["---"],
|
14
|
+
["<hr>"]],
|
15
|
+
[["abc", "---"],
|
16
|
+
["<h2>abc</h2>"]],
|
17
|
+
[["abc", "==="],
|
18
|
+
["<h1>abc</h1>"]],
|
19
|
+
[["### qqq"],
|
20
|
+
["<h3>qqq</h3>"]],
|
21
|
+
[["* qqq", "* www"],
|
22
|
+
["<ul>", "<li>qqq</li>", "<li>www</li>", "</ul>"]],
|
23
|
+
[["![a.jpg](haha)"],
|
24
|
+
['<p><img src="a.jpg" alt="haha"></p>']],
|
25
|
+
[["![b.jpg]"],
|
26
|
+
['<p><img src="b.jpg"></p>']],
|
27
|
+
[["[google.com](you)"],
|
28
|
+
['<p><a href="google.com">you</a></p>']],
|
29
|
+
|
30
|
+
# attributes
|
31
|
+
[["{:.pre}`aloha`"],
|
32
|
+
['<p><code class="pre">aloha</code></p>']],
|
33
|
+
[["{:#def.abc[data=you]}", "papa"],
|
34
|
+
['<p class="abc" id="def" data="you">papa</p>']],
|
35
|
+
[["{:#id.test[data=you]}", "~~~", "lalala", "~~~"],
|
36
|
+
['<script type="text/x-sample" class="test" id="id" data="you">',
|
37
|
+
'lalala','</script>']],
|
38
|
+
[["{:#id.test[data=you]}", "abc", "==="],
|
39
|
+
['<h1 class="test" id="id" data="you">abc</h1>']],
|
40
|
+
[["{:#id.test[data=you]}", "abc", "---"],
|
41
|
+
['<h2 class="test" id="id" data="you">abc</h2>']],
|
42
|
+
[["{:.demo}", "lala"],
|
43
|
+
['<p class="demo">lala</p>']],
|
44
|
+
[["{:.class#id}","!SLIDE", "a\n", "!ENDSLIDE\n"],
|
45
|
+
["<section class=\"class\" id=\"id\">","<p>a</p>","</section>"]],
|
46
|
+
[["", "{:.def}", "abc"],
|
47
|
+
[nil, '<p class="def">abc</p>']],
|
48
|
+
[["", "{:.sld}", "!SLIDE"],
|
49
|
+
[nil, '<section class="sld">', '</section>']],
|
50
|
+
[["abc", "{:.la}", "oop"],
|
51
|
+
["<p>abc</p>", '<p class="la">oop</p>']],
|
52
|
+
[["```", '# cmt', "```"],
|
53
|
+
["<pre><code><!--", '--># cmt<!--', "--></code></pre>"]],
|
54
|
+
|
55
|
+
# checks whether buffer clears
|
56
|
+
[[
|
57
|
+
'!SLIDE',
|
58
|
+
'{:.demo}',
|
59
|
+
'~~~',
|
60
|
+
' should_have_demo_class',
|
61
|
+
'~~~',
|
62
|
+
'!SLIDE',
|
63
|
+
'~~~',
|
64
|
+
' should_not_have_demo_class',
|
65
|
+
'~~~'
|
66
|
+
],
|
67
|
+
[
|
68
|
+
'<section>',
|
69
|
+
'<script type="text/x-sample" class="demo">',
|
70
|
+
' should_have_demo_class',
|
71
|
+
'</script>',
|
72
|
+
'</section>',
|
73
|
+
'<section>',
|
74
|
+
'<script type="text/x-sample">',
|
75
|
+
' should_not_have_demo_class',
|
76
|
+
'</script>',
|
77
|
+
'</section>'
|
78
|
+
]]
|
79
|
+
]
|
80
|
+
|
81
|
+
for q, a in Q_AND_A
|
82
|
+
it "should parse #{q}" do
|
83
|
+
parser = Vebdew::Parser.new(q)
|
84
|
+
parser.body.should == a
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
data/vebdew.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "vebdew"
|
8
|
-
s.version = "0.0
|
8
|
+
s.version = "0.1.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Andrew Liu"]
|
12
|
-
s.date = "2012-03-
|
12
|
+
s.date = "2012-03-14"
|
13
13
|
s.description = "Generate HTML5 slides"
|
14
14
|
s.email = "andrewliu33@gmail.com"
|
15
15
|
s.executables = ["vebdew"]
|
@@ -26,6 +26,7 @@ Gem::Specification.new do |s|
|
|
26
26
|
"Rakefile",
|
27
27
|
"VERSION",
|
28
28
|
"bin/vebdew",
|
29
|
+
"lib/template/config.ru",
|
29
30
|
"lib/template/css/images/ui-bg_flat_0_aaaaaa_40x100.png",
|
30
31
|
"lib/template/css/images/ui-bg_glass_95_fef1ec_1x400.png",
|
31
32
|
"lib/template/css/images/ui-bg_gloss-wave_16_121212_500x100.png",
|
@@ -60,8 +61,7 @@ Gem::Specification.new do |s|
|
|
60
61
|
"lib/vebdew/formatter.rb",
|
61
62
|
"lib/vebdew/parser.rb",
|
62
63
|
"lib/vebdew/runner.rb",
|
63
|
-
"test/
|
64
|
-
"test/test_vebdew.rb",
|
64
|
+
"test/test_parser.rb",
|
65
65
|
"vebdew.gemspec"
|
66
66
|
]
|
67
67
|
s.homepage = "http://github.com/eggegg/vebdew"
|
@@ -75,20 +75,23 @@ Gem::Specification.new do |s|
|
|
75
75
|
|
76
76
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
77
77
|
s.add_runtime_dependency(%q<erubis>, [">= 0"])
|
78
|
-
s.
|
78
|
+
s.add_runtime_dependency(%q<htmlentities>, [">= 0"])
|
79
|
+
s.add_development_dependency(%q<bacon>, ["~> 1.1.0"])
|
79
80
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
80
81
|
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
81
82
|
s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
|
82
83
|
else
|
83
84
|
s.add_dependency(%q<erubis>, [">= 0"])
|
84
|
-
s.add_dependency(%q<
|
85
|
+
s.add_dependency(%q<htmlentities>, [">= 0"])
|
86
|
+
s.add_dependency(%q<bacon>, ["~> 1.1.0"])
|
85
87
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
86
88
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
87
89
|
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
88
90
|
end
|
89
91
|
else
|
90
92
|
s.add_dependency(%q<erubis>, [">= 0"])
|
91
|
-
s.add_dependency(%q<
|
93
|
+
s.add_dependency(%q<htmlentities>, [">= 0"])
|
94
|
+
s.add_dependency(%q<bacon>, ["~> 1.1.0"])
|
92
95
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
93
96
|
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
94
97
|
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vebdew
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-03-
|
12
|
+
date: 2012-03-14 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: erubis
|
16
|
-
requirement: &
|
16
|
+
requirement: &2158521880 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,21 +21,32 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2158521880
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
|
-
name:
|
27
|
-
requirement: &
|
26
|
+
name: htmlentities
|
27
|
+
requirement: &2158515640 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *2158515640
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: bacon
|
38
|
+
requirement: &2158514720 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 1.1.0
|
33
44
|
type: :development
|
34
45
|
prerelease: false
|
35
|
-
version_requirements: *
|
46
|
+
version_requirements: *2158514720
|
36
47
|
- !ruby/object:Gem::Dependency
|
37
48
|
name: rdoc
|
38
|
-
requirement: &
|
49
|
+
requirement: &2158512780 !ruby/object:Gem::Requirement
|
39
50
|
none: false
|
40
51
|
requirements:
|
41
52
|
- - ~>
|
@@ -43,10 +54,10 @@ dependencies:
|
|
43
54
|
version: '3.12'
|
44
55
|
type: :development
|
45
56
|
prerelease: false
|
46
|
-
version_requirements: *
|
57
|
+
version_requirements: *2158512780
|
47
58
|
- !ruby/object:Gem::Dependency
|
48
59
|
name: bundler
|
49
|
-
requirement: &
|
60
|
+
requirement: &2158511560 !ruby/object:Gem::Requirement
|
50
61
|
none: false
|
51
62
|
requirements:
|
52
63
|
- - ~>
|
@@ -54,10 +65,10 @@ dependencies:
|
|
54
65
|
version: 1.0.0
|
55
66
|
type: :development
|
56
67
|
prerelease: false
|
57
|
-
version_requirements: *
|
68
|
+
version_requirements: *2158511560
|
58
69
|
- !ruby/object:Gem::Dependency
|
59
70
|
name: jeweler
|
60
|
-
requirement: &
|
71
|
+
requirement: &2158509380 !ruby/object:Gem::Requirement
|
61
72
|
none: false
|
62
73
|
requirements:
|
63
74
|
- - ~>
|
@@ -65,7 +76,7 @@ dependencies:
|
|
65
76
|
version: 1.8.3
|
66
77
|
type: :development
|
67
78
|
prerelease: false
|
68
|
-
version_requirements: *
|
79
|
+
version_requirements: *2158509380
|
69
80
|
description: Generate HTML5 slides
|
70
81
|
email: andrewliu33@gmail.com
|
71
82
|
executables:
|
@@ -83,6 +94,7 @@ files:
|
|
83
94
|
- Rakefile
|
84
95
|
- VERSION
|
85
96
|
- bin/vebdew
|
97
|
+
- lib/template/config.ru
|
86
98
|
- lib/template/css/images/ui-bg_flat_0_aaaaaa_40x100.png
|
87
99
|
- lib/template/css/images/ui-bg_glass_95_fef1ec_1x400.png
|
88
100
|
- lib/template/css/images/ui-bg_gloss-wave_16_121212_500x100.png
|
@@ -117,8 +129,7 @@ files:
|
|
117
129
|
- lib/vebdew/formatter.rb
|
118
130
|
- lib/vebdew/parser.rb
|
119
131
|
- lib/vebdew/runner.rb
|
120
|
-
- test/
|
121
|
-
- test/test_vebdew.rb
|
132
|
+
- test/test_parser.rb
|
122
133
|
- vebdew.gemspec
|
123
134
|
homepage: http://github.com/eggegg/vebdew
|
124
135
|
licenses:
|
@@ -135,7 +146,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
135
146
|
version: '0'
|
136
147
|
segments:
|
137
148
|
- 0
|
138
|
-
hash:
|
149
|
+
hash: -4101904603546961614
|
139
150
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
140
151
|
none: false
|
141
152
|
requirements:
|
data/test/helper.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'bundler'
|
3
|
-
begin
|
4
|
-
Bundler.setup(:default, :development)
|
5
|
-
rescue Bundler::BundlerError => e
|
6
|
-
$stderr.puts e.message
|
7
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
-
exit e.status_code
|
9
|
-
end
|
10
|
-
require 'test/unit'
|
11
|
-
require 'shoulda'
|
12
|
-
|
13
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
14
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
15
|
-
require 'vebdew'
|
16
|
-
|
17
|
-
class Test::Unit::TestCase
|
18
|
-
end
|