TwP-webby 0.9.3 → 0.9.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. data/History.txt +8 -0
  2. data/Manifest.txt +35 -29
  3. data/{README.txt → README.rdoc} +9 -9
  4. data/Rakefile +9 -2
  5. data/examples/webby/content/communicate/index.txt +2 -2
  6. data/examples/webby/content/index.txt +1 -1
  7. data/examples/website/content/css/blueprint/ie.css +26 -0
  8. data/examples/website/content/css/blueprint/plugins/buttons/{Readme → readme.txt} +3 -2
  9. data/examples/website/content/css/blueprint/plugins/buttons/{buttons.css → screen.css} +1 -1
  10. data/examples/website/content/css/blueprint/plugins/fancy-type/readme.txt +14 -0
  11. data/examples/website/content/css/blueprint/plugins/fancy-type/{fancy-type.css → screen.css} +71 -74
  12. data/examples/website/content/css/blueprint/plugins/link-icons/icons/doc.png +0 -0
  13. data/examples/website/content/css/blueprint/plugins/link-icons/icons/email.png +0 -0
  14. data/examples/website/content/css/blueprint/plugins/link-icons/icons/external.png +0 -0
  15. data/examples/website/content/css/blueprint/plugins/link-icons/icons/feed.png +0 -0
  16. data/examples/website/content/css/blueprint/plugins/link-icons/icons/im.png +0 -0
  17. data/examples/website/content/css/blueprint/plugins/link-icons/icons/pdf.png +0 -0
  18. data/examples/website/content/css/blueprint/plugins/link-icons/icons/visited.png +0 -0
  19. data/examples/website/content/css/blueprint/plugins/link-icons/icons/xls.png +0 -0
  20. data/examples/website/content/css/blueprint/plugins/link-icons/readme.txt +18 -0
  21. data/examples/website/content/css/blueprint/plugins/link-icons/screen.css +40 -0
  22. data/examples/website/content/css/blueprint/plugins/rtl/readme.txt +10 -0
  23. data/examples/website/content/css/blueprint/plugins/rtl/screen.css +109 -0
  24. data/examples/website/content/css/blueprint/print.css +30 -68
  25. data/examples/website/content/css/blueprint/screen.css +251 -22
  26. data/examples/website/content/css/blueprint/src/forms.css +49 -0
  27. data/examples/website/content/css/blueprint/src/grid.css +212 -0
  28. data/examples/website/content/css/blueprint/src/ie.css +59 -0
  29. data/examples/website/content/css/blueprint/src/print.css +85 -0
  30. data/examples/website/content/css/blueprint/{lib → src}/reset.css +14 -15
  31. data/examples/website/content/css/blueprint/src/typography.css +105 -0
  32. data/examples/website/layouts/default.txt +5 -2
  33. data/lib/webby/apps/main.rb +4 -1
  34. data/lib/webby/auto_builder.rb +3 -3
  35. data/lib/webby/builder.rb +5 -13
  36. data/lib/webby/filters/maruku.rb +16 -0
  37. data/lib/webby/filters/outline.rb +1 -1
  38. data/lib/webby/link_validator.rb +59 -51
  39. data/lib/webby/tasks/create.rake +4 -1
  40. data/lib/webby/tasks/validate.rake +1 -1
  41. data/lib/webby.rb +14 -3
  42. data/spec/data/html/anchor.html +11 -0
  43. data/spec/data/html/external.html +10 -0
  44. data/spec/data/html/invalid-relative.html +10 -0
  45. data/spec/data/html/relative-anchor.html +10 -0
  46. data/spec/data/html/relative-invalid-anchor.html +10 -0
  47. data/spec/data/html/relative.html +10 -0
  48. data/spec/spec_helper.rb +7 -0
  49. data/spec/webby/filters/maruku_spec.rb +31 -0
  50. data/spec/webby/filters/textile_spec.rb +15 -4
  51. data/spec/webby/link_validator_spec.rb +154 -0
  52. data/tasks/mswin32.rake +38 -0
  53. data/tasks/website.rake +0 -1
  54. metadata +52 -24
  55. data/examples/website/content/css/blueprint/License.txt +0 -21
  56. data/examples/website/content/css/blueprint/Readme.txt +0 -100
  57. data/examples/website/content/css/blueprint/compressed/print.css +0 -76
  58. data/examples/website/content/css/blueprint/compressed/screen.css +0 -696
  59. data/examples/website/content/css/blueprint/lib/forms.css +0 -45
  60. data/examples/website/content/css/blueprint/lib/grid.css +0 -193
  61. data/examples/website/content/css/blueprint/lib/ie.css +0 -30
  62. data/examples/website/content/css/blueprint/lib/typography.css +0 -116
  63. data/examples/website/content/css/blueprint/plugins/css-classes/Readme +0 -14
  64. data/examples/website/content/css/blueprint/plugins/css-classes/css-classes.css +0 -24
  65. data/examples/website/content/css/blueprint/plugins/fancy-type/Readme +0 -22
  66. data/examples/website/content/css/blueprint/plugins/fancy-type/fancy-type-compressed.css +0 -5
  67. data/tasks/ann.rake +0 -81
  68. data/tasks/bones.rake +0 -21
  69. data/tasks/gem.rake +0 -187
  70. data/tasks/git.rake +0 -41
  71. data/tasks/manifest.rake +0 -48
  72. data/tasks/notes.rake +0 -28
  73. data/tasks/post_load.rake +0 -39
  74. data/tasks/rdoc.rake +0 -51
  75. data/tasks/rubyforge.rake +0 -55
  76. data/tasks/setup.rb +0 -268
  77. data/tasks/spec.rake +0 -55
  78. /data/examples/website/content/css/blueprint/{lib → src}/grid.png +0 -0
@@ -1,193 +0,0 @@
1
- /* --------------------------------------------------------------
2
-
3
- grid.css
4
- * Sets up an easy-to-use grid of 24 columns.
5
-
6
- Based on work by:
7
- * Nathan Borror [playgroundblues.com]
8
- * Jeff Croft [jeffcroft.com]
9
- * Christian Metts [mintchaos.com]
10
- * Khoi Vinh [subtraction.com]
11
-
12
- By default, the grid is 950px wide, with 24 columns
13
- spanning 30px, and a 10px margin between columns.
14
-
15
- If you need fewer or more columns, use this
16
- formula to find the new total width:
17
- Total width = (columns * 40) - 10
18
-
19
- Read more about using a grid here:
20
- * subtraction.com/archives/2007/0318_oh_yeeaahh.php
21
-
22
- -------------------------------------------------------------- */
23
-
24
- /* A container should group all your columns. */
25
- .container {
26
- width: 950px;
27
- margin: 0 auto;
28
- }
29
-
30
-
31
- /* Columns
32
- -------------------------------------------------------------- */
33
-
34
- /* Use this class together with the .span-x classes
35
- to create any composition of columns in a layout. */
36
-
37
- .column {
38
- float: left;
39
- margin-right: 10px;
40
- }
41
-
42
-
43
- /* The last column in a row needs this class. */
44
- .last { margin-right: 0; }
45
-
46
- /* Use these classes to set the width of a column. */
47
- .span-1 { width: 30px; }
48
- .span-2 { width: 70px; }
49
- .span-3 { width: 110px; }
50
- .span-4 { width: 150px; }
51
- .span-5 { width: 190px; }
52
- .span-6 { width: 230px; }
53
- .span-7 { width: 270px; }
54
- .span-8 { width: 310px; }
55
- .span-9 { width: 350px; }
56
- .span-10 { width: 390px; }
57
- .span-11 { width: 430px; }
58
- .span-12 { width: 470px; }
59
- .span-13 { width: 510px; }
60
- .span-14 { width: 550px; }
61
- .span-15 { width: 590px; }
62
- .span-16 { width: 630px; }
63
- .span-17 { width: 670px; }
64
- .span-18 { width: 710px; }
65
- .span-19 { width: 750px; }
66
- .span-20 { width: 790px; }
67
- .span-21 { width: 830px; }
68
- .span-22 { width: 870px; }
69
- .span-23 { width: 910px; }
70
- .span-24 { width: 950px; margin: 0; }
71
-
72
- /* Add these to a column to append empty cols. */
73
- .append-1 { padding-right: 40px; }
74
- .append-2 { padding-right: 80px; }
75
- .append-3 { padding-right: 120px; }
76
- .append-4 { padding-right: 160px; }
77
- .append-5 { padding-right: 200px; }
78
- .append-6 { padding-right: 240px; }
79
- .append-7 { padding-right: 280px; }
80
- .append-8 { padding-right: 320px; }
81
- .append-9 { padding-right: 360px; }
82
- .append-10 { padding-right: 400px; }
83
- .append-11 { padding-right: 440px; }
84
- .append-12 { padding-right: 480px; }
85
- .append-13 { padding-right: 520px; }
86
- .append-14 { padding-right: 560px; }
87
- .append-15 { padding-right: 600px; }
88
- .append-16 { padding-right: 640px; }
89
- .append-17 { padding-right: 680px; }
90
- .append-18 { padding-right: 720px; }
91
- .append-19 { padding-right: 760px; }
92
- .append-20 { padding-right: 800px; }
93
- .append-21 { padding-right: 840px; }
94
- .append-22 { padding-right: 880px; }
95
- .append-23 { padding-right: 920px; }
96
-
97
- /* Add these to a column to prepend empty cols. */
98
- .prepend-1 { padding-left: 40px; }
99
- .prepend-2 { padding-left: 80px; }
100
- .prepend-3 { padding-left: 120px; }
101
- .prepend-4 { padding-left: 160px; }
102
- .prepend-5 { padding-left: 200px; }
103
- .prepend-6 { padding-left: 240px; }
104
- .prepend-7 { padding-left: 280px; }
105
- .prepend-8 { padding-left: 320px; }
106
- .prepend-9 { padding-left: 360px; }
107
- .prepend-10 { padding-left: 400px; }
108
- .prepend-11 { padding-left: 440px; }
109
- .prepend-12 { padding-left: 480px; }
110
- .prepend-13 { padding-left: 520px; }
111
- .prepend-14 { padding-left: 560px; }
112
- .prepend-15 { padding-left: 600px; }
113
- .prepend-16 { padding-left: 640px; }
114
- .prepend-17 { padding-left: 680px; }
115
- .prepend-18 { padding-left: 720px; }
116
- .prepend-19 { padding-left: 760px; }
117
- .prepend-20 { padding-left: 800px; }
118
- .prepend-21 { padding-left: 840px; }
119
- .prepend-22 { padding-left: 880px; }
120
- .prepend-23 { padding-left: 920px; }
121
-
122
-
123
- /* Border on right hand side of a column. */
124
- .border {
125
- padding-right: 4px;
126
- margin-right: 5px;
127
- border-right: 1px solid #eee;
128
- }
129
-
130
- /* Border with more whitespace, spans one column. */
131
- .colborder {
132
- padding-right: 24px;
133
- margin-right: 25px;
134
- border-right: 1px solid #eee;
135
- }
136
-
137
-
138
- /* Use these classes on an element to push it into the
139
- next column, or to pull it into the previous column. */
140
-
141
- .pull-1 { margin-left: -40px; }
142
- .pull-2 { margin-left: -80px; }
143
- .pull-3 { margin-left: -120px; }
144
- .pull-4 { margin-left: -160px; }
145
-
146
- .push-0 { margin: 0 0 0 18px; }
147
- .push-1 { margin: 0 -40px 0 18px; }
148
- .push-2 { margin: 0 -80px 0 18px; }
149
- .push-3 { margin: 0 -120px 0 18px; }
150
- .push-4 { margin: 0 -160px 0 18px; }
151
- .push-0, .push-1, .push-2, .push-3, .push-4 { float: right; }
152
-
153
-
154
- /* Misc classes and elements
155
- -------------------------------------------------------------- */
156
-
157
- /* Use a .box to create a padded box inside a column. */
158
- .box {
159
- padding: 1.5em;
160
- margin-bottom: 1.5em;
161
- background: #eee;
162
- }
163
-
164
- /* Use this to create a horizontal ruler across a column. */
165
- hr {
166
- background: #ddd;
167
- color: #ddd;
168
- clear: both;
169
- float: none;
170
- width: 100%;
171
- height: .1em;
172
- margin: 0 0 1.4em;
173
- border: none;
174
- }
175
- hr.space {
176
- background: #fff;
177
- color: #fff;
178
- }
179
-
180
- /* Clearing floats without extra markup
181
- Based on How To Clear Floats Without Structural Markup by PiE
182
- [http://www.positioniseverything.net/easyclearing.html] */
183
-
184
- .clear { display: inline-block; }
185
- .clear:after, .container:after {
186
- content: ".";
187
- display: block;
188
- height: 0;
189
- clear: both;
190
- visibility: hidden;
191
- }
192
- * html .clear { height: 1%; }
193
- .clear { display: block; }
@@ -1,30 +0,0 @@
1
- /* --------------------------------------------------------------
2
-
3
- ie.css
4
-
5
- Contains every hack for Internet Explorer versions prior
6
- to IE7, so that our core files stay sweet and nimble.
7
-
8
- -------------------------------------------------------------- */
9
-
10
- /* Make sure the layout is centered in IE5 */
11
- body { text-align: center; }
12
- .container { text-align: left; }
13
-
14
-
15
- /* This fixes the problem where IE6 adds an extra 3px margin to
16
- two columns that are floated up against each other. */
17
-
18
- * html .column { overflow-x: hidden; } /* IE6 fix */
19
-
20
- .pull-1, .pull-2, .pull-3, .pull-4,
21
- .push-1, .push-2, .push-3, .push-4,
22
- ul, ol {
23
- position: relative; /* Keeps IE6 from cutting pulled/pushed images */
24
- }
25
-
26
- /* Fixes incorrect styling of legend in IE6 fieldsets. */
27
- legend { margin-bottom:1.4em; }
28
-
29
- /* Fixes incorrect placement of numbers in ol's in IE6/7 */
30
- ol { margin-left:2em; }
@@ -1,116 +0,0 @@
1
- /* --------------------------------------------------------------
2
-
3
- typography.css
4
- * Sets up some sensible default typography.
5
-
6
- Based on work by:
7
- * Nathan Borror [playgroundblues.com]
8
- * Jeff Croft [jeffcroft.com]
9
- * Christian Metts [mintchaos.com]
10
- * Wilson Miner [wilsonminer.com]
11
- * Richard Rutter [clagnut.com]
12
-
13
- Read more about using a baseline here:
14
- * alistapart.com/articles/settingtypeontheweb
15
-
16
- -------------------------------------------------------------- */
17
-
18
- /* This is where you set your desired font size. The line-heights
19
- and vertical margins are automatically calculated from this.
20
- The percentage is of 16px (0.75 * 16px = 12px). */
21
-
22
- body { font-size: 75%; }
23
-
24
-
25
- /* Default fonts and colors.
26
- If you prefer serif fonts, remove the font-family
27
- on the headings, and apply this one to the body:
28
- font: 1em Georgia, "lucida bright", "times new roman", serif; */
29
-
30
- body {
31
- color: #222;
32
- font-family: "Helvetica Neue", "Lucida Grande", Helvetica, Arial, Verdana, sans-serif;
33
- }
34
- h1,h2,h3,h4,h5,h6 {
35
- color: #111;
36
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
37
- }
38
-
39
-
40
- /* Headings
41
- -------------------------------------------------------------- */
42
-
43
- h1,h2,h3,h4,h5,h6 { font-weight: normal; }
44
-
45
- h1 { font-size: 3em; line-height: 1; margin-bottom: 0.5em; }
46
- h2 { font-size: 2em; margin-bottom: 0.75em; }
47
- h3 { font-size: 1.5em; line-height: 1; margin-bottom: 1em; }
48
- h4 { font-size: 1.2em; line-height: 1.25; margin-bottom: 1.25em; }
49
- h5 { font-size: 1em; font-weight: bold; margin-bottom: 1.5em; }
50
- h6 { font-size: 1em; font-weight: bold; }
51
-
52
-
53
- /* Text elements
54
- -------------------------------------------------------------- */
55
-
56
- p { margin: 0 0 1.5em; }
57
- p.last { margin-bottom: 0; }
58
- p img { float: left; margin: 1.5em 1.5em 1.5em 0; padding: 0; }
59
- p img.top { margin-top: 0; } /* Use this if the image is at the top of the <p>. */
60
- img { margin: 0 0 1.5em; }
61
-
62
- ul, ol { margin:0 1.5em 1.5em 1.5em; }
63
- ul { list-style-type: circle; }
64
- ol { list-style-type: decimal; }
65
- dl { margin: 0 0 1.5em 0; }
66
- dl dt { font-weight: bold; }
67
- dd { margin-left: 1.5em;}
68
-
69
- abbr,
70
- acronym { border-bottom: 1px dotted #666; }
71
- address { margin-top: 1.5em; font-style: italic; }
72
- del { color:#666; }
73
-
74
- a:focus,
75
- a:hover { color: #000; }
76
- a { color: #009; text-decoration: underline; }
77
-
78
- blockquote { margin: 1.5em; color: #666; font-style: italic; }
79
- strong { font-weight: bold; }
80
- em,dfn { font-style: italic; background: #ffc; }
81
- dfn { font-weight: bold; }
82
- pre,code { margin: 1.5em 0; white-space: pre; }
83
- pre,code,tt { font: 1em 'andale mono', 'monotype.com', 'lucida console', monospace; line-height: 1.5; }
84
- tt { display: block; margin: 1.5em 0; line-height: 1.5; }
85
-
86
-
87
- /* Tables
88
- -------------------------------------------------------------- */
89
-
90
- table { margin-bottom: 1.4em; }
91
- th { border-bottom: 2px solid #ccc; font-weight: bold; }
92
- td { border-bottom: 1px solid #ddd; }
93
- th,td { padding: 4px 10px 4px 0; }
94
- tfoot { font-style: italic; }
95
- caption { background: #ffc; }
96
-
97
- /* Use this if you use span-x classes on th/td. */
98
- table .last { padding-right: 0; }
99
-
100
-
101
- /* Some default classes
102
- -------------------------------------------------------------- */
103
-
104
- .small { font-size: .8em; margin-bottom: 1.875em; line-height: 1.875em; }
105
- .large { font-size: 1.2em; line-height: 2.5em; margin-bottom: 1.25em; }
106
- .quiet { color: #666; }
107
-
108
- .hide { display: none; }
109
- .highlight { background:#ff0; }
110
- .added { color:#060; }
111
- .removed { color:#900; }
112
-
113
- .top { margin-top:0; padding-top:0; }
114
- .bottom { margin-bottom:0; padding-bottom:0; }
115
-
116
-
@@ -1,14 +0,0 @@
1
- CSS Development Classes Plugin
2
-
3
- Sets up some classes to use in CSS development
4
-
5
- This is an experimental plugin, and the tools it provides
6
- are not exactly semantically correct, so use with care,
7
- and preferably only in development. :)
8
-
9
-
10
- Usage
11
- ----------------------------------------------------------------
12
-
13
- 1) Add this line to "blueprint/screen.css", and you're done:
14
- @import 'plugins/css-classes/css-classes.css';
@@ -1,24 +0,0 @@
1
- /* --------------------------------------------------------------
2
-
3
- css-classes.css
4
- * Classes for CSS development
5
-
6
- See the Readme file in this directory
7
- for further instructions.
8
-
9
- -------------------------------------------------------------- */
10
-
11
- .left { float:left; }
12
- .right { float:right; }
13
-
14
- .hide { display:none; }
15
-
16
- .reset-margin { margin:0; }
17
- .reset-padding { padding:0; }
18
- .reset { margin:0; padding:0; }
19
-
20
- .align-justify { text-align:justify; }
21
- .align-left { text-align:left; }
22
- .align-center { text-align:center; }
23
- .align-right { text-align:right; }
24
-
@@ -1,22 +0,0 @@
1
- Fancy Type
2
- * Gives you classes to use if you'd like some
3
- extra fancy typography.
4
-
5
- Credits and instructions are specified above each class
6
- in the fancy-type.css file in this directory.
7
-
8
-
9
- Usage
10
- ----------------------------------------------------------------
11
-
12
- 1) Add this line to "blueprint/screen.css", and you're done:
13
- @import 'plugins/fancy-type/fancy-type-compressed.css';
14
-
15
- Note that this uses the compressed version of the CSS file,
16
- as the original file contains a lot of instructing comments.
17
-
18
- Remember to re-compress (or change) the compressed file
19
- if you make any changes to the original CSS file.
20
-
21
- Here's a pretty good CSS compressor:
22
- http://teenage.cz/acidofil/tools/cssformat.php
@@ -1,5 +0,0 @@
1
- p + p { text-indent:2em; margin-top:-1.5em; }
2
- .alt{color:#666;font-family:"Warnock Pro","Goudy Old Style","Palatino","Book Antiqua",Georgia,serif;font-size:1.2em;line-height:80%;font-style:italic;}
3
- .dquo{margin-left:-.5em;}
4
- p.incr,.incr p{font-size:10px;line-height:1.44em;margin-bottom:1.5em;}
5
- .caps{font-variant:small-caps;letter-spacing:1px;text-transform:lowercase;font-size:1.2em;line-height:1%;font-weight:bold;}
data/tasks/ann.rake DELETED
@@ -1,81 +0,0 @@
1
- # $Id$
2
-
3
- begin
4
- require 'bones/smtp_tls'
5
- rescue LoadError
6
- require 'net/smtp'
7
- end
8
- require 'time'
9
-
10
- namespace :ann do
11
-
12
- # A prerequisites task that all other tasks depend upon
13
- task :prereqs
14
-
15
- file PROJ.ann.file do
16
- ann = PROJ.ann
17
- puts "Generating #{ann.file}"
18
- File.open(ann.file,'w') do |fd|
19
- fd.puts("#{PROJ.name} version #{PROJ.version}")
20
- fd.puts(" by #{Array(PROJ.authors).first}") if PROJ.authors
21
- fd.puts(" #{PROJ.url}") if PROJ.url.valid?
22
- fd.puts(" (the \"#{PROJ.release_name}\" release)") if PROJ.release_name
23
- fd.puts
24
- fd.puts("== DESCRIPTION")
25
- fd.puts
26
- fd.puts(PROJ.description)
27
- fd.puts
28
- fd.puts(PROJ.changes.sub(%r/^.*$/, '== CHANGES'))
29
- fd.puts
30
- ann.paragraphs.each do |p|
31
- fd.puts "== #{p.upcase}"
32
- fd.puts
33
- fd.puts paragraphs_of(PROJ.readme_file, p).join("\n\n")
34
- fd.puts
35
- end
36
- fd.puts ann.text if ann.text
37
- end
38
- end
39
-
40
- desc "Create an announcement file"
41
- task :announcement => ['ann:prereqs', PROJ.ann.file]
42
-
43
- desc "Send an email announcement"
44
- task :email => ['ann:prereqs', PROJ.ann.file] do
45
- ann = PROJ.ann
46
- from = ann.email[:from] || PROJ.email
47
- to = Array(ann.email[:to])
48
-
49
- ### build a mail header for RFC 822
50
- rfc822msg = "From: #{from}\n"
51
- rfc822msg << "To: #{to.join(',')}\n"
52
- rfc822msg << "Subject: [ANN] #{PROJ.name} #{PROJ.version}"
53
- rfc822msg << " (#{PROJ.release_name})" if PROJ.release_name
54
- rfc822msg << "\n"
55
- rfc822msg << "Date: #{Time.new.rfc822}\n"
56
- rfc822msg << "Message-Id: "
57
- rfc822msg << "<#{"%.8f" % Time.now.to_f}@#{ann.email[:domain]}>\n\n"
58
- rfc822msg << File.read(ann.file)
59
-
60
- params = [:server, :port, :domain, :acct, :passwd, :authtype].map do |key|
61
- ann.email[key]
62
- end
63
-
64
- params[3] = PROJ.email if params[3].nil?
65
-
66
- if params[4].nil?
67
- STDOUT.write "Please enter your e-mail password (#{params[3]}): "
68
- params[4] = STDIN.gets.chomp
69
- end
70
-
71
- ### send email
72
- Net::SMTP.start(*params) {|smtp| smtp.sendmail(rfc822msg, from, to)}
73
- end
74
- end # namespace :ann
75
-
76
- desc 'Alias to ann:announcement'
77
- task :ann => 'ann:announcement'
78
-
79
- CLOBBER << PROJ.ann.file
80
-
81
- # EOF
data/tasks/bones.rake DELETED
@@ -1,21 +0,0 @@
1
- # $Id$
2
-
3
- if HAVE_BONES
4
-
5
- namespace :bones do
6
-
7
- desc 'Show the PROJ open struct'
8
- task :debug do |t|
9
- atr = if t.application.top_level_tasks.length == 2
10
- t.application.top_level_tasks.pop
11
- end
12
-
13
- if atr then Bones::Debug.show_attr(PROJ, atr)
14
- else Bones::Debug.show PROJ end
15
- end
16
-
17
- end # namespace :bones
18
-
19
- end # HAVE_BONES
20
-
21
- # EOF
data/tasks/gem.rake DELETED
@@ -1,187 +0,0 @@
1
-
2
- require 'find'
3
- require 'rake/packagetask'
4
- require 'rubygems/user_interaction'
5
- require 'rubygems/builder'
6
-
7
- class Bones::GemPackageTask < Rake::PackageTask
8
- # Ruby GEM spec containing the metadata for this package. The
9
- # name, version and package_files are automatically determined
10
- # from the GEM spec and don't need to be explicitly provided.
11
- #
12
- attr_accessor :gem_spec
13
-
14
- # Create a GEM Package task library. Automatically define the gem
15
- # if a block is given. If no block is supplied, then +define+
16
- # needs to be called to define the task.
17
- #
18
- def initialize(gem_spec)
19
- init(gem_spec)
20
- yield self if block_given?
21
- define if block_given?
22
- end
23
-
24
- # Initialization tasks without the "yield self" or define
25
- # operations.
26
- #
27
- def init(gem)
28
- super(gem.name, gem.version)
29
- @gem_spec = gem
30
- @package_files += gem_spec.files if gem_spec.files
31
- end
32
-
33
- # Create the Rake tasks and actions specified by this
34
- # GemPackageTask. (+define+ is automatically called if a block is
35
- # given to +new+).
36
- #
37
- def define
38
- super
39
- task :prereqs
40
- task :package => ['gem:prereqs', "#{package_dir_path}/#{gem_file}"]
41
- file "#{package_dir_path}/#{gem_file}" => [package_dir_path] + package_files do
42
- when_writing("Creating GEM") {
43
- chdir(package_dir_path) do
44
- Gem::Builder.new(gem_spec).build
45
- verbose(true) {
46
- mv gem_file, "../#{gem_file}"
47
- }
48
- end
49
- }
50
- end
51
- end
52
-
53
- def gem_file
54
- if @gem_spec.platform == Gem::Platform::RUBY
55
- "#{package_name}.gem"
56
- else
57
- "#{package_name}-#{@gem_spec.platform}.gem"
58
- end
59
- end
60
- end # class Bones::GemPackageTask
61
-
62
- namespace :gem do
63
-
64
- PROJ.gem._spec = Gem::Specification.new do |s|
65
- s.name = PROJ.name
66
- s.version = PROJ.version
67
- s.summary = PROJ.summary
68
- s.authors = Array(PROJ.authors)
69
- s.email = PROJ.email
70
- s.homepage = Array(PROJ.url).first
71
- s.rubyforge_project = PROJ.rubyforge.name
72
-
73
- s.description = PROJ.description
74
-
75
- PROJ.gem.dependencies.each do |dep|
76
- s.add_dependency(*dep)
77
- end
78
-
79
- s.files = PROJ.gem.files
80
- s.executables = PROJ.gem.executables.map {|fn| File.basename(fn)}
81
- s.extensions = PROJ.gem.files.grep %r/extconf\.rb$/
82
-
83
- s.bindir = 'bin'
84
- dirs = Dir["{#{PROJ.libs.join(',')}}"]
85
- s.require_paths = dirs unless dirs.empty?
86
-
87
- incl = Regexp.new(PROJ.rdoc.include.join('|'))
88
- excl = PROJ.rdoc.exclude.dup.concat %w[\.rb$ ^(\.\/|\/)?ext]
89
- excl = Regexp.new(excl.join('|'))
90
- rdoc_files = PROJ.gem.files.find_all do |fn|
91
- case fn
92
- when excl; false
93
- when incl; true
94
- else false end
95
- end
96
- s.rdoc_options = PROJ.rdoc.opts + ['--main', PROJ.rdoc.main]
97
- s.extra_rdoc_files = rdoc_files
98
- s.has_rdoc = true
99
-
100
- if test ?f, PROJ.test.file
101
- s.test_file = PROJ.test.file
102
- else
103
- s.test_files = PROJ.test.files.to_a
104
- end
105
-
106
- # Do any extra stuff the user wants
107
- PROJ.gem.extras.each do |msg, val|
108
- case val
109
- when Proc
110
- val.call(s.send(msg))
111
- else
112
- s.send "#{msg}=", val
113
- end
114
- end
115
- end # Gem::Specification.new
116
-
117
- Bones::GemPackageTask.new(PROJ.gem._spec) do |pkg|
118
- pkg.need_tar = PROJ.gem.need_tar
119
- pkg.need_zip = PROJ.gem.need_zip
120
- end
121
-
122
- desc 'Show information about the gem'
123
- task :debug => 'gem:prereqs' do
124
- puts PROJ.gem._spec.to_ruby
125
- end
126
-
127
- desc 'Install the gem'
128
- task :install => [:clobber, 'gem:package'] do
129
- sh "#{SUDO} #{GEM} install --local pkg/#{PROJ.gem._spec.full_name}"
130
-
131
- # use this version of the command for rubygems > 1.0.0
132
- #sh "#{SUDO} #{GEM} install --no-update-sources pkg/#{PROJ.gem._spec.full_name}"
133
- end
134
-
135
- desc 'Uninstall the gem'
136
- task :uninstall do
137
- installed_list = Gem.source_index.find_name(PROJ.name)
138
- if installed_list and installed_list.collect { |s| s.version.to_s}.include?(PROJ.version) then
139
- sh "#{SUDO} #{GEM} uninstall --version '#{PROJ.version}' --ignore-dependencies --executables #{PROJ.name}"
140
- end
141
- end
142
-
143
- desc 'Reinstall the gem'
144
- task :reinstall => [:uninstall, :install]
145
-
146
- desc 'Cleanup the gem'
147
- task :cleanup do
148
- sh "#{SUDO} #{GEM} cleanup #{PROJ.gem._spec.name}"
149
- 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
- end # namespace :gem
173
-
174
-
175
- desc 'Alias to gem:package'
176
- task :gem => ['gem:package', 'gem:mswin32:package']
177
-
178
- task :clobber => ['gem:clobber_package', 'gem:mswin32:clobber_package']
179
-
180
- %w[
181
- gem:clobber_package
182
- gem:mswin32:clobber_package
183
- gem:mswin32:package
184
- gem:mswin32:repackage
185
- ].each {|name| remove_desc_for_task name}
186
-
187
- # EOF