usmu 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -2
- data/.travis.yml +3 -0
- data/CHANGELOG.md +21 -0
- data/Gemfile +7 -0
- data/Guardfile +7 -7
- data/README.md +5 -1
- data/Rakefile +16 -5
- data/lib/usmu.rb +3 -1
- data/lib/usmu/configuration.rb +25 -13
- data/lib/usmu/deployment.rb +12 -0
- data/lib/usmu/deployment/directory_diff.rb +64 -0
- data/lib/usmu/deployment/remote_file_interface.rb +25 -0
- data/lib/usmu/plugin.rb +5 -1
- data/lib/usmu/template/layout.rb +24 -17
- data/lib/usmu/version.rb +1 -1
- data/{test/spec → spec}/acceptance/full_site_build.feature +2 -2
- data/{test/spec → spec}/acceptance/steps/full_site_build_steps.rb +0 -0
- data/spec/configuration_spec.rb +257 -0
- data/spec/deployment/directory_diff_spec.rb +126 -0
- data/{test/spec → spec}/mock/usmu/mock_plugin.rb +0 -0
- data/spec/mock/usmu/mock_remote_files.rb +19 -0
- data/{test/spec → spec}/plugin/core_spec.rb +0 -0
- data/{test/spec → spec}/plugin_spec.rb +0 -0
- data/{test/spec → spec}/site_generator_spec.rb +1 -1
- data/{test/spec → spec}/spec_helper.rb +18 -4
- data/{test/spec → spec}/support/shared_layout.rb +0 -0
- data/{test/spec → spec}/template/layout_spec.rb +1 -1
- data/{test/spec → spec}/template/page_spec.rb +0 -0
- data/{test/spec → spec}/template/static_file_spec.rb +2 -2
- data/{test/spec → spec}/ui/console_spec.rb +4 -4
- data/{test/expected-site → test-site/content}/.dotfiletest.txt +0 -0
- data/{test/site → test-site}/content/css/_partial.scss +0 -0
- data/{test/site → test-site}/content/css/app.scss +0 -0
- data/{test/site → test-site}/content/default.md +0 -0
- data/{test/site → test-site}/content/embedded.md +0 -0
- data/{test/site → test-site}/content/embedded.meta.yml +0 -0
- data/{test/site → test-site}/content/index.md +0 -0
- data/{test/site → test-site}/content/index.meta.yml +0 -0
- data/{test/site → test-site}/content/posts/test-post.md +0 -0
- data/{test/expected-site → test-site/content}/robots.txt +0 -0
- data/{test/site/content → test-site/expected-site}/.dotfiletest.txt +0 -0
- data/{test → test-site}/expected-site/css/app.css +0 -0
- data/{test → test-site}/expected-site/default.html +0 -0
- data/{test → test-site}/expected-site/embedded.html +0 -0
- data/{test → test-site}/expected-site/index.html +0 -0
- data/{test → test-site}/expected-site/posts/test-post.html +0 -0
- data/{test/site/content → test-site/expected-site}/robots.txt +0 -0
- data/{test/site → test-site}/includes/footer.meta.yml +0 -0
- data/{test/site → test-site}/includes/footer.slim +0 -0
- data/{test/site → test-site}/layouts/embedded.meta.yml +0 -0
- data/{test/site → test-site}/layouts/embedded.slim +0 -0
- data/{test/site → test-site}/layouts/html.slim +0 -0
- data/{test/site → test-site}/usmu.yml +0 -0
- data/usmu-jruby.gemspec +1 -0
- data/usmu.gemspec +1 -2
- metadata +73 -105
- data/.cane +0 -4
- data/.simplecov +0 -4
- data/test/spec/configuration_spec.rb +0 -176
File without changes
|
@@ -20,7 +20,7 @@ RSpec.describe Usmu::Template::Layout do
|
|
20
20
|
it 'should not allow circular references with #find_layout' do
|
21
21
|
# This will also get tested during the acceptance tests, though we test here explicitly to help aid narrow where
|
22
22
|
# the bug actually is.
|
23
|
-
configuration = Usmu::Configuration.from_file('test
|
23
|
+
configuration = Usmu::Configuration.from_file('test-site/usmu.yml')
|
24
24
|
layout = Usmu::Template::Layout.new(configuration, 'html.slim')
|
25
25
|
end
|
26
26
|
|
File without changes
|
@@ -4,12 +4,12 @@ require 'usmu/template/static_file'
|
|
4
4
|
RSpec.describe Usmu::Template::StaticFile do
|
5
5
|
it_behaves_like 'a renderable file'
|
6
6
|
|
7
|
-
let(:configuration) { Usmu::Configuration.from_file('test
|
7
|
+
let(:configuration) { Usmu::Configuration.from_file('test-site/usmu.yml') }
|
8
8
|
|
9
9
|
it 'uses the \'source\' folder' do
|
10
10
|
file = Usmu::Template::StaticFile.new(configuration, 'robots.txt')
|
11
11
|
rendered = file.render
|
12
|
-
expect(rendered).to eq(File.read('test/expected-site/robots.txt'))
|
12
|
+
expect(rendered).to eq(File.read('test-site/expected-site/robots.txt'))
|
13
13
|
end
|
14
14
|
|
15
15
|
it 'has an input path' do
|
@@ -5,21 +5,21 @@ Usmu.disable_stdout_logging
|
|
5
5
|
RSpec.describe Usmu::Ui::Console do
|
6
6
|
it 'supports --quiet' do
|
7
7
|
expect(Usmu).to receive(:quiet_logging)
|
8
|
-
Usmu::Ui::Console.new(%w{--quiet --config test
|
8
|
+
Usmu::Ui::Console.new(%w{--quiet --config test-site/usmu.yml})
|
9
9
|
end
|
10
10
|
|
11
11
|
it 'supports --log' do
|
12
12
|
expect(Usmu).to receive(:add_file_logger).with('test.log')
|
13
|
-
Usmu::Ui::Console.new(%w{--log test.log --config test
|
13
|
+
Usmu::Ui::Console.new(%w{--log test.log --config test-site/usmu.yml})
|
14
14
|
end
|
15
15
|
|
16
16
|
it 'supports --verbose' do
|
17
17
|
expect(Usmu).to receive(:verbose_logging)
|
18
|
-
Usmu::Ui::Console.new(%w{--verbose --config test
|
18
|
+
Usmu::Ui::Console.new(%w{--verbose --config test-site/usmu.yml})
|
19
19
|
end
|
20
20
|
|
21
21
|
it '#load_configuration returns a configuration' do
|
22
|
-
config = Usmu::Ui::Console.new(%w{--config test
|
22
|
+
config = Usmu::Ui::Console.new(%w{--config test-site/usmu.yml}).load_configuration('test-site/usmu.yml')
|
23
23
|
expect(config.class.name).to eq('Usmu::Configuration')
|
24
24
|
end
|
25
25
|
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/usmu-jruby.gemspec
CHANGED
data/usmu.gemspec
CHANGED
@@ -33,11 +33,10 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.add_development_dependency 'rake', '~> 10.0'
|
34
34
|
spec.add_development_dependency 'rspec', '~> 3.1'
|
35
35
|
spec.add_development_dependency 'yard', '~> 0.8'
|
36
|
-
spec.add_development_dependency 'cane', '~> 2.6'
|
37
|
-
spec.add_development_dependency 'simplecov', '~> 0.9'
|
38
36
|
spec.add_development_dependency 'guard', '~> 2.8'
|
39
37
|
spec.add_development_dependency 'guard-rspec', '~> 4.3'
|
40
38
|
spec.add_development_dependency 'libnotify', '~> 0.9'
|
41
39
|
spec.add_development_dependency 'turnip', '~> 1.2'
|
42
40
|
spec.add_development_dependency 'sass', '~> 3.4'
|
41
|
+
spec.add_development_dependency 'timeout', '~> 0.0'
|
43
42
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: usmu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Scharley
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: slim
|
@@ -156,34 +156,6 @@ dependencies:
|
|
156
156
|
- - "~>"
|
157
157
|
- !ruby/object:Gem::Version
|
158
158
|
version: '0.8'
|
159
|
-
- !ruby/object:Gem::Dependency
|
160
|
-
name: cane
|
161
|
-
requirement: !ruby/object:Gem::Requirement
|
162
|
-
requirements:
|
163
|
-
- - "~>"
|
164
|
-
- !ruby/object:Gem::Version
|
165
|
-
version: '2.6'
|
166
|
-
type: :development
|
167
|
-
prerelease: false
|
168
|
-
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
requirements:
|
170
|
-
- - "~>"
|
171
|
-
- !ruby/object:Gem::Version
|
172
|
-
version: '2.6'
|
173
|
-
- !ruby/object:Gem::Dependency
|
174
|
-
name: simplecov
|
175
|
-
requirement: !ruby/object:Gem::Requirement
|
176
|
-
requirements:
|
177
|
-
- - "~>"
|
178
|
-
- !ruby/object:Gem::Version
|
179
|
-
version: '0.9'
|
180
|
-
type: :development
|
181
|
-
prerelease: false
|
182
|
-
version_requirements: !ruby/object:Gem::Requirement
|
183
|
-
requirements:
|
184
|
-
- - "~>"
|
185
|
-
- !ruby/object:Gem::Version
|
186
|
-
version: '0.9'
|
187
159
|
- !ruby/object:Gem::Dependency
|
188
160
|
name: guard
|
189
161
|
requirement: !ruby/object:Gem::Requirement
|
@@ -254,6 +226,20 @@ dependencies:
|
|
254
226
|
- - "~>"
|
255
227
|
- !ruby/object:Gem::Version
|
256
228
|
version: '3.4'
|
229
|
+
- !ruby/object:Gem::Dependency
|
230
|
+
name: timeout
|
231
|
+
requirement: !ruby/object:Gem::Requirement
|
232
|
+
requirements:
|
233
|
+
- - "~>"
|
234
|
+
- !ruby/object:Gem::Version
|
235
|
+
version: '0.0'
|
236
|
+
type: :development
|
237
|
+
prerelease: false
|
238
|
+
version_requirements: !ruby/object:Gem::Requirement
|
239
|
+
requirements:
|
240
|
+
- - "~>"
|
241
|
+
- !ruby/object:Gem::Version
|
242
|
+
version: '0.0'
|
257
243
|
description: |2
|
258
244
|
Usmu is a static site generator built in Ruby that leverages the Tilt API to support many different template
|
259
245
|
engines. It supports local generation but is designed to be used with the web-based editor.
|
@@ -264,10 +250,8 @@ executables:
|
|
264
250
|
extensions: []
|
265
251
|
extra_rdoc_files: []
|
266
252
|
files:
|
267
|
-
- ".cane"
|
268
253
|
- ".gitignore"
|
269
254
|
- ".rspec"
|
270
|
-
- ".simplecov"
|
271
255
|
- ".travis.yml"
|
272
256
|
- ".yardopts"
|
273
257
|
- CHANGELOG.md
|
@@ -281,6 +265,9 @@ files:
|
|
281
265
|
- bin/usmu
|
282
266
|
- lib/usmu.rb
|
283
267
|
- lib/usmu/configuration.rb
|
268
|
+
- lib/usmu/deployment.rb
|
269
|
+
- lib/usmu/deployment/directory_diff.rb
|
270
|
+
- lib/usmu/deployment/remote_file_interface.rb
|
284
271
|
- lib/usmu/plugin.rb
|
285
272
|
- lib/usmu/plugin/core.rb
|
286
273
|
- lib/usmu/plugin/core_hooks.rb
|
@@ -298,42 +285,44 @@ files:
|
|
298
285
|
- share/init-site/layouts/html.slim
|
299
286
|
- share/init-site/source/index.md
|
300
287
|
- share/init-site/usmu.yml
|
301
|
-
-
|
302
|
-
-
|
303
|
-
-
|
304
|
-
-
|
305
|
-
-
|
306
|
-
-
|
307
|
-
-
|
308
|
-
-
|
309
|
-
-
|
310
|
-
-
|
311
|
-
-
|
312
|
-
-
|
313
|
-
-
|
314
|
-
-
|
315
|
-
-
|
316
|
-
- test
|
317
|
-
- test
|
318
|
-
- test
|
319
|
-
- test
|
320
|
-
- test
|
321
|
-
- test
|
322
|
-
- test
|
323
|
-
- test
|
324
|
-
- test/
|
325
|
-
- test/
|
326
|
-
- test/
|
327
|
-
- test/
|
328
|
-
- test/
|
329
|
-
- test/
|
330
|
-
- test/
|
331
|
-
- test/
|
332
|
-
- test/
|
333
|
-
- test/
|
334
|
-
- test/
|
335
|
-
- test/
|
336
|
-
- test/
|
288
|
+
- spec/acceptance/full_site_build.feature
|
289
|
+
- spec/acceptance/steps/full_site_build_steps.rb
|
290
|
+
- spec/configuration_spec.rb
|
291
|
+
- spec/deployment/directory_diff_spec.rb
|
292
|
+
- spec/mock/usmu/mock_plugin.rb
|
293
|
+
- spec/mock/usmu/mock_remote_files.rb
|
294
|
+
- spec/plugin/core_spec.rb
|
295
|
+
- spec/plugin_spec.rb
|
296
|
+
- spec/site_generator_spec.rb
|
297
|
+
- spec/spec_helper.rb
|
298
|
+
- spec/support/shared_layout.rb
|
299
|
+
- spec/template/layout_spec.rb
|
300
|
+
- spec/template/page_spec.rb
|
301
|
+
- spec/template/static_file_spec.rb
|
302
|
+
- spec/ui/console_spec.rb
|
303
|
+
- test-site/content/.dotfiletest.txt
|
304
|
+
- test-site/content/css/_partial.scss
|
305
|
+
- test-site/content/css/app.scss
|
306
|
+
- test-site/content/default.md
|
307
|
+
- test-site/content/embedded.md
|
308
|
+
- test-site/content/embedded.meta.yml
|
309
|
+
- test-site/content/index.md
|
310
|
+
- test-site/content/index.meta.yml
|
311
|
+
- test-site/content/posts/test-post.md
|
312
|
+
- test-site/content/robots.txt
|
313
|
+
- test-site/expected-site/.dotfiletest.txt
|
314
|
+
- test-site/expected-site/css/app.css
|
315
|
+
- test-site/expected-site/default.html
|
316
|
+
- test-site/expected-site/embedded.html
|
317
|
+
- test-site/expected-site/index.html
|
318
|
+
- test-site/expected-site/posts/test-post.html
|
319
|
+
- test-site/expected-site/robots.txt
|
320
|
+
- test-site/includes/footer.meta.yml
|
321
|
+
- test-site/includes/footer.slim
|
322
|
+
- test-site/layouts/embedded.meta.yml
|
323
|
+
- test-site/layouts/embedded.slim
|
324
|
+
- test-site/layouts/html.slim
|
325
|
+
- test-site/usmu.yml
|
337
326
|
- usmu-jruby.gemspec
|
338
327
|
- usmu.gemspec
|
339
328
|
homepage: https://github.com/usmu/usmu
|
@@ -356,45 +345,24 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
356
345
|
version: '0'
|
357
346
|
requirements: []
|
358
347
|
rubyforge_project:
|
359
|
-
rubygems_version: 2.
|
348
|
+
rubygems_version: 2.4.5
|
360
349
|
signing_key:
|
361
350
|
specification_version: 4
|
362
351
|
summary: A static site generator with a web-based frontend for editing.
|
363
352
|
test_files:
|
364
|
-
-
|
365
|
-
-
|
366
|
-
-
|
367
|
-
-
|
368
|
-
-
|
369
|
-
-
|
370
|
-
-
|
371
|
-
-
|
372
|
-
-
|
373
|
-
-
|
374
|
-
-
|
375
|
-
-
|
376
|
-
-
|
377
|
-
-
|
378
|
-
-
|
379
|
-
- test/site/content/posts/test-post.md
|
380
|
-
- test/site/content/robots.txt
|
381
|
-
- test/site/includes/footer.meta.yml
|
382
|
-
- test/site/includes/footer.slim
|
383
|
-
- test/site/layouts/embedded.meta.yml
|
384
|
-
- test/site/layouts/embedded.slim
|
385
|
-
- test/site/layouts/html.slim
|
386
|
-
- test/site/usmu.yml
|
387
|
-
- test/spec/acceptance/full_site_build.feature
|
388
|
-
- test/spec/acceptance/steps/full_site_build_steps.rb
|
389
|
-
- test/spec/configuration_spec.rb
|
390
|
-
- test/spec/mock/usmu/mock_plugin.rb
|
391
|
-
- test/spec/plugin/core_spec.rb
|
392
|
-
- test/spec/plugin_spec.rb
|
393
|
-
- test/spec/site_generator_spec.rb
|
394
|
-
- test/spec/spec_helper.rb
|
395
|
-
- test/spec/support/shared_layout.rb
|
396
|
-
- test/spec/template/layout_spec.rb
|
397
|
-
- test/spec/template/page_spec.rb
|
398
|
-
- test/spec/template/static_file_spec.rb
|
399
|
-
- test/spec/ui/console_spec.rb
|
353
|
+
- spec/acceptance/full_site_build.feature
|
354
|
+
- spec/acceptance/steps/full_site_build_steps.rb
|
355
|
+
- spec/configuration_spec.rb
|
356
|
+
- spec/deployment/directory_diff_spec.rb
|
357
|
+
- spec/mock/usmu/mock_plugin.rb
|
358
|
+
- spec/mock/usmu/mock_remote_files.rb
|
359
|
+
- spec/plugin/core_spec.rb
|
360
|
+
- spec/plugin_spec.rb
|
361
|
+
- spec/site_generator_spec.rb
|
362
|
+
- spec/spec_helper.rb
|
363
|
+
- spec/support/shared_layout.rb
|
364
|
+
- spec/template/layout_spec.rb
|
365
|
+
- spec/template/page_spec.rb
|
366
|
+
- spec/template/static_file_spec.rb
|
367
|
+
- spec/ui/console_spec.rb
|
400
368
|
has_rdoc:
|
data/.cane
DELETED
data/.simplecov
DELETED
@@ -1,176 +0,0 @@
|
|
1
|
-
require 'usmu/configuration'
|
2
|
-
|
3
|
-
RSpec.describe Usmu::Configuration do
|
4
|
-
context 'should prepend configuration folder' do
|
5
|
-
before do
|
6
|
-
hash = {
|
7
|
-
'source' => 'source',
|
8
|
-
'destination' => 'destination',
|
9
|
-
'layouts' => 'templates',
|
10
|
-
'includes' => 'includes',
|
11
|
-
}
|
12
|
-
@configuration = Usmu::Configuration.from_hash(hash, 'test/usmu.yaml')
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'to source' do
|
16
|
-
expect(@configuration.source_path).to eq('test/source')
|
17
|
-
end
|
18
|
-
|
19
|
-
it 'to destination' do
|
20
|
-
expect(@configuration.destination_path).to eq('test/destination')
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'to layouts' do
|
24
|
-
expect(@configuration.layouts_path).to eq('test/templates')
|
25
|
-
end
|
26
|
-
|
27
|
-
it 'to includes' do
|
28
|
-
expect(@configuration.includes_path).to eq('test/includes')
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
context 'should have a default path' do
|
33
|
-
before do
|
34
|
-
hash = {}
|
35
|
-
@configuration = Usmu::Configuration.from_hash(hash)
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'for source' do
|
39
|
-
expect(@configuration.source_path).to eq('src')
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'for destination' do
|
43
|
-
expect(@configuration.destination_path).to eq('site')
|
44
|
-
end
|
45
|
-
|
46
|
-
it 'for layouts' do
|
47
|
-
expect(@configuration.layouts_path).to eq('layouts')
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'for includes' do
|
51
|
-
expect(@configuration.includes_path).to eq('includes')
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'should have a list of source files' do
|
56
|
-
@configuration = Usmu::Configuration.from_hash({})
|
57
|
-
allow(Dir).to receive(:'[]').with('src/**/{*,.??*}').and_return(%w(src/index.md src/test.md))
|
58
|
-
expect(@configuration.source_files).to eq(%w(index.md test.md))
|
59
|
-
end
|
60
|
-
|
61
|
-
it 'should ignore metadata files in the source folder' do
|
62
|
-
@configuration = Usmu::Configuration.from_hash({})
|
63
|
-
allow(Dir).to receive(:'[]').with('src/**/{*,.??*}').and_return(%w(src/index.md src/index.meta.yml src/test.md))
|
64
|
-
expect(@configuration.source_files).to eq(%w(index.md test.md))
|
65
|
-
end
|
66
|
-
|
67
|
-
it 'should have a list of layouts files' do
|
68
|
-
@configuration = Usmu::Configuration.from_hash({})
|
69
|
-
allow(Dir).to receive(:'[]').with('layouts/**/{*,.??*}').and_return(%w(layouts/html.slim layouts/page.slim))
|
70
|
-
expect(@configuration.layouts_files).to eq(%w(html.slim page.slim))
|
71
|
-
end
|
72
|
-
|
73
|
-
it 'should ignore metadata files in the layouts folder' do
|
74
|
-
@configuration = Usmu::Configuration.from_hash({})
|
75
|
-
allow(Dir).to receive(:'[]').with('layouts/**/{*,.??*}').and_return(%w(layouts/html.slim layouts/html.meta.yml layouts/page.slim))
|
76
|
-
expect(@configuration.layouts_files).to eq(%w(html.slim page.slim))
|
77
|
-
end
|
78
|
-
|
79
|
-
it 'should have a list of includes files' do
|
80
|
-
@configuration = Usmu::Configuration.from_hash({})
|
81
|
-
allow(Dir).to receive(:'[]').with('includes/**/{*,.??*}').and_return(%w(includes/footer.slim))
|
82
|
-
expect(@configuration.includes_files).to eq(%w(footer.slim))
|
83
|
-
end
|
84
|
-
|
85
|
-
it 'should ignore metadata files in the includes folder' do
|
86
|
-
@configuration = Usmu::Configuration.from_hash({})
|
87
|
-
allow(Dir).to receive(:'[]').with('includes/**/{*,.??*}').and_return(%w(includes/footer.slim includes/footer.meta.yml))
|
88
|
-
expect(@configuration.includes_files).to eq(%w(footer.slim))
|
89
|
-
end
|
90
|
-
|
91
|
-
it 'should remember arbitrary configuration' do
|
92
|
-
configuration = Usmu::Configuration.from_hash({:test => 'foo'})
|
93
|
-
expect(configuration[:test]).to eq('foo')
|
94
|
-
end
|
95
|
-
|
96
|
-
context 'should exclude files from source' do
|
97
|
-
it 'as specified' do
|
98
|
-
@configuration = Usmu::Configuration.from_hash({'exclude' => ['foo.md']})
|
99
|
-
allow(Dir).to receive(:'[]').with('src/**/{*,.??*}').and_return(%w(src/index.md src/foo.md))
|
100
|
-
expect(@configuration.source_files).to eq(%w(index.md))
|
101
|
-
end
|
102
|
-
|
103
|
-
it 'in ignored folders if trailing "/" is used' do
|
104
|
-
@configuration = Usmu::Configuration.from_hash({'exclude' => ['test/']})
|
105
|
-
allow(Dir).to receive(:'[]').with('src/**/{*,.??*}').and_return(%w(src/index.md src/test/foo/test.md src/test/foo.md))
|
106
|
-
expect(@configuration.source_files).to eq(%w(index.md))
|
107
|
-
end
|
108
|
-
|
109
|
-
it 'and honor *' do
|
110
|
-
@configuration = Usmu::Configuration.from_hash({'exclude' => ['*/foo.md']})
|
111
|
-
allow(Dir).to receive(:'[]').with('src/**/{*,.??*}').and_return(%w(src/index.md src/test/foo/foo.md src/test/foo.md))
|
112
|
-
expect(@configuration.source_files).to eq(%w(index.md test/foo/foo.md))
|
113
|
-
end
|
114
|
-
|
115
|
-
it 'and * ignores folders without a trailing /' do
|
116
|
-
@configuration = Usmu::Configuration.from_hash({'exclude' => ['*']})
|
117
|
-
allow(Dir).to receive(:'[]').with('src/**/{*,.??*}').and_return(%w(src/index.md src/test/foo.md src/test.md))
|
118
|
-
expect(@configuration.source_files).to eq(%w(test/foo.md))
|
119
|
-
end
|
120
|
-
|
121
|
-
it 'and honor **' do
|
122
|
-
@configuration = Usmu::Configuration.from_hash({'exclude' => ['**/foo.md']})
|
123
|
-
allow(Dir).to receive(:'[]').with('src/**/{*,.??*}').and_return(%w(src/index.md src/test/foo/foo.md src/test/foo.md))
|
124
|
-
expect(@configuration.source_files).to eq(%w(index.md))
|
125
|
-
end
|
126
|
-
|
127
|
-
it 'and honor []' do
|
128
|
-
@configuration = Usmu::Configuration.from_hash({'exclude' => ['[ab].md']})
|
129
|
-
allow(Dir).to receive(:'[]').with('src/**/{*,.??*}').and_return(%w(src/index.md src/a.md src/b.md))
|
130
|
-
expect(@configuration.source_files).to eq(%w(index.md))
|
131
|
-
end
|
132
|
-
|
133
|
-
# FNM_EXTGLOB is supported from MRI 2.0 onwards. We also support the 1.9.3 ABI for JRuby and Rubinius sake. Only
|
134
|
-
# run this test if it's possible for it to pass.
|
135
|
-
if defined?(File::FNM_EXTGLOB)
|
136
|
-
it 'and honor {a,b}' do
|
137
|
-
@configuration = Usmu::Configuration.from_hash({'exclude' => ['{a,b}.md']})
|
138
|
-
allow(Dir).to receive(:'[]').with('src/**/{*,.??*}').and_return(%w(src/index.md src/a.md src/b.md))
|
139
|
-
expect(@configuration.source_files).to eq(%w(index.md))
|
140
|
-
end
|
141
|
-
end
|
142
|
-
|
143
|
-
it 'and honor \\ as an escape' do
|
144
|
-
@configuration = Usmu::Configuration.from_hash({'exclude' => ['\*.md']})
|
145
|
-
allow(Dir).to receive(:'[]').with('src/**/{*,.??*}').and_return(%w(src/index.md src/*.md))
|
146
|
-
expect(@configuration.source_files).to eq(%w(index.md))
|
147
|
-
end
|
148
|
-
|
149
|
-
it 'and honor ?' do
|
150
|
-
@configuration = Usmu::Configuration.from_hash({'exclude' => ['?.md']})
|
151
|
-
allow(Dir).to receive(:'[]').with('src/**/{*,.??*}').and_return(%w(src/index.md src/a.md src/b.md))
|
152
|
-
expect(@configuration.source_files).to eq(%w(index.md))
|
153
|
-
end
|
154
|
-
|
155
|
-
it 'and ignore files inside folders specified via globs with trailing "/"' do
|
156
|
-
@configuration = Usmu::Configuration.from_hash({'exclude' => ['test/*/']})
|
157
|
-
allow(Dir).to receive(:'[]').with('src/**/{*,.??*}').and_return(%w(src/index.md src/test/foo/foo.md src/test/foo.md))
|
158
|
-
expect(@configuration.source_files).to eq(%w(index.md test/foo.md))
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
it 'should allow indexing the configuration file' do
|
163
|
-
configuration = Usmu::Configuration.from_hash({test: 'foo'})
|
164
|
-
expect(configuration[:test]).to eq('foo')
|
165
|
-
end
|
166
|
-
|
167
|
-
it 'should allow indexing the configuration file with a default value' do
|
168
|
-
configuration = Usmu::Configuration.from_hash({test: 'foo'})
|
169
|
-
expect(configuration[:bar, default: 'baz']).to eq('baz')
|
170
|
-
end
|
171
|
-
|
172
|
-
it 'should allow indexing the configuration file using a path of indices' do
|
173
|
-
configuration = Usmu::Configuration.from_hash({test: {bar: 'foo'}})
|
174
|
-
expect(configuration[:test, :bar]).to eq('foo')
|
175
|
-
end
|
176
|
-
end
|