magic_reveal 2.6.1.2 → 2.6.1.4

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.
@@ -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