magic_reveal 2.6.1.2 → 2.6.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,12 +5,12 @@ describe MagicReveal::IndexLibber do
5
5
  subject { described_class.new html_text }
6
6
  let(:html_text) { nil }
7
7
 
8
- describe ".set_meta" do
9
- shared_examples "it is passed a name and content" do
8
+ describe '.set_meta' do
9
+ shared_examples 'it is passed a name and content' do
10
10
  let(:name) { "name#{rand 99}" }
11
11
  let(:content) { "any old content ###{rand 99}" }
12
12
 
13
- it "creates the node" do
13
+ it 'creates the node' do
14
14
  subject.set_meta name, content
15
15
 
16
16
  node = subject.html.at_css("meta[@name=#{name}]")
@@ -21,70 +21,70 @@ describe MagicReveal::IndexLibber do
21
21
  end
22
22
  end
23
23
 
24
- context "with a html > meta node" do
24
+ context 'with a html > meta node' do
25
25
  let(:html_text) { "<!DOCTYPE html><meta name=\"#{name}\" content=\"#{content}\"><p>text" }
26
26
 
27
- it_behaves_like "it is passed a name and content"
27
+ it_behaves_like 'it is passed a name and content'
28
28
  end
29
29
 
30
- context "with a html > head > meta node" do
30
+ context 'with a html > head > meta node' do
31
31
  let(:html_text) { "<!DOCTYPE html><head><meta name=\"#{name}\" content=\"#{content}\"></head><p>text" }
32
32
 
33
- it_behaves_like "it is passed a name and content"
33
+ it_behaves_like 'it is passed a name and content'
34
34
  end
35
35
 
36
- context "without a meta node" do
36
+ context 'without a meta node' do
37
37
  let(:html_text) { '<!DOCTYPE html><p>text' }
38
38
 
39
- it_behaves_like "it is passed a name and content"
39
+ it_behaves_like 'it is passed a name and content'
40
40
  end
41
41
  end
42
42
 
43
- describe ".author=" do
44
- it "calls set_meta" do
43
+ describe '.author=' do
44
+ it 'calls set_meta' do
45
45
  author = Faker::Name.name
46
46
  subject.should_receive(:set_meta).with('author', author)
47
47
  subject.author = author
48
48
  end
49
49
  end
50
50
 
51
- describe ".description=" do
52
- it "calls set_meta" do
51
+ describe '.description=' do
52
+ it 'calls set_meta' do
53
53
  description = Faker::Lorem.paragraph
54
54
  subject.should_receive(:set_meta).with('description', description)
55
55
  subject.description = description
56
56
  end
57
57
  end
58
58
 
59
- describe ".slides=" do
59
+ describe '.slides=' do
60
60
  let(:title) { Faker::Lorem.sentence }
61
61
  let(:paragraph) { Faker::Lorem.paragraph }
62
62
  let(:slides) { "<section><h2>#{title}</h2><p>#{paragraph}</section>" * 2 }
63
63
 
64
- it "inserts the slides" do
64
+ it 'inserts the slides' do
65
65
  subject.slides = slides
66
66
  expect(subject.html.at_css('h2').text).to eq(title)
67
67
  expect(subject.html.at_css('p').text).to eq(paragraph)
68
68
  end
69
69
 
70
- it "sets the title from the first Hx item" do
70
+ it 'sets the title from the first Hx item' do
71
71
  subject.slides = slides
72
72
  expect(subject.html.at_css('title').text).to eq(title)
73
73
  end
74
74
  end
75
75
 
76
- describe ".theme=" do
76
+ describe '.theme=' do
77
77
  let(:theme) { Faker::Name.first_name }
78
78
 
79
- it "sets the theme node" do
79
+ it 'sets the theme node' do
80
80
  subject.theme = theme
81
81
  expect(subject.html.at_css('#theme')[:href]).to match(%r{/#{theme}\.css\Z})
82
82
  end
83
83
 
84
- context "with an empty doc" do
85
- let(:html_text) { "<!DOCTYPE html>text" }
84
+ context 'with an empty doc' do
85
+ let(:html_text) { '<!DOCTYPE html>text' }
86
86
 
87
- it "handles creating a new link#theme node" do
87
+ it 'handles creating a new link#theme node' do
88
88
  subject.theme = theme
89
89
  link = subject.html.at_css('link')
90
90
  expect(link).to_not be_nil
@@ -4,17 +4,17 @@ require 'magic_reveal/project_config'
4
4
  describe MagicReveal::ProjectConfig do
5
5
  subject { described_class.new io }
6
6
  let(:io) { MagicReveal::ProjectConfig::DEFAULT_TEMPLATE }
7
- let(:data_ruby) { { "random" => rand(99) }.to_json }
7
+ let(:data_ruby) { { 'random' => rand(99) }.to_json }
8
8
  let(:data_json) { data_ruby.to_json }
9
9
 
10
- describe "#new" do
11
- it "calls io_or_path.read" do
12
- io.should_receive(:read).with().and_return("{}")
10
+ describe '#new' do
11
+ it 'calls io_or_path.read' do
12
+ io.should_receive(:read).with.and_return('{}')
13
13
  subject
14
14
  end
15
15
 
16
- context "with a string" do
17
- it "converts strings to Pathname" do
16
+ context 'with a string' do
17
+ it 'converts strings to Pathname' do
18
18
  pio = Pathname.new(io)
19
19
  Pathname.should_receive(:new).with(io).and_return(pio)
20
20
  subject
@@ -22,8 +22,8 @@ describe MagicReveal::ProjectConfig do
22
22
  end
23
23
  end
24
24
 
25
- describe ".dependencies" do
26
- it "should look like the example" do
25
+ describe '.dependencies' do
26
+ it 'should look like the example' do
27
27
  example = <<-EOF
28
28
  "dependencies": [
29
29
  { src: "lib/js/classList.js", condition: function() { return !document.body.classList; } },
@@ -32,13 +32,13 @@ describe MagicReveal::ProjectConfig do
32
32
  { src: "plugin/notes/notes.js", async: true, condition: function() { return !!document.body.classList; } }
33
33
  ]
34
34
  EOF
35
- example.gsub!(%r{^\s*}, '').chomp!
36
- subject.dependencies.gsub(%r{^\s*}, '').should eq(example)
35
+ example.gsub!(/^\s*/, '').chomp!
36
+ subject.dependencies.gsub(/^\s*/, '').should eq(example)
37
37
  end
38
38
  end
39
39
 
40
- describe ".to_js" do
41
- it "returns a string" do
40
+ describe '.to_js' do
41
+ it 'returns a string' do
42
42
  expect(subject.to_js).to be_kind_of(String)
43
43
  end
44
44
  end
@@ -5,26 +5,26 @@ describe MagicReveal::RevealJsFetcher do
5
5
  subject { described_class.new version }
6
6
  let(:version) { "#{rand 9}.#{rand 9}.#{rand 9}" }
7
7
 
8
- describe "#new" do
8
+ describe '#new' do
9
9
  its(:version) { should be(version) }
10
10
  end
11
11
 
12
- describe ".zip_url" do
12
+ describe '.zip_url' do
13
13
  its(:zip_url) { should match(/#{Regexp.escape version}\.zip\Z/) }
14
14
  end
15
15
 
16
- describe ".conductor" do
17
- it "uses the zip_url" do
16
+ describe '.conductor' do
17
+ it 'uses the zip_url' do
18
18
  MagicReveal::Conductor.should_receive(:new).with(subject.zip_url)
19
19
  subject.conductor
20
20
  end
21
21
 
22
- it "returns the conductor" do
22
+ it 'returns the conductor' do
23
23
  expect(subject.conductor).to be_kind_of(MagicReveal::Conductor)
24
24
  end
25
25
  end
26
26
 
27
- describe ".save_to" do
27
+ describe '.save_to' do
28
28
  let(:conductor) { double(MagicReveal::Conductor).as_null_object }
29
29
  let(:reveal_dir) { Pathname.new(Dir.tmpdir) + "save_to_test#{rand 99}" }
30
30
  before do
@@ -33,13 +33,13 @@ describe MagicReveal::RevealJsFetcher do
33
33
  subject.save_to reveal_dir
34
34
  end
35
35
 
36
- it "uses conductor to fetch the zipfile" do
36
+ it 'uses conductor to fetch the zipfile' do
37
37
  expect(conductor).to have_received(:fetch).with(anything)
38
38
  end
39
39
 
40
- it "uses conductor to fetch the zipfile" do
41
- expect(conductor).to have_received(:unpack).
42
- with(@zipfile, reveal_dir)
40
+ it 'uses conductor to fetch the zipfile' do
41
+ expect(conductor).to have_received(:unpack)
42
+ .with(@zipfile, reveal_dir)
43
43
  end
44
44
  end
45
45
  end
@@ -3,101 +3,102 @@ require 'magic_reveal/slide_renderer'
3
3
  require 'tmpdir'
4
4
 
5
5
  describe MagicReveal::SlideRenderer do
6
- describe ".header" do
7
- context "when no slides have been shown" do
6
+ describe '.header' do
7
+ context 'when no slides have been shown' do
8
8
  before { subject.has_shown_slides = false }
9
- it "starts with <section>" do
10
- expect(subject.header("text", 1)).to match(/\A<section>/)
9
+ it 'starts with <section>' do
10
+ expect(subject.header('text', 1)).to match(/\A<section>/)
11
11
  end
12
12
  end
13
13
 
14
- context "when slides have been shown" do
14
+ context 'when slides have been shown' do
15
15
  before { subject.has_shown_slides = true }
16
16
 
17
- it "starts with </section><section>" do
18
- expect(subject.header("text", 1)).to match(%r{\A</section>\s*<section>})
17
+ it 'starts with </section><section>' do
18
+ expect(subject.header('text', 1)).to match(%r{\A</section>\s*<section>})
19
19
  end
20
20
  end
21
21
 
22
- it "ends with <h?>text</h?>" do
22
+ it 'ends with <h?>text</h?>' do
23
23
  txt = "text#{rand 99}"
24
24
  lvl = rand(6)
25
25
  expect(subject.header(txt, lvl)).to match(%r{<h#{lvl}>#{txt}</h#{lvl}>\Z})
26
26
  end
27
27
  end
28
28
 
29
- describe ".doc_header" do
30
- it "should generate an HTML comment" do
31
- expect(subject.doc_header).to match %r{\A<!--\s.*\s-->\Z}
29
+ describe '.doc_header' do
30
+ it 'should generate an HTML comment' do
31
+ expect(subject.doc_header)
32
+ .to match(/\A<!--\s.*\s-->\Z/)
32
33
  end
33
34
 
34
- it "should set has_shown_slides to false" do
35
+ it 'should set has_shown_slides to false' do
35
36
  subject.has_shown_slides = true
36
37
  subject.doc_header
37
38
  expect(subject.has_shown_slides).to be_false
38
39
  end
39
40
  end
40
41
 
41
- describe ".doc_footer" do
42
- context "when slides have been shown" do
42
+ describe '.doc_footer' do
43
+ context 'when slides have been shown' do
43
44
  before { subject.has_shown_slides = true }
44
45
 
45
- it "emits a </section>" do
46
+ it 'emits a </section>' do
46
47
  expect(subject.doc_footer).to eq('</section>')
47
48
  end
48
49
  end
49
50
 
50
- context "when no slides have been shown" do
51
+ context 'when no slides have been shown' do
51
52
  before { subject.has_shown_slides = false }
52
53
 
53
- it "emits an empty string" do
54
+ it 'emits an empty string' do
54
55
  expect(subject.doc_footer).to eq('')
55
56
  end
56
57
  end
57
58
  end
58
59
 
59
- describe ".block_code" do
60
+ describe '.block_code' do
60
61
  let(:code) { "code = #{rand 99};" }
61
- context "with language" do
62
+ context 'with language' do
62
63
  let(:language) { "lang#{rand 99}" }
63
64
 
64
- it "has the pre class set to the language" do
65
- expect(subject.block_code(code, language)).
66
- to match(%r{\A\s*<pre class="#{language}">})
65
+ it 'has the pre class set to the language' do
66
+ expect(subject.block_code(code, language))
67
+ .to match(/\A\s*<pre class="#{language}">/)
67
68
  end
68
69
  end
69
70
 
70
- context "without language" do
71
- it "has pre without class" do
72
- expect(subject.block_code(code, nil)).
73
- to match(%r{\A\s*<pre>})
71
+ context 'without language' do
72
+ it 'has pre without class' do
73
+ expect(subject.block_code(code, nil))
74
+ .to match(/\A\s*<pre>/)
74
75
  end
75
76
  end
76
77
 
77
- it "wraps the text in a <code> tag" do
78
+ it 'wraps the text in a <code> tag' do
78
79
  text = "#{rand 99} text #{rand 99}"
79
- expect(subject.block_code(text, nil)).
80
- to match(%r{<code>#{Regexp.quote text}</code>})
80
+ expect(subject.block_code(text, nil))
81
+ .to match(%r{<code>#{Regexp.quote text}</code>})
81
82
  end
82
83
 
83
- it "escapes the code text" do
84
+ it 'escapes the code text' do
84
85
  CGI.should_receive(:escapeHTML).and_return('text')
85
86
  subject.block_code('whatever', nil)
86
87
  end
87
88
 
88
- it "ends with </pre>" do
89
- expect(subject.block_code('whatever', nil)).
90
- to match(%r{</pre>\s*\Z})
89
+ it 'ends with </pre>' do
90
+ expect(subject.block_code('whatever', nil))
91
+ .to match(%r{</pre>\s*\Z})
91
92
  end
92
93
 
93
- it "has no space between <pre> and <code>" do
94
- expect(subject.block_code('whatever', nil)).
95
- to match(%r{<pre[^>]*><code>})
94
+ it 'has no space between <pre> and <code>' do
95
+ expect(subject.block_code('whatever', nil))
96
+ .to match(/<pre[^>]*><code>/)
96
97
  end
97
98
 
98
- it "has no space between </pre> and </code>" do
99
- expect(subject.block_code('whatever', nil)).
100
- to match(%r{</code></pre>})
99
+ it 'has no space between </pre> and </code>' do
100
+ expect(subject.block_code('whatever', nil))
101
+ .to match(%r{</code></pre>})
101
102
  end
102
103
 
103
104
  it "doesn't add whitespace after code and before </code>" do
@@ -105,12 +106,17 @@ describe MagicReveal::SlideRenderer do
105
106
  end
106
107
  end
107
108
 
108
- describe "prepare_code" do
109
- context "with @@source = filename" do
110
- around { |example| Dir.mktmpdir { |dir| @tmpdir = Pathname.new dir; example.run } }
109
+ describe 'prepare_code' do
110
+ context 'with @@source = filename' do
111
+ around do |example|
112
+ Dir.mktmpdir do |dir|
113
+ @tmpdir = Pathname.new dir
114
+ example.run
115
+ end
116
+ end
111
117
  let(:filename) { @tmpdir + "file#{rand 99}" }
112
118
 
113
- it "loads the contents from filename" do
119
+ it 'loads the contents from filename' do
114
120
  text = "#{rand 99} bottles of beer"
115
121
  filename.open('w') { |f| f.write text }
116
122
 
@@ -118,20 +124,20 @@ describe MagicReveal::SlideRenderer do
118
124
  end
119
125
  end
120
126
 
121
- context "without @@source" do
122
- it "returns the text" do
127
+ context 'without @@source' do
128
+ it 'returns the text' do
123
129
  text = "#{rand 99} luft balloons."
124
130
  expect(subject.prepare_code text).to eq(text)
125
131
  end
126
132
 
127
- it "strips leading whitespace" do
128
- expect(subject.prepare_code " \t\nmouse").
129
- to eq('mouse')
133
+ it 'strips leading whitespace' do
134
+ expect(subject.prepare_code " \t\nmouse")
135
+ .to eq('mouse')
130
136
  end
131
137
 
132
- it "strips trailing whitespace" do
133
- expect(subject.prepare_code "mouse\n\t ").
134
- to eq('mouse')
138
+ it 'strips trailing whitespace' do
139
+ expect(subject.prepare_code "mouse\n\t ")
140
+ .to eq('mouse')
135
141
  end
136
142
  end
137
143
  end
@@ -1,21 +1,23 @@
1
+ require 'simplecov'
2
+ require 'coveralls'
3
+
4
+ if ENV['TRAVIS'] == 'true'
5
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
6
+ Coveralls::SimpleCov::Formatter,
7
+ SimpleCov::Formatter::HTMLFormatter
8
+ ]
9
+ end
10
+
11
+ SimpleCov.command_name 'RSpec'
12
+ SimpleCov.start
13
+
1
14
  $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
15
  require 'pathname'
3
16
  require 'faker'
4
17
 
18
+ I18n.enforce_available_locales = true if I18n.respond_to? :enforce_available_locales
5
19
  EXAMPLE_DATA = Pathname.new(__FILE__).dirname + 'data'
6
20
 
7
- if ENV['TRAVIS'] == 'true'
8
- require 'coveralls'
9
- Coveralls.wear!
10
- else
11
- begin
12
- require 'simplecov'
13
- SimpleCov.start
14
- rescue LoadError
15
- warn 'Unable to load simplecov; skipping coverage report'
16
- end
17
- end
18
-
19
21
  RSpec.configure do |c|
20
22
  c.run_all_when_everything_filtered = true
21
23
  c.treat_symbols_as_metadata_keys_with_true_values = true
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magic_reveal
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.1.2
4
+ version: 2.6.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Höltje
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-06 00:00:00.000000000 Z
11
+ date: 2014-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sinatra
@@ -128,86 +128,58 @@ dependencies:
128
128
  requirements:
129
129
  - - ~>
130
130
  - !ruby/object:Gem::Version
131
- version: '1.8'
131
+ version: '2.4'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - ~>
137
137
  - !ruby/object:Gem::Version
138
- version: '1.8'
138
+ version: '2.4'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: guard-rspec
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - ~>
144
144
  - !ruby/object:Gem::Version
145
- version: '3.0'
145
+ version: '4.2'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - ~>
151
151
  - !ruby/object:Gem::Version
152
- version: '3.0'
152
+ version: '4.2'
153
153
  - !ruby/object:Gem::Dependency
154
- name: rspec
154
+ name: guard-rubocop
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - ~>
158
158
  - !ruby/object:Gem::Version
159
- version: '2.14'
159
+ version: '1.0'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - ~>
165
165
  - !ruby/object:Gem::Version
166
- version: '2.14'
166
+ version: '1.0'
167
167
  - !ruby/object:Gem::Dependency
168
- name: faker
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - '>='
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - '>='
179
- - !ruby/object:Gem::Version
180
- version: '0'
181
- - !ruby/object:Gem::Dependency
182
- name: coveralls
168
+ name: rspec
183
169
  requirement: !ruby/object:Gem::Requirement
184
170
  requirements:
185
171
  - - ~>
186
172
  - !ruby/object:Gem::Version
187
- version: '0.6'
173
+ version: '2.14'
188
174
  type: :development
189
175
  prerelease: false
190
176
  version_requirements: !ruby/object:Gem::Requirement
191
177
  requirements:
192
178
  - - ~>
193
179
  - !ruby/object:Gem::Version
194
- version: '0.6'
195
- - !ruby/object:Gem::Dependency
196
- name: better_errors
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - '>='
200
- - !ruby/object:Gem::Version
201
- version: '0'
202
- type: :development
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - '>='
207
- - !ruby/object:Gem::Version
208
- version: '0'
180
+ version: '2.14'
209
181
  - !ruby/object:Gem::Dependency
210
- name: binding_of_caller
182
+ name: faker
211
183
  requirement: !ruby/object:Gem::Requirement
212
184
  requirements:
213
185
  - - '>='
@@ -221,21 +193,21 @@ dependencies:
221
193
  - !ruby/object:Gem::Version
222
194
  version: '0'
223
195
  - !ruby/object:Gem::Dependency
224
- name: rb-inotify
196
+ name: coveralls
225
197
  requirement: !ruby/object:Gem::Requirement
226
198
  requirements:
227
- - - '>='
199
+ - - ~>
228
200
  - !ruby/object:Gem::Version
229
- version: '0'
201
+ version: '0.7'
230
202
  type: :development
231
203
  prerelease: false
232
204
  version_requirements: !ruby/object:Gem::Requirement
233
205
  requirements:
234
- - - '>='
206
+ - - ~>
235
207
  - !ruby/object:Gem::Version
236
- version: '0'
208
+ version: '0.7'
237
209
  - !ruby/object:Gem::Dependency
238
- name: rb-fsevent
210
+ name: better_errors
239
211
  requirement: !ruby/object:Gem::Requirement
240
212
  requirements:
241
213
  - - '>='
@@ -249,7 +221,7 @@ dependencies:
249
221
  - !ruby/object:Gem::Version
250
222
  version: '0'
251
223
  - !ruby/object:Gem::Dependency
252
- name: rb-fchange
224
+ name: binding_of_caller
253
225
  requirement: !ruby/object:Gem::Requirement
254
226
  requirements:
255
227
  - - '>='
@@ -324,6 +296,7 @@ files:
324
296
  - lib/magic_reveal/version.rb
325
297
  - magic-reveal.gemspec
326
298
  - spec/data/wrapped.zip
299
+ - spec/integration/renderer_spec.rb
327
300
  - spec/magic_reveal/app_spec.rb
328
301
  - spec/magic_reveal/cli/options_spec.rb
329
302
  - spec/magic_reveal/cli_spec.rb
@@ -348,7 +321,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
348
321
  requirements:
349
322
  - - '>='
350
323
  - !ruby/object:Gem::Version
351
- version: 1.9.2
324
+ version: 1.9.3
352
325
  required_rubygems_version: !ruby/object:Gem::Requirement
353
326
  requirements:
354
327
  - - '>='
@@ -362,6 +335,7 @@ specification_version: 4
362
335
  summary: Create presentations using markdown and reveal.js
363
336
  test_files:
364
337
  - spec/data/wrapped.zip
338
+ - spec/integration/renderer_spec.rb
365
339
  - spec/magic_reveal/app_spec.rb
366
340
  - spec/magic_reveal/cli/options_spec.rb
367
341
  - spec/magic_reveal/cli_spec.rb