nanoc-oo 0.0.4 → 0.0.5
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/bin/nanoc-oo +0 -1
- data/data/nanoc-oo/wrapper/Rules +3 -1
- data/features/cli.feature +33 -0
- data/features/move_children.example +4 -1
- data/features/step_definitions/complex_steps.rb +10 -1
- data/lib/nanoc-oo/version.rb +1 -1
- data/lib/nanoc-oo.rb +52 -7
- metadata +4 -4
- data/spec/cli/all_spec.rb +0 -61
data/bin/nanoc-oo
CHANGED
data/data/nanoc-oo/wrapper/Rules
CHANGED
@@ -0,0 +1,33 @@
|
|
1
|
+
Feature: command line interface
|
2
|
+
|
3
|
+
Scenario: nanoc output
|
4
|
+
When $ nanoc-oo mysite
|
5
|
+
Then the output should contain "Enjoy!"
|
6
|
+
When $ nanoc-oo mysite
|
7
|
+
Then the output should contain "already exists"
|
8
|
+
|
9
|
+
Scenario: (no side effect between features I)
|
10
|
+
When $ nanoc-oo thesite
|
11
|
+
Then the output should contain "Enjoy!"
|
12
|
+
Scenario: (no side effect between features II)
|
13
|
+
When $ nanoc-oo thesite
|
14
|
+
Then the output should contain "Enjoy!"
|
15
|
+
|
16
|
+
Scenario: create site
|
17
|
+
When $ nanoc-oo site
|
18
|
+
Then a file named "site/Rules" should exist
|
19
|
+
And a file named "site/content/index.html" should exist
|
20
|
+
|
21
|
+
Scenario: create blank site
|
22
|
+
When $ nanoc-oo site --blank
|
23
|
+
Then a file named "site/Rules" should exist
|
24
|
+
And a file named "site/content/index.html" should not exist
|
25
|
+
|
26
|
+
Scenario: Rules file is replaced
|
27
|
+
When $ nanoc-oo site
|
28
|
+
Then the file "site/Rules" should contain "FakeItem"
|
29
|
+
|
30
|
+
Scenario: it describes actions
|
31
|
+
When $ nanoc-oo thesite
|
32
|
+
Then the output should contain "force"
|
33
|
+
Then the output should contain "classes"
|
@@ -1,4 +1,3 @@
|
|
1
|
-
@wip
|
2
1
|
Feature: move children items
|
3
2
|
|
4
3
|
Background:
|
@@ -36,6 +35,10 @@ Feature: move children items
|
|
36
35
|
|
37
36
|
class ThatItem < Page
|
38
37
|
GOOD_ID = 'one/*'
|
38
|
+
|
39
|
+
def route *a
|
40
|
+
super.sub 'one', 'two' # more declarative way to do this needed
|
41
|
+
end
|
39
42
|
end
|
40
43
|
"""
|
41
44
|
When I successfully compile it
|
@@ -20,4 +20,13 @@ Step '(the )?*( files)? are the only (ones|files) in( the)? "*" directory' do |g
|
|
20
20
|
missing = ideal - really
|
21
21
|
step 'the following files should exist:', make_table(missing)
|
22
22
|
step 'the following files should not exist:', make_table(extra)
|
23
|
-
end
|
23
|
+
end
|
24
|
+
|
25
|
+
Step 'the following empty files exist:' do |table|
|
26
|
+
table.raw.map{|x|x[0]}.each do |file|
|
27
|
+
step 'an empty file named "%s"' % file
|
28
|
+
end
|
29
|
+
# table is a Cucumber::Ast::Table
|
30
|
+
#pending # express the regexp above with the code you wish you had
|
31
|
+
end
|
32
|
+
|
data/lib/nanoc-oo/version.rb
CHANGED
data/lib/nanoc-oo.rb
CHANGED
@@ -1,26 +1,71 @@
|
|
1
1
|
require "nanoc-oo/version"
|
2
|
-
require '
|
2
|
+
require 'thor'
|
3
|
+
|
4
|
+
THIS_GEM = 'nanoc-oo'
|
5
|
+
|
6
|
+
class ForcedDataCopier < Thor
|
7
|
+
include Thor::Actions
|
8
|
+
class_option :force, type: :boolean, default: true
|
9
|
+
|
10
|
+
desc 'copy',''
|
11
|
+
def copy source, dest
|
12
|
+
directory source, dest
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.source_root
|
16
|
+
Gem.datadir(THIS_GEM)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class Force < Thor
|
21
|
+
include Thor::Actions
|
22
|
+
class_option :force, type: :boolean, default: true
|
23
|
+
|
24
|
+
def self.remove_file file
|
25
|
+
new.remove_file file
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
3
29
|
|
4
30
|
module NanocOO
|
5
|
-
include FileUtils
|
6
|
-
|
7
31
|
def create_site name, blank=false
|
8
|
-
|
32
|
+
system "nanoc create-site #{name}"
|
9
33
|
wrap name
|
10
34
|
delete_content name if blank
|
11
35
|
end
|
12
36
|
|
13
37
|
def wrap dir
|
14
|
-
|
38
|
+
copier = ForcedDataCopier.new.copy 'wrapper', dir
|
39
|
+
|
40
|
+
#prepend_file join(dir,'Rules'), File.read(join(wrapper,'Rules'))
|
41
|
+
#directory 'lib', dir
|
42
|
+
#cp_r wrapper+'/.', dir
|
43
|
+
# act = Thor::Actions.new :force
|
44
|
+
# act.directory wrapper+'/.', dir
|
45
|
+
end
|
46
|
+
|
47
|
+
def data_dir
|
48
|
+
Gem.datadir('nanoc-oo')
|
15
49
|
end
|
16
50
|
|
17
51
|
def wrapper
|
18
|
-
|
52
|
+
join data_dir, 'wrapper'
|
19
53
|
end
|
20
54
|
|
21
55
|
def delete_content dir
|
22
|
-
|
56
|
+
Dir.glob(join(dir,'content','*')).each do |supposedly_file|
|
57
|
+
Force.remove_file supposedly_file
|
58
|
+
end
|
23
59
|
end
|
24
60
|
|
25
61
|
extend self
|
62
|
+
|
63
|
+
# def source_root
|
64
|
+
# File.expand_path(File.dirname(__FILE__))
|
65
|
+
# end
|
26
66
|
end
|
67
|
+
|
68
|
+
|
69
|
+
BEGIN{
|
70
|
+
def join *a; File.join *a end
|
71
|
+
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nanoc-oo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
12
|
+
date: 2012-12-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -180,6 +180,7 @@ files:
|
|
180
180
|
- data/nanoc-oo/wrapper/lib/filter_for.rb
|
181
181
|
- data/nanoc-oo/wrapper/lib/item_class.rb
|
182
182
|
- features/_related_tests.feature
|
183
|
+
- features/cli.feature
|
183
184
|
- features/composite_file.example
|
184
185
|
- features/move_children.example
|
185
186
|
- features/paginate_article.example
|
@@ -195,7 +196,6 @@ files:
|
|
195
196
|
- nanoc-oo.gemspec
|
196
197
|
- old-README.md
|
197
198
|
- spec/add_item_spec.rb
|
198
|
-
- spec/cli/all_spec.rb
|
199
199
|
- spec/item_children_and_comiling_spec.rb
|
200
200
|
- spec/items_configuration_spec.rb
|
201
201
|
- spec/layouts_spec.rb
|
@@ -243,6 +243,7 @@ specification_version: 3
|
|
243
243
|
summary: nanoc wrapper with OO taste
|
244
244
|
test_files:
|
245
245
|
- features/_related_tests.feature
|
246
|
+
- features/cli.feature
|
246
247
|
- features/composite_file.example
|
247
248
|
- features/move_children.example
|
248
249
|
- features/paginate_article.example
|
@@ -254,7 +255,6 @@ test_files:
|
|
254
255
|
- features/support/my_extension.rb
|
255
256
|
- features/support/nice_steps.rb
|
256
257
|
- spec/add_item_spec.rb
|
257
|
-
- spec/cli/all_spec.rb
|
258
258
|
- spec/item_children_and_comiling_spec.rb
|
259
259
|
- spec/items_configuration_spec.rb
|
260
260
|
- spec/layouts_spec.rb
|
data/spec/cli/all_spec.rb
DELETED
@@ -1,61 +0,0 @@
|
|
1
|
-
require 'nanoc-oo'
|
2
|
-
|
3
|
-
describe NanocOO do
|
4
|
-
include FileUtils
|
5
|
-
|
6
|
-
let(:temp){ 'temp' }
|
7
|
-
let(:site){ "#{temp}/site" }
|
8
|
-
before :each do
|
9
|
-
rm_rf temp
|
10
|
-
end
|
11
|
-
after :each do
|
12
|
-
rm_rf temp
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'creates site with nanoc' do
|
16
|
-
`nanoc-oo #{site}`
|
17
|
-
File.should exist join(site,'Rules')
|
18
|
-
content_files.count.should > 0
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'creates site with nanoc (w/o cli)' do
|
22
|
-
NanocOO.create_site site
|
23
|
-
File.should exist join(site,'Rules')
|
24
|
-
content_files.count.should > 0
|
25
|
-
end
|
26
|
-
|
27
|
-
it 'creates site without content if --blank specified' do
|
28
|
-
`nanoc-oo #{site} --blank`
|
29
|
-
File.should exist join(site,'Rules')
|
30
|
-
content_files.count.should == 0
|
31
|
-
Dir.should exist join(site,'content')
|
32
|
-
end
|
33
|
-
|
34
|
-
describe 'created site' do
|
35
|
-
before do
|
36
|
-
`nanoc-oo #{site}`
|
37
|
-
end
|
38
|
-
|
39
|
-
it 'is wrapped' do
|
40
|
-
read(join(site,'Rules')).should == read(join(NanocOO.wrapper,'Rules'))
|
41
|
-
end
|
42
|
-
|
43
|
-
context 'terminal outputs' do
|
44
|
-
specify 'nanoc output'
|
45
|
-
specify 'wrapping info'
|
46
|
-
specify '--help?'
|
47
|
-
end if false
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
BEGIN{
|
52
|
-
def join *a
|
53
|
-
File.join *a
|
54
|
-
end
|
55
|
-
def read *a
|
56
|
-
File.read *a
|
57
|
-
end
|
58
|
-
def content_files
|
59
|
-
Dir[join(site,'content','*')]
|
60
|
-
end
|
61
|
-
}
|