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 CHANGED
@@ -1,9 +1,10 @@
1
1
  source "http://rubygems.org"
2
2
 
3
3
  gem "erubis"
4
+ gem "htmlentities"
4
5
 
5
6
  group :development do
6
- gem "shoulda", ">= 0"
7
+ gem "bacon", "~> 1.1.0"
7
8
  gem "rdoc", "~> 3.12"
8
9
  gem "bundler", "~> 1.0.0"
9
10
  gem "jeweler", "~> 1.8.3"
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 \# Vew file
24
- - template.erb
25
- - /css \# CSS styles
26
- - /js \# Javascript files
27
- - *.html \# Compiled html slides
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 \# Create a new slide project
31
- generate \# Generate slides for current directory (shortcut: g)
32
- compile \# Compiles single file into HTML5 slides (shortcut: c)
33
- \# [VEW FILE] [ERB TEMPLATE] [HTML SLIDE]
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 `type`{:.attr[title="checkbox|radio|submit"]}
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
- require 'rake/testtask'
29
- Rake::TestTask.new(:test) do |test|
30
- test.libs << 'lib' << 'test'
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.3
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 /^:(\w+) (.*)$/
52
+ when CMD
27
53
  command $1, $2
28
- when /^\!SLIDE/
54
+ when SLIDE
29
55
  close_buffer
30
56
  close_flag :slide
31
57
  start_flag :slide
32
- when /^\!ENDSLIDE/
58
+ when ENDSLIDE
33
59
  close_buffer
34
60
  close_flag :slide
35
- when /^\!STACK/
61
+ when STACK
36
62
  close_buffer
37
63
  close_flag :slide
38
64
  close_flag :stack
39
65
  start_flag :stack
40
- when /^\!ENDSTACK/
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
- :code => "<script type='text/x-sample'>",
117
- :ul => "<ul>" }
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[-1] = "#{append}>" unless @attrs.empty?
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
- :code => "</script>",
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(/\.([^\.\[#]+)/).flatten
138
- id = str.scan(/#([^\.\[#])+/).flatten
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 += " class='#{klass.join(' ')}'" unless klass.empty?
143
- @attrs += " id='#{id.join(' ')}'" unless id.empty?
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 += " #{a[0]}='#{a[1]}'"
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
- str.gsub(/>/, "&gt;").gsub(/</, "&lt;")
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
- str.gsub!(/`(([^\\`]|\\.)*)`/) {%Q{<code>#{escape_html($1)}</code>}}
168
- str.gsub! /\!\[([^\]]+)\]\(([^\)]+)\)/, %q{<img src='\1' alt='\2'>}
169
- str.gsub! /\!\[([^\]]+)\]/, %q{<img src='\1'>}
170
- str.gsub! /\[([^\]]+)\]\(([^\)]+)\)/, %q{<a href='\1'>\2</a>}
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
@@ -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 &lt;tag&gt;\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.3"
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-10"
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/helper.rb",
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.add_development_dependency(%q<shoulda>, [">= 0"])
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<shoulda>, [">= 0"])
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<shoulda>, [">= 0"])
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.3
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-10 00:00:00.000000000Z
12
+ date: 2012-03-14 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: erubis
16
- requirement: &2154113200 !ruby/object:Gem::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: *2154113200
24
+ version_requirements: *2158521880
25
25
  - !ruby/object:Gem::Dependency
26
- name: shoulda
27
- requirement: &2154112480 !ruby/object:Gem::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: *2154112480
46
+ version_requirements: *2158514720
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: rdoc
38
- requirement: &2154111680 !ruby/object:Gem::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: *2154111680
57
+ version_requirements: *2158512780
47
58
  - !ruby/object:Gem::Dependency
48
59
  name: bundler
49
- requirement: &2154110680 !ruby/object:Gem::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: *2154110680
68
+ version_requirements: *2158511560
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: jeweler
60
- requirement: &2154109620 !ruby/object:Gem::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: *2154109620
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/helper.rb
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: 2574970994430618005
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
data/test/test_vebdew.rb DELETED
@@ -1,7 +0,0 @@
1
- require 'helper'
2
-
3
- class TestVebdew < Test::Unit::TestCase
4
- should "probably rename this file and start testing for real" do
5
- flunk "hey buddy, you should probably rename this file and start testing for real"
6
- end
7
- end