vebdew 0.0.3 → 0.1.0
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/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
|
+
[[""],
|
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
|