webby 0.9.3-x86-mswin32 → 0.9.4-x86-mswin32
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/History.txt +20 -0
- data/{README.txt → README.rdoc} +9 -9
- data/Rakefile +19 -6
- data/examples/blog/content/css/blueprint/ie.css +26 -0
- data/examples/blog/content/css/blueprint/plugins/buttons/icons/cross.png +0 -0
- data/examples/blog/content/css/blueprint/plugins/buttons/icons/key.png +0 -0
- data/examples/blog/content/css/blueprint/plugins/buttons/icons/tick.png +0 -0
- data/examples/{website/content/css/blueprint/plugins/buttons/Readme → blog/content/css/blueprint/plugins/buttons/readme.txt} +3 -2
- data/examples/{website/content/css/blueprint/plugins/buttons/buttons.css → blog/content/css/blueprint/plugins/buttons/screen.css} +1 -1
- data/examples/blog/content/css/blueprint/plugins/fancy-type/readme.txt +14 -0
- data/examples/{website/content/css/blueprint/plugins/fancy-type/fancy-type.css → blog/content/css/blueprint/plugins/fancy-type/screen.css} +2 -5
- data/examples/blog/content/css/blueprint/plugins/link-icons/icons/doc.png +0 -0
- data/examples/blog/content/css/blueprint/plugins/link-icons/icons/email.png +0 -0
- data/examples/blog/content/css/blueprint/plugins/link-icons/icons/external.png +0 -0
- data/examples/blog/content/css/blueprint/plugins/link-icons/icons/feed.png +0 -0
- data/examples/blog/content/css/blueprint/plugins/link-icons/icons/im.png +0 -0
- data/examples/blog/content/css/blueprint/plugins/link-icons/icons/pdf.png +0 -0
- data/examples/blog/content/css/blueprint/plugins/link-icons/icons/visited.png +0 -0
- data/examples/blog/content/css/blueprint/plugins/link-icons/icons/xls.png +0 -0
- data/examples/blog/content/css/blueprint/plugins/link-icons/readme.txt +18 -0
- data/examples/blog/content/css/blueprint/plugins/link-icons/screen.css +40 -0
- data/examples/blog/content/css/blueprint/plugins/rtl/readme.txt +10 -0
- data/examples/blog/content/css/blueprint/plugins/rtl/screen.css +109 -0
- data/examples/blog/content/css/blueprint/print.css +30 -0
- data/examples/blog/content/css/blueprint/screen.css +251 -0
- data/examples/blog/content/css/blueprint/src/forms.css +49 -0
- data/examples/blog/content/css/blueprint/src/grid.css +212 -0
- data/examples/{website/content/css/blueprint/lib → blog/content/css/blueprint/src}/grid.png +0 -0
- data/examples/blog/content/css/blueprint/src/ie.css +59 -0
- data/examples/blog/content/css/blueprint/src/print.css +85 -0
- data/examples/{website/content/css/blueprint/lib → blog/content/css/blueprint/src}/reset.css +14 -15
- data/examples/blog/content/css/blueprint/src/typography.css +105 -0
- data/examples/blog/content/css/coderay.css +111 -0
- data/examples/blog/content/css/site.css +67 -0
- data/examples/blog/layouts/default.txt +61 -0
- data/examples/blog/tasks/blog.rake +5 -1
- data/examples/presentation/Sitefile +2 -2
- data/examples/tumblog/tasks/tumblog.rake +5 -1
- data/examples/webby/Sitefile +2 -2
- data/examples/webby/content/communicate/index.txt +2 -2
- data/examples/webby/content/index.txt +1 -1
- data/examples/webby/content/release-notes/rel-0-9-3/index.txt +0 -2
- data/examples/webby/content/release-notes/rel-0-9-4/index.txt +33 -0
- data/examples/webby/content/sitemap.txt +2 -2
- data/examples/webby/content/user-manual/index.txt +3 -3
- data/examples/website/content/css/blueprint/ie.css +26 -0
- data/examples/website/content/css/blueprint/plugins/buttons/readme.txt +32 -0
- data/examples/website/content/css/blueprint/plugins/buttons/screen.css +97 -0
- data/examples/website/content/css/blueprint/plugins/fancy-type/readme.txt +14 -0
- data/examples/website/content/css/blueprint/plugins/fancy-type/screen.css +71 -0
- data/examples/website/content/css/blueprint/plugins/link-icons/icons/doc.png +0 -0
- data/examples/website/content/css/blueprint/plugins/link-icons/icons/email.png +0 -0
- data/examples/website/content/css/blueprint/plugins/link-icons/icons/external.png +0 -0
- data/examples/website/content/css/blueprint/plugins/link-icons/icons/feed.png +0 -0
- data/examples/website/content/css/blueprint/plugins/link-icons/icons/im.png +0 -0
- data/examples/website/content/css/blueprint/plugins/link-icons/icons/pdf.png +0 -0
- data/examples/website/content/css/blueprint/plugins/link-icons/icons/visited.png +0 -0
- data/examples/website/content/css/blueprint/plugins/link-icons/icons/xls.png +0 -0
- data/examples/website/content/css/blueprint/plugins/link-icons/readme.txt +18 -0
- data/examples/website/content/css/blueprint/plugins/link-icons/screen.css +40 -0
- data/examples/website/content/css/blueprint/plugins/rtl/readme.txt +10 -0
- data/examples/website/content/css/blueprint/plugins/rtl/screen.css +109 -0
- data/examples/website/content/css/blueprint/print.css +30 -68
- data/examples/website/content/css/blueprint/screen.css +251 -22
- data/examples/website/content/css/blueprint/src/forms.css +49 -0
- data/examples/website/content/css/blueprint/src/grid.css +212 -0
- data/examples/website/content/css/blueprint/src/grid.png +0 -0
- data/examples/website/content/css/blueprint/src/ie.css +59 -0
- data/examples/website/content/css/blueprint/src/print.css +85 -0
- data/examples/website/content/css/blueprint/src/reset.css +38 -0
- data/examples/website/content/css/blueprint/src/typography.css +105 -0
- data/examples/website/layouts/default.txt +5 -2
- data/lib/webby.rb +36 -102
- data/lib/webby/apps/generator.rb +2 -2
- data/lib/webby/apps/main.rb +36 -62
- data/lib/webby/auto_builder.rb +3 -3
- data/lib/webby/builder.rb +5 -13
- data/lib/webby/config.rb +172 -0
- data/lib/webby/filters.rb +2 -0
- data/lib/webby/filters/haml.rb +13 -0
- data/lib/webby/filters/maruku.rb +16 -0
- data/lib/webby/filters/outline.rb +1 -1
- data/lib/webby/filters/sass.rb +14 -0
- data/lib/webby/filters/slides.rb +2 -2
- data/lib/webby/filters/tidy.rb +5 -0
- data/lib/webby/helpers/coderay_helper.rb +27 -3
- data/lib/webby/helpers/graphviz_helper.rb +20 -3
- data/lib/webby/helpers/tex_img_helper.rb +25 -5
- data/lib/webby/helpers/ultraviolet_helper.rb +19 -5
- data/lib/webby/link_validator.rb +59 -51
- data/lib/webby/renderer.rb +9 -6
- data/lib/webby/resources.rb +2 -1
- data/lib/webby/resources/page.rb +4 -1
- data/lib/webby/tasks/create.rake +1 -1
- data/lib/webby/tasks/validate.rake +1 -1
- data/spec/data/html/anchor.html +11 -0
- data/spec/data/html/external.html +10 -0
- data/spec/data/html/invalid-relative.html +10 -0
- data/spec/data/html/relative-anchor.html +10 -0
- data/spec/data/html/relative-invalid-anchor.html +10 -0
- data/spec/data/html/relative.html +10 -0
- data/spec/data/site/tasks/tumblog.rake +5 -1
- data/spec/spec_helper.rb +8 -1
- data/spec/webby/apps/generator_spec.rb +36 -3
- data/spec/webby/apps/main_spec.rb +2 -1
- data/spec/webby/filters/basepath_spec.rb +2 -2
- data/spec/webby/filters/maruku_spec.rb +31 -0
- data/spec/webby/filters/textile_spec.rb +15 -4
- data/spec/webby/helpers/capture_helper_spec.rb +1 -1
- data/spec/webby/link_validator_spec.rb +154 -0
- data/spec/webby/resources/db_spec.rb +24 -24
- data/spec/webby/resources/layout_spec.rb +1 -1
- data/spec/webby/resources/page_spec.rb +8 -2
- data/spec/webby/resources/resource_spec.rb +1 -1
- data/spec/webby/resources_spec.rb +1 -1
- data/tasks/ann.rake +1 -2
- data/tasks/bones.rake +0 -1
- data/tasks/gem.rake +48 -34
- data/tasks/git.rake +0 -1
- data/tasks/mswin32.rake +38 -0
- data/tasks/notes.rake +0 -1
- data/tasks/post_load.rake +4 -9
- data/tasks/rdoc.rake +4 -4
- data/tasks/setup.rb +50 -26
- data/tasks/spec.rake +1 -2
- data/tasks/svn.rake +47 -0
- data/tasks/test.rake +40 -0
- data/tasks/website.rake +0 -1
- data/tasks/zentest.rake +36 -0
- metadata +104 -33
- data/Manifest.txt +0 -228
- data/examples/website/content/css/blueprint/License.txt +0 -21
- data/examples/website/content/css/blueprint/Readme.txt +0 -100
- data/examples/website/content/css/blueprint/compressed/print.css +0 -76
- data/examples/website/content/css/blueprint/compressed/screen.css +0 -696
- data/examples/website/content/css/blueprint/lib/forms.css +0 -45
- data/examples/website/content/css/blueprint/lib/grid.css +0 -193
- data/examples/website/content/css/blueprint/lib/ie.css +0 -30
- data/examples/website/content/css/blueprint/lib/typography.css +0 -116
- data/examples/website/content/css/blueprint/plugins/css-classes/Readme +0 -14
- data/examples/website/content/css/blueprint/plugins/css-classes/css-classes.css +0 -24
- data/examples/website/content/css/blueprint/plugins/fancy-type/Readme +0 -22
- data/examples/website/content/css/blueprint/plugins/fancy-type/fancy-type-compressed.css +0 -5
- data/lib/webby/stelan/spawner.rb +0 -339
- data/tasks/manifest.rake +0 -48
@@ -0,0 +1,31 @@
|
|
1
|
+
|
2
|
+
require ::File.expand_path(
|
3
|
+
::File.join(::File.dirname(__FILE__), %w[.. .. spec_helper]))
|
4
|
+
|
5
|
+
# ---------------------------------------------------------------------------
|
6
|
+
describe 'Webby::Filters::Maruku' do
|
7
|
+
|
8
|
+
it 'should regsiter the maruku filter handler' do
|
9
|
+
Webby::Filters._handlers['maruku'].should_not be_nil
|
10
|
+
end
|
11
|
+
|
12
|
+
if try_require('maruku')
|
13
|
+
|
14
|
+
it 'processes maruku markup into HTML' do
|
15
|
+
input = "## Heading Two\n\nAnd some text about this heading."
|
16
|
+
output = Webby::Filters._handlers['maruku'].call(input)
|
17
|
+
|
18
|
+
output.should == %Q{<h2 id='heading_two'>Heading Two</h2>\n\n<p>And some text about this heading.</p>}
|
19
|
+
end
|
20
|
+
|
21
|
+
else
|
22
|
+
|
23
|
+
it 'raises an error when maruku is used but not installed' do
|
24
|
+
input = "## Heading Two\n\nAnd some text about this heading."
|
25
|
+
lambda {Webby::Filters._handlers['maruku'].call(input)}.should raise_error(Webby::Error, "'maruku' must be installed to use the maruku filter")
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
# EOF
|
@@ -9,11 +9,22 @@ describe 'Webby::Filters::Textile' do
|
|
9
9
|
Webby::Filters._handlers['textile'].should_not be_nil
|
10
10
|
end
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
if try_require('redcloth')
|
13
|
+
|
14
|
+
it 'processes textile markup into HTML' do
|
15
|
+
input = "p(foo). this is a paragraph of text"
|
16
|
+
output = Webby::Filters._handlers['textile'].call(input)
|
17
|
+
|
18
|
+
output.should == %q{<p class="foo">this is a paragraph of text</p>}
|
19
|
+
end
|
20
|
+
|
21
|
+
else
|
22
|
+
|
23
|
+
it 'raises an error when RedCloth is used but not installed' do
|
24
|
+
input = "p(foo). this is a paragraph of text"
|
25
|
+
lambda {Webby::Filters._handlers['textile'].call(input)}.should raise_error(Webby::Error, "'RedCloth' must be installed to use the textile filter")
|
26
|
+
end
|
15
27
|
|
16
|
-
output.should == %q{<p class="foo">this is a paragraph of text</p>}
|
17
28
|
end
|
18
29
|
end
|
19
30
|
|
@@ -30,7 +30,7 @@ describe Webby::Helpers::CaptureHelper do
|
|
30
30
|
::FileUtils.rm_f(CFN)
|
31
31
|
end
|
32
32
|
|
33
|
-
it 'should not "leak" any content to containing page' do
|
33
|
+
it 'should not "leak" any content to the containing page' do
|
34
34
|
@page_content.should_not be_nil
|
35
35
|
@page_content.should eql("Hello world!\n")
|
36
36
|
end
|
@@ -0,0 +1,154 @@
|
|
1
|
+
require File.expand_path(
|
2
|
+
File.join(File.dirname(__FILE__), %w[.. spec_helper]))
|
3
|
+
|
4
|
+
# ---------------------------------------------------------------------------
|
5
|
+
describe Webby::LinkValidator do
|
6
|
+
before do
|
7
|
+
@validator = Webby::LinkValidator.new
|
8
|
+
@@old = Webby.site.output_dir
|
9
|
+
Webby.site.output_dir = Webby.datapath('html')
|
10
|
+
end
|
11
|
+
|
12
|
+
after do
|
13
|
+
Webby.site.output_dir = @@old
|
14
|
+
end
|
15
|
+
|
16
|
+
describe ".validate" do
|
17
|
+
it "passes options to a new validator" do
|
18
|
+
new_validator = stub('validator', :validate => true)
|
19
|
+
Webby::LinkValidator.should_receive(:new).with(:options).and_return(new_validator)
|
20
|
+
Webby::LinkValidator.validate(:options)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "checks each file" do
|
24
|
+
#TODO: test fake site
|
25
|
+
files = ["a file", "another file"]
|
26
|
+
Dir.stub!(:glob).and_return(files)
|
27
|
+
|
28
|
+
validator = Webby::LinkValidator.new
|
29
|
+
files.each do |file|
|
30
|
+
validator.should_receive(:check_file).with(file)
|
31
|
+
end
|
32
|
+
validator.validate
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "checking a file" do
|
37
|
+
describe "with an anchor" do
|
38
|
+
before do
|
39
|
+
@filename = Webby.datapath('html', 'anchor.html')
|
40
|
+
end
|
41
|
+
|
42
|
+
it "validates the anchor" do
|
43
|
+
@validator.should_receive(:validate_anchor)
|
44
|
+
@validator.check_file(@filename)
|
45
|
+
end
|
46
|
+
|
47
|
+
it "does not add the file to the valid uri list" do
|
48
|
+
lambda { @validator.check_file(@filename) }.should_not change(@validator.instance_variable_get('@valid_uris'), :size)
|
49
|
+
end
|
50
|
+
|
51
|
+
it "***CURRENTLY*** returns nil" do
|
52
|
+
@validator.check_file(@filename).should be_nil
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "with a valid relative href" do
|
57
|
+
before do
|
58
|
+
@filename = Webby.datapath('html', 'relative.html')
|
59
|
+
end
|
60
|
+
|
61
|
+
it "adds the file to the valid uri list" do
|
62
|
+
lambda { @validator.check_file(@filename) }.should change(@validator.instance_variable_get('@valid_uris'), :size).by(1)
|
63
|
+
end
|
64
|
+
|
65
|
+
it "***CURRENTLY*** returns nil" do
|
66
|
+
@validator.check_file(@filename).should be_nil
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
describe "with an invalid relative href" do
|
71
|
+
before do
|
72
|
+
@filename = Webby.datapath('html', 'invalid-relative.html')
|
73
|
+
end
|
74
|
+
|
75
|
+
it "does not add the file to the invalid uri list" do
|
76
|
+
lambda { @validator.check_file(@filename) }.should_not change(@validator.instance_variable_get('@valid_uris'), :size)
|
77
|
+
end
|
78
|
+
|
79
|
+
it "***CURRENTLY*** returns nil" do
|
80
|
+
@validator.check_file(@filename).should be_nil
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
describe "with a valid relative href that contains an anchor" do
|
85
|
+
before do
|
86
|
+
@filename = Webby.datapath('html', 'relative-anchor.html')
|
87
|
+
end
|
88
|
+
|
89
|
+
it "adds the file to the valid uri list" do
|
90
|
+
lambda { @validator.check_file(@filename) }.should change(@validator.instance_variable_get('@valid_uris'), :size).by(1)
|
91
|
+
end
|
92
|
+
|
93
|
+
it "***CURRENTLY*** returns nil" do
|
94
|
+
@validator.check_file(@filename).should be_nil
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
describe "with a valid relative href that contains an invalid anchor" do
|
99
|
+
before do
|
100
|
+
@filename = Webby.datapath('html', 'relative-invalid-anchor.html')
|
101
|
+
end
|
102
|
+
|
103
|
+
it "does not the file to the valid uri list" do
|
104
|
+
lambda { @validator.check_file(@filename) }.should_not change(@validator.instance_variable_get('@valid_uris'), :size)
|
105
|
+
end
|
106
|
+
|
107
|
+
it "***CURRENTLY*** returns nil" do
|
108
|
+
@validator.check_file(@filename).should be_nil
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
if $test_externals
|
113
|
+
describe "with a valid external href" do
|
114
|
+
before do
|
115
|
+
FakeWeb.register_uri('http://www.google.com/', :string => 'google')
|
116
|
+
@filename = Webby.datapath('html', 'external.html')
|
117
|
+
@validator.validate_externals = true
|
118
|
+
end
|
119
|
+
|
120
|
+
it "adds the file to the valid uri list" do
|
121
|
+
lambda { @validator.check_file(@filename) }.should change(@validator.instance_variable_get('@valid_uris'), :size).by(1)
|
122
|
+
end
|
123
|
+
|
124
|
+
it "does not add the file to the invalid uri list" do
|
125
|
+
lambda { @validator.check_file(@filename) }.should_not change(@validator.instance_variable_get('@invalid_uris'), :size)
|
126
|
+
end
|
127
|
+
|
128
|
+
it "***CURRENTLY*** returns nil" do
|
129
|
+
@validator.check_file(@filename).should be_nil
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
describe "with an invalid external href" do
|
134
|
+
before do
|
135
|
+
FakeWeb.register_uri('http://www.google.com/', :string => 'google', :status => [ 404, "Not Found" ])
|
136
|
+
@filename = Webby.datapath('html', 'external.html')
|
137
|
+
@validator.validate_externals = true
|
138
|
+
end
|
139
|
+
|
140
|
+
it "does not add the file to the valid uri list" do
|
141
|
+
lambda { @validator.check_file(@filename) }.should_not change(@validator.instance_variable_get('@valid_uris'), :size)
|
142
|
+
end
|
143
|
+
|
144
|
+
it "adds the file to the invalid uri list" do
|
145
|
+
lambda { @validator.check_file(@filename) }.should change(@validator.instance_variable_get('@invalid_uris'), :size).by(1)
|
146
|
+
end
|
147
|
+
|
148
|
+
it "***CURRENTLY*** returns nil" do
|
149
|
+
@validator.check_file(@filename).should be_nil
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
@@ -7,7 +7,7 @@ describe Webby::Resources::DB do
|
|
7
7
|
|
8
8
|
before :each do
|
9
9
|
layout = Webby::Resources::Layout.
|
10
|
-
new(Webby.datapath
|
10
|
+
new(Webby.datapath(%w[site layouts tumblog default.txt]))
|
11
11
|
Webby::Resources.stub!(:find_layout).and_return(layout)
|
12
12
|
|
13
13
|
@db = Webby::Resources::DB.new
|
@@ -53,13 +53,13 @@ describe Webby::Resources::DB do
|
|
53
53
|
ary = []
|
54
54
|
@db.each {|page| ary << page.url}
|
55
55
|
ary.should == %w[
|
56
|
-
/tumblog
|
56
|
+
/tumblog/
|
57
57
|
/tumblog/rss.xml
|
58
|
-
/tumblog/200806/the-noble-chicken
|
59
|
-
/tumblog/200807/historical-perspectives-on-the-classic-chicken-joke
|
60
|
-
/tumblog/200807/mad-city-chickens
|
61
|
-
/tumblog/200807/the-wisdom-of-the-dutch
|
62
|
-
/tumblog/200807/up-a-tree
|
58
|
+
/tumblog/200806/the-noble-chicken/
|
59
|
+
/tumblog/200807/historical-perspectives-on-the-classic-chicken-joke/
|
60
|
+
/tumblog/200807/mad-city-chickens/
|
61
|
+
/tumblog/200807/the-wisdom-of-the-dutch/
|
62
|
+
/tumblog/200807/up-a-tree/
|
63
63
|
]
|
64
64
|
end
|
65
65
|
|
@@ -70,11 +70,11 @@ describe Webby::Resources::DB do
|
|
70
70
|
|
71
71
|
page = Webby::Resources::Page.new('content/tumblog/rss.txt')
|
72
72
|
parent = @db.parent_of(page)
|
73
|
-
parent.url.should == '/tumblog'
|
73
|
+
parent.url.should == '/tumblog/'
|
74
74
|
|
75
75
|
page = Webby::Resources::Page.new('content/tumblog/200807/up-a-tree/index.txt')
|
76
76
|
parent = @db.parent_of(page)
|
77
|
-
parent.url.should == '/tumblog'
|
77
|
+
parent.url.should == '/tumblog/'
|
78
78
|
end
|
79
79
|
|
80
80
|
it 'returns the siblings of a resource' do
|
@@ -97,11 +97,11 @@ describe Webby::Resources::DB do
|
|
97
97
|
|
98
98
|
children.length.should == 5
|
99
99
|
children.map {|page| page.url}.sort.should == %w[
|
100
|
-
/tumblog/200806/the-noble-chicken
|
101
|
-
/tumblog/200807/historical-perspectives-on-the-classic-chicken-joke
|
102
|
-
/tumblog/200807/mad-city-chickens
|
103
|
-
/tumblog/200807/the-wisdom-of-the-dutch
|
104
|
-
/tumblog/200807/up-a-tree
|
100
|
+
/tumblog/200806/the-noble-chicken/
|
101
|
+
/tumblog/200807/historical-perspectives-on-the-classic-chicken-joke/
|
102
|
+
/tumblog/200807/mad-city-chickens/
|
103
|
+
/tumblog/200807/the-wisdom-of-the-dutch/
|
104
|
+
/tumblog/200807/up-a-tree/
|
105
105
|
]
|
106
106
|
end
|
107
107
|
|
@@ -111,11 +111,11 @@ describe Webby::Resources::DB do
|
|
111
111
|
|
112
112
|
children.length.should == 5
|
113
113
|
children.map {|page| page.url}.should == %w[
|
114
|
-
/tumblog/200806/the-noble-chicken
|
115
|
-
/tumblog/200807/historical-perspectives-on-the-classic-chicken-joke
|
116
|
-
/tumblog/200807/mad-city-chickens
|
117
|
-
/tumblog/200807/the-wisdom-of-the-dutch
|
118
|
-
/tumblog/200807/up-a-tree
|
114
|
+
/tumblog/200806/the-noble-chicken/
|
115
|
+
/tumblog/200807/historical-perspectives-on-the-classic-chicken-joke/
|
116
|
+
/tumblog/200807/mad-city-chickens/
|
117
|
+
/tumblog/200807/the-wisdom-of-the-dutch/
|
118
|
+
/tumblog/200807/up-a-tree/
|
119
119
|
]
|
120
120
|
end
|
121
121
|
|
@@ -125,11 +125,11 @@ describe Webby::Resources::DB do
|
|
125
125
|
|
126
126
|
children.length.should == 5
|
127
127
|
children.map {|page| page.url}.should == %w[
|
128
|
-
/tumblog/200806/the-noble-chicken
|
129
|
-
/tumblog/200807/historical-perspectives-on-the-classic-chicken-joke
|
130
|
-
/tumblog/200807/mad-city-chickens
|
131
|
-
/tumblog/200807/the-wisdom-of-the-dutch
|
132
|
-
/tumblog/200807/up-a-tree
|
128
|
+
/tumblog/200806/the-noble-chicken/
|
129
|
+
/tumblog/200807/historical-perspectives-on-the-classic-chicken-joke/
|
130
|
+
/tumblog/200807/mad-city-chickens/
|
131
|
+
/tumblog/200807/the-wisdom-of-the-dutch/
|
132
|
+
/tumblog/200807/up-a-tree/
|
133
133
|
].reverse
|
134
134
|
end
|
135
135
|
end
|
@@ -6,7 +6,7 @@ require File.expand_path(
|
|
6
6
|
describe Webby::Resources::Layout do
|
7
7
|
before :each do
|
8
8
|
layout = Webby::Resources::Layout.
|
9
|
-
new(Webby.datapath
|
9
|
+
new(Webby.datapath(%w[site layouts tumblog default.txt]))
|
10
10
|
Webby::Resources.stub!(:find_layout).and_return(layout)
|
11
11
|
|
12
12
|
@default = File.join %w[layouts tumblog default.txt]
|
@@ -6,7 +6,7 @@ require File.expand_path(
|
|
6
6
|
describe Webby::Resources::Page do
|
7
7
|
before :each do
|
8
8
|
layout = Webby::Resources::Layout.
|
9
|
-
new(Webby.datapath
|
9
|
+
new(Webby.datapath(%w[site layouts default.txt]))
|
10
10
|
Webby::Resources.stub!(:find_layout).and_return(layout)
|
11
11
|
|
12
12
|
@filename = File.join %w[content index.txt]
|
@@ -55,7 +55,13 @@ describe Webby::Resources::Page do
|
|
55
55
|
it "uses only the directory name for 'index' files" do
|
56
56
|
filename = File.join %w[content tumblog index.txt]
|
57
57
|
resource = Webby::Resources::Page.new(filename)
|
58
|
-
resource.url.should == '/tumblog'
|
58
|
+
resource.url.should == '/tumblog/'
|
59
|
+
end
|
60
|
+
|
61
|
+
it "avoids adding a double trailing slash on the end" do
|
62
|
+
filename = File.join %w[content index.txt]
|
63
|
+
resource = Webby::Resources::Page.new(filename)
|
64
|
+
resource.url.should == '/'
|
59
65
|
end
|
60
66
|
end
|
61
67
|
|
@@ -7,7 +7,7 @@ describe Webby::Resources::Resource do
|
|
7
7
|
|
8
8
|
before :each do
|
9
9
|
layout = Webby::Resources::Layout.
|
10
|
-
new(Webby.datapath
|
10
|
+
new(Webby.datapath(%w[site layouts default.txt]))
|
11
11
|
Webby::Resources.stub!(:find_layout).and_return(layout)
|
12
12
|
|
13
13
|
@filename = File.join %w[content index.txt]
|
@@ -47,7 +47,7 @@ describe Webby::Resources do
|
|
47
47
|
describe "#new" do
|
48
48
|
before :each do
|
49
49
|
layout = Webby::Resources::Layout.
|
50
|
-
new(Webby.datapath
|
50
|
+
new(Webby.datapath(%w[site layouts default.txt]))
|
51
51
|
Webby::Resources.stub!(:find_layout).and_return(layout)
|
52
52
|
end
|
53
53
|
|
data/tasks/ann.rake
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# $Id$
|
2
1
|
|
3
2
|
begin
|
4
3
|
require 'bones/smtp_tls'
|
@@ -43,7 +42,7 @@ namespace :ann do
|
|
43
42
|
desc "Send an email announcement"
|
44
43
|
task :email => ['ann:prereqs', PROJ.ann.file] do
|
45
44
|
ann = PROJ.ann
|
46
|
-
from = ann.email[:from] || PROJ.email
|
45
|
+
from = ann.email[:from] || Array(PROJ.authors).first || PROJ.email
|
47
46
|
to = Array(ann.email[:to])
|
48
47
|
|
49
48
|
### build a mail header for RFC 822
|
data/tasks/bones.rake
CHANGED
data/tasks/gem.rake
CHANGED
@@ -4,13 +4,17 @@ require 'rake/packagetask'
|
|
4
4
|
require 'rubygems/user_interaction'
|
5
5
|
require 'rubygems/builder'
|
6
6
|
|
7
|
-
|
7
|
+
module Bones
|
8
|
+
class GemPackageTask < Rake::PackageTask
|
8
9
|
# Ruby GEM spec containing the metadata for this package. The
|
9
10
|
# name, version and package_files are automatically determined
|
10
11
|
# from the GEM spec and don't need to be explicitly provided.
|
11
12
|
#
|
12
13
|
attr_accessor :gem_spec
|
13
14
|
|
15
|
+
# Tasks from the Bones gem directory
|
16
|
+
attr_reader :bones_files
|
17
|
+
|
14
18
|
# Create a GEM Package task library. Automatically define the gem
|
15
19
|
# if a block is given. If no block is supplied, then +define+
|
16
20
|
# needs to be called to define the task.
|
@@ -28,6 +32,12 @@ class Bones::GemPackageTask < Rake::PackageTask
|
|
28
32
|
super(gem.name, gem.version)
|
29
33
|
@gem_spec = gem
|
30
34
|
@package_files += gem_spec.files if gem_spec.files
|
35
|
+
@bones_files = []
|
36
|
+
|
37
|
+
local_setup = File.join(Dir.pwd, %w[tasks setup.rb])
|
38
|
+
if !test(?e, local_setup)
|
39
|
+
Dir.glob(::Bones.path(%w[lib bones tasks *])).each {|fn| bones_files << fn}
|
40
|
+
end
|
31
41
|
end
|
32
42
|
|
33
43
|
# Create the Rake tasks and actions specified by this
|
@@ -38,7 +48,7 @@ class Bones::GemPackageTask < Rake::PackageTask
|
|
38
48
|
super
|
39
49
|
task :prereqs
|
40
50
|
task :package => ['gem:prereqs', "#{package_dir_path}/#{gem_file}"]
|
41
|
-
file "#{package_dir_path}/#{gem_file}" => [package_dir_path] + package_files do
|
51
|
+
file "#{package_dir_path}/#{gem_file}" => [package_dir_path] + package_files + bones_files do
|
42
52
|
when_writing("Creating GEM") {
|
43
53
|
chdir(package_dir_path) do
|
44
54
|
Gem::Builder.new(gem_spec).build
|
@@ -48,6 +58,26 @@ class Bones::GemPackageTask < Rake::PackageTask
|
|
48
58
|
end
|
49
59
|
}
|
50
60
|
end
|
61
|
+
|
62
|
+
file package_dir_path => bones_files do
|
63
|
+
mkdir_p package_dir rescue nil
|
64
|
+
|
65
|
+
gem_spec.files = (gem_spec.files +
|
66
|
+
bones_files.map {|fn| File.join('tasks', File.basename(fn))}).sort
|
67
|
+
|
68
|
+
bones_files.each do |fn|
|
69
|
+
base_fn = File.join('tasks', File.basename(fn))
|
70
|
+
f = File.join(package_dir_path, base_fn)
|
71
|
+
fdir = File.dirname(f)
|
72
|
+
mkdir_p(fdir) if !File.exist?(fdir)
|
73
|
+
if File.directory?(fn)
|
74
|
+
mkdir_p(f)
|
75
|
+
else
|
76
|
+
raise "file name conflict for '#{base_fn}' (conflicts with '#{fn}')" if test(?e, f)
|
77
|
+
safe_ln(fn, f)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
51
81
|
end
|
52
82
|
|
53
83
|
def gem_file
|
@@ -57,7 +87,8 @@ class Bones::GemPackageTask < Rake::PackageTask
|
|
57
87
|
"#{package_name}-#{@gem_spec.platform}.gem"
|
58
88
|
end
|
59
89
|
end
|
60
|
-
end # class
|
90
|
+
end # class GemPackageTask
|
91
|
+
end # module Bones
|
61
92
|
|
62
93
|
namespace :gem do
|
63
94
|
|
@@ -76,6 +107,10 @@ namespace :gem do
|
|
76
107
|
s.add_dependency(*dep)
|
77
108
|
end
|
78
109
|
|
110
|
+
PROJ.gem.development_dependencies.each do |dep|
|
111
|
+
s.add_development_dependency(*dep)
|
112
|
+
end
|
113
|
+
|
79
114
|
s.files = PROJ.gem.files
|
80
115
|
s.executables = PROJ.gem.executables.map {|fn| File.basename(fn)}
|
81
116
|
s.extensions = PROJ.gem.files.grep %r/extconf\.rb$/
|
@@ -124,6 +159,13 @@ namespace :gem do
|
|
124
159
|
puts PROJ.gem._spec.to_ruby
|
125
160
|
end
|
126
161
|
|
162
|
+
desc 'Write the gemspec '
|
163
|
+
task :spec => 'gem:prereqs' do
|
164
|
+
File.open("#{PROJ.name}.gemspec", 'w') do |f|
|
165
|
+
f.write PROJ.gem._spec.to_ruby
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
127
169
|
desc 'Install the gem'
|
128
170
|
task :install => [:clobber, 'gem:package'] do
|
129
171
|
sh "#{SUDO} #{GEM} install --local pkg/#{PROJ.gem._spec.full_name}"
|
@@ -147,41 +189,13 @@ namespace :gem do
|
|
147
189
|
task :cleanup do
|
148
190
|
sh "#{SUDO} #{GEM} cleanup #{PROJ.gem._spec.name}"
|
149
191
|
end
|
150
|
-
|
151
|
-
namespace :mswin32 do
|
152
|
-
win32_spec = PROJ.gem._spec.dup
|
153
|
-
win32_spec.platform = 'x86-mswin32'
|
154
|
-
|
155
|
-
pkg = Bones::GemPackageTask.new(win32_spec)
|
156
|
-
class << pkg
|
157
|
-
def package_dir_path() "#{package_dir}/#{package_name}-x86-mswin32"; end
|
158
|
-
end
|
159
|
-
pkg.define
|
160
|
-
|
161
|
-
file "#{pkg.package_dir_path}/#{pkg.gem_file}" => :unix2dos
|
162
|
-
|
163
|
-
task :unix2dos do
|
164
|
-
reject = %w[.gif .jpg .jpeg]
|
165
|
-
Find.find(File.join(pkg.package_dir_path, 'examples')) do |fn|
|
166
|
-
next unless test(?f, fn)
|
167
|
-
next if reject.include?(File.extname(fn))
|
168
|
-
sh %{unix2dos #{fn}}
|
169
|
-
end
|
170
|
-
end
|
171
|
-
end # namespace :mswin32
|
172
192
|
end # namespace :gem
|
173
193
|
|
174
194
|
|
175
195
|
desc 'Alias to gem:package'
|
176
|
-
task :gem =>
|
177
|
-
|
178
|
-
task :clobber => ['gem:clobber_package', 'gem:mswin32:clobber_package']
|
196
|
+
task :gem => 'gem:package'
|
179
197
|
|
180
|
-
|
181
|
-
|
182
|
-
gem:mswin32:clobber_package
|
183
|
-
gem:mswin32:package
|
184
|
-
gem:mswin32:repackage
|
185
|
-
].each {|name| remove_desc_for_task name}
|
198
|
+
task :clobber => 'gem:clobber_package'
|
199
|
+
remove_desc_for_task 'gem:clobber_package'
|
186
200
|
|
187
201
|
# EOF
|