webby 0.9.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. data/History.txt +13 -0
  2. data/Manifest.txt +44 -33
  3. data/Rakefile +2 -2
  4. data/bin/webby +33 -0
  5. data/bin/webby-gen +33 -0
  6. data/examples/presentation/content/presentation/s5/bodybg.gif +0 -0
  7. data/examples/presentation/content/presentation/s5/print.css +25 -1
  8. data/examples/webby/content/release-notes/rel-0-9-3/index.txt +49 -0
  9. data/lib/webby.rb +3 -10
  10. data/lib/webby/apps/generator.rb +41 -48
  11. data/lib/webby/apps/main.rb +22 -0
  12. data/lib/webby/auto_builder.rb +78 -6
  13. data/lib/webby/builder.rb +9 -9
  14. data/lib/webby/core_ext/kernel.rb +5 -0
  15. data/lib/webby/filters/wiki_words.rb +14 -0
  16. data/lib/webby/helpers/url_helper.rb +6 -0
  17. data/lib/webby/journal.rb +126 -0
  18. data/lib/webby/renderer.rb +11 -6
  19. data/lib/webby/resources/meta_file.rb +8 -5
  20. data/lib/webby/stelan/paginator.rb +2 -2
  21. data/lib/webby/tasks/growl.rake +4 -3
  22. data/spec/data/outline/basic.out +81 -0
  23. data/spec/data/outline/basic.txt +25 -0
  24. data/spec/data/outline/no_clobber.out +86 -0
  25. data/spec/data/outline/numbering.out +81 -0
  26. data/spec/data/outline/numbering_only.out +21 -0
  27. data/spec/data/outline/toc_range_1.out +66 -0
  28. data/spec/data/outline/toc_range_2.out +55 -0
  29. data/spec/data/outline/toc_style.out +81 -0
  30. data/spec/data/{Sitefile → site/Sitefile} +0 -0
  31. data/spec/data/{content → site/content}/_partial.txt +0 -0
  32. data/spec/data/{content → site/content}/css/coderay.css +0 -0
  33. data/spec/data/{content → site/content}/css/site.css +0 -0
  34. data/spec/data/{content → site/content}/css/tumblog.css +0 -0
  35. data/spec/data/{content → site/content}/images/tumblog/permalink.gif +0 -0
  36. data/spec/data/{content → site/content}/images/tumblog/rss.gif +0 -0
  37. data/spec/data/{content → site/content}/index.txt +0 -0
  38. data/spec/data/{content → site/content}/photos.txt +0 -0
  39. data/spec/data/{content → site/content}/tumblog/200806/the-noble-chicken/index.txt +0 -0
  40. data/spec/data/{content → site/content}/tumblog/200807/historical-perspectives-on-the-classic-chicken-joke/index.txt +0 -0
  41. data/spec/data/{content → site/content}/tumblog/200807/mad-city-chickens/index.txt +0 -0
  42. data/spec/data/{content → site/content}/tumblog/200807/the-wisdom-of-the-dutch/index.txt +0 -0
  43. data/spec/data/{content → site/content}/tumblog/200807/up-a-tree/index.txt +0 -0
  44. data/spec/data/{content → site/content}/tumblog/index.txt +0 -0
  45. data/spec/data/{content → site/content}/tumblog/rss.txt +0 -0
  46. data/spec/data/{layouts → site/layouts}/default.txt +0 -0
  47. data/spec/data/{layouts → site/layouts}/tumblog/default.txt +0 -0
  48. data/spec/data/{layouts → site/layouts}/tumblog/post.txt +0 -0
  49. data/spec/data/{lib → site/lib}/breadcrumbs.rb +0 -0
  50. data/spec/data/{lib → site/lib}/tumblog_helper.rb +0 -0
  51. data/spec/data/{tasks → site/tasks}/tumblog.rake +0 -0
  52. data/spec/data/{templates → site/templates}/_partial.erb +0 -0
  53. data/spec/data/{templates → site/templates}/atom_feed.erb +0 -0
  54. data/spec/data/{templates → site/templates}/page.erb +0 -0
  55. data/{examples/website → spec/data/site}/templates/presentation.erb +0 -0
  56. data/spec/data/{templates → site/templates}/tumblog/conversation.erb +0 -0
  57. data/spec/data/{templates → site/templates}/tumblog/link.erb +0 -0
  58. data/spec/data/{templates → site/templates}/tumblog/photo.erb +0 -0
  59. data/spec/data/{templates → site/templates}/tumblog/post.erb +0 -0
  60. data/spec/data/{templates → site/templates}/tumblog/quote.erb +0 -0
  61. data/spec/spec_helper.rb +4 -4
  62. data/spec/webby/apps/generator_spec.rb +3 -2
  63. data/spec/webby/filters/basepath_spec.rb +167 -0
  64. data/spec/webby/filters/outline_spec.rb +92 -0
  65. data/spec/webby/renderer_spec.rb +1 -1
  66. data/spec/webby/resources/db_spec.rb +1 -1
  67. data/spec/webby/resources/layout_spec.rb +1 -1
  68. data/spec/webby/resources/meta_file_spec.rb +27 -13
  69. data/spec/webby/resources/page_spec.rb +1 -1
  70. data/spec/webby/resources/resource_spec.rb +1 -1
  71. data/spec/webby/resources_spec.rb +1 -1
  72. data/tasks/gem.rake +93 -32
  73. data/tasks/manifest.rake +3 -4
  74. data/tasks/rubyforge.rake +2 -4
  75. metadata +67 -56
  76. data/lib/webby/tasks/heel.rake +0 -28
  77. data/spec/data/templates/presentation.erb +0 -40
@@ -1,3 +1,16 @@
1
+ == 0.9.3 / 2008-10-08
2
+
3
+ * 4 minor enhancements
4
+ - Added a "wikiwords" filter to process [[text]] as links to other pages
5
+ (thanks to Paul)
6
+ - Added colorization to the output text (facets gem required)
7
+ - Replaced the Heel webserver with webrick
8
+ - Special windows version with windows line endings in generated files
9
+ * 2 bug fixes
10
+ - Fixed a bug on Windows where line endings were messing with meta-data
11
+ - The paginator was not linking correctly back to the first page from
12
+ subsequent pages in a list
13
+
1
14
  == 0.9.2 / 2008-09-11
2
15
 
3
16
  * 1 bug fix
@@ -64,6 +64,7 @@ examples/webby/content/release-notes/index.txt
64
64
  examples/webby/content/release-notes/rel-0-9-0/index.txt
65
65
  examples/webby/content/release-notes/rel-0-9-1/index.txt
66
66
  examples/webby/content/release-notes/rel-0-9-2/index.txt
67
+ examples/webby/content/release-notes/rel-0-9-3/index.txt
67
68
  examples/webby/content/robots.txt
68
69
  examples/webby/content/script/jquery.corner.js
69
70
  examples/webby/content/script/jquery.js
@@ -103,7 +104,6 @@ examples/website/layouts/default.txt
103
104
  examples/website/lib/breadcrumbs.rb
104
105
  examples/website/templates/_partial.erb
105
106
  examples/website/templates/page.erb
106
- examples/website/templates/presentation.erb
107
107
  lib/webby.rb
108
108
  lib/webby/apps.rb
109
109
  lib/webby/apps/generator.rb
@@ -125,6 +125,7 @@ lib/webby/filters/sass.rb
125
125
  lib/webby/filters/slides.rb
126
126
  lib/webby/filters/textile.rb
127
127
  lib/webby/filters/tidy.rb
128
+ lib/webby/filters/wiki_words.rb
128
129
  lib/webby/helpers.rb
129
130
  lib/webby/helpers/capture_helper.rb
130
131
  lib/webby/helpers/coderay_helper.rb
@@ -133,6 +134,7 @@ lib/webby/helpers/tag_helper.rb
133
134
  lib/webby/helpers/tex_img_helper.rb
134
135
  lib/webby/helpers/ultraviolet_helper.rb
135
136
  lib/webby/helpers/url_helper.rb
137
+ lib/webby/journal.rb
136
138
  lib/webby/link_validator.rb
137
139
  lib/webby/renderer.rb
138
140
  lib/webby/resources.rb
@@ -150,48 +152,57 @@ lib/webby/tasks/build.rake
150
152
  lib/webby/tasks/create.rake
151
153
  lib/webby/tasks/deploy.rake
152
154
  lib/webby/tasks/growl.rake
153
- lib/webby/tasks/heel.rake
154
155
  lib/webby/tasks/validate.rake
155
156
  spec/core_ext/hash_spec.rb
156
157
  spec/core_ext/string_spec.rb
157
158
  spec/core_ext/time_spec.rb
158
- spec/data/Sitefile
159
- spec/data/content/_partial.txt
160
- spec/data/content/css/coderay.css
161
- spec/data/content/css/site.css
162
- spec/data/content/css/tumblog.css
163
- spec/data/content/images/tumblog/permalink.gif
164
- spec/data/content/images/tumblog/rss.gif
165
- spec/data/content/index.txt
166
- spec/data/content/photos.txt
167
- spec/data/content/tumblog/200806/the-noble-chicken/index.txt
168
- spec/data/content/tumblog/200807/historical-perspectives-on-the-classic-chicken-joke/index.txt
169
- spec/data/content/tumblog/200807/mad-city-chickens/index.txt
170
- spec/data/content/tumblog/200807/the-wisdom-of-the-dutch/index.txt
171
- spec/data/content/tumblog/200807/up-a-tree/index.txt
172
- spec/data/content/tumblog/index.txt
173
- spec/data/content/tumblog/rss.txt
174
159
  spec/data/hooligans/bad_meta_data_1.txt
175
160
  spec/data/hooligans/bad_meta_data_2.txt
176
- spec/data/layouts/default.txt
177
- spec/data/layouts/tumblog/default.txt
178
- spec/data/layouts/tumblog/post.txt
179
- spec/data/lib/breadcrumbs.rb
180
- spec/data/lib/tumblog_helper.rb
181
- spec/data/tasks/tumblog.rake
182
- spec/data/templates/_partial.erb
183
- spec/data/templates/atom_feed.erb
184
- spec/data/templates/page.erb
185
- spec/data/templates/presentation.erb
186
- spec/data/templates/tumblog/conversation.erb
187
- spec/data/templates/tumblog/link.erb
188
- spec/data/templates/tumblog/photo.erb
189
- spec/data/templates/tumblog/post.erb
190
- spec/data/templates/tumblog/quote.erb
161
+ spec/data/outline/basic.out
162
+ spec/data/outline/basic.txt
163
+ spec/data/outline/no_clobber.out
164
+ spec/data/outline/numbering.out
165
+ spec/data/outline/numbering_only.out
166
+ spec/data/outline/toc_range_1.out
167
+ spec/data/outline/toc_range_2.out
168
+ spec/data/outline/toc_style.out
169
+ spec/data/site/Sitefile
170
+ spec/data/site/content/_partial.txt
171
+ spec/data/site/content/css/coderay.css
172
+ spec/data/site/content/css/site.css
173
+ spec/data/site/content/css/tumblog.css
174
+ spec/data/site/content/images/tumblog/permalink.gif
175
+ spec/data/site/content/images/tumblog/rss.gif
176
+ spec/data/site/content/index.txt
177
+ spec/data/site/content/photos.txt
178
+ spec/data/site/content/tumblog/200806/the-noble-chicken/index.txt
179
+ spec/data/site/content/tumblog/200807/historical-perspectives-on-the-classic-chicken-joke/index.txt
180
+ spec/data/site/content/tumblog/200807/mad-city-chickens/index.txt
181
+ spec/data/site/content/tumblog/200807/the-wisdom-of-the-dutch/index.txt
182
+ spec/data/site/content/tumblog/200807/up-a-tree/index.txt
183
+ spec/data/site/content/tumblog/index.txt
184
+ spec/data/site/content/tumblog/rss.txt
185
+ spec/data/site/layouts/default.txt
186
+ spec/data/site/layouts/tumblog/default.txt
187
+ spec/data/site/layouts/tumblog/post.txt
188
+ spec/data/site/lib/breadcrumbs.rb
189
+ spec/data/site/lib/tumblog_helper.rb
190
+ spec/data/site/tasks/tumblog.rake
191
+ spec/data/site/templates/_partial.erb
192
+ spec/data/site/templates/atom_feed.erb
193
+ spec/data/site/templates/page.erb
194
+ spec/data/site/templates/presentation.erb
195
+ spec/data/site/templates/tumblog/conversation.erb
196
+ spec/data/site/templates/tumblog/link.erb
197
+ spec/data/site/templates/tumblog/photo.erb
198
+ spec/data/site/templates/tumblog/post.erb
199
+ spec/data/site/templates/tumblog/quote.erb
191
200
  spec/spec.opts
192
201
  spec/spec_helper.rb
193
202
  spec/webby/apps/generator_spec.rb
194
203
  spec/webby/apps/main_spec.rb
204
+ spec/webby/filters/basepath_spec.rb
205
+ spec/webby/filters/outline_spec.rb
195
206
  spec/webby/filters/textile_spec.rb
196
207
  spec/webby/helpers/capture_helper_spec.rb
197
208
  spec/webby/renderer_spec.rb
data/Rakefile CHANGED
@@ -14,7 +14,7 @@ PROJ.url = 'http://webby.rubyforge.org/'
14
14
  PROJ.description = paragraphs_of('README.txt', 3).join("\n\n")
15
15
  PROJ.rubyforge.name = 'webby'
16
16
  PROJ.version = Webby::VERSION
17
- PROJ.release_name = 'Gallus Gallus Toothicus ++'
17
+ PROJ.release_name = 'Bill Gates Alien Love Child'
18
18
 
19
19
  PROJ.ruby_opts = %w[-W0]
20
20
  PROJ.exclude << %w(^examples/[^/]+/output ^tasks/archive ^tags$ ^webby.gemspec$)
@@ -40,8 +40,8 @@ TwP
40
40
  ANN
41
41
 
42
42
  depend_on 'directory_watcher'
43
- depend_on 'heel'
44
43
  depend_on 'hpricot', '= 0.6.0'
44
+ depend_on 'launchy'
45
45
  depend_on 'logging'
46
46
  depend_on 'rake'
47
47
  depend_on 'rspec'
data/bin/webby CHANGED
@@ -1,5 +1,38 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ require 'rubygems'
4
+ require 'logging'
5
+
6
+ ::Logging.configure {
7
+ logger('Webby') {
8
+ level :info
9
+ appenders 'stdout'
10
+ }
11
+
12
+ logger('Webby::Journal') {
13
+ level :info
14
+ additive false
15
+ appenders 'journal'
16
+ }
17
+
18
+ appender('stdout') {
19
+ type 'Stdout'
20
+ layout {
21
+ type 'Pattern'
22
+ pattern "[%d] %5l: %m\n"
23
+ date_pattern "%H:%M:%S"
24
+ }
25
+ }
26
+
27
+ appender('journal') {
28
+ type 'Stdout'
29
+ layout {
30
+ type 'Pattern'
31
+ pattern "%m\n"
32
+ }
33
+ }
34
+ }
35
+
3
36
  require File.expand_path(
4
37
  File.join(File.dirname(__FILE__), %w[.. lib webby]))
5
38
 
@@ -1,5 +1,38 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ require 'rubygems'
4
+ require 'logging'
5
+
6
+ ::Logging.configure {
7
+ logger('Webby') {
8
+ level :info
9
+ appenders 'stdout'
10
+ }
11
+
12
+ logger('Webby::Journal') {
13
+ level :info
14
+ additive false
15
+ appenders 'journal'
16
+ }
17
+
18
+ appender('stdout') {
19
+ type 'Stdout'
20
+ layout {
21
+ type 'Pattern'
22
+ pattern "[%d] %5l: %m\n"
23
+ date_pattern "%H:%M:%S"
24
+ }
25
+ }
26
+
27
+ appender('journal') {
28
+ type 'Stdout'
29
+ layout {
30
+ type 'Pattern'
31
+ pattern "%m\n"
32
+ }
33
+ }
34
+ }
35
+
3
36
  require File.expand_path(
4
37
  File.join(File.dirname(__FILE__), %w[.. lib webby]))
5
38
 
@@ -1 +1,25 @@
1
- /* The following rule is necessary to have all slides appear in print! DO NOT REMOVE IT! */
1
+ /* The following rule is necessary to have all slides appear in print! DO NOT REMOVE IT! */
2
+ .slide, ul {page-break-inside: avoid; visibility: visible !important;}
3
+ h1 {page-break-after: avoid;}
4
+
5
+ body {font-size: 12pt; background: white;}
6
+ * {color: black;}
7
+
8
+ #slide0 h1 {font-size: 200%; border: none; margin: 0.5em 0 0.25em;}
9
+ #slide0 h3 {margin: 0; padding: 0;}
10
+ #slide0 h4 {margin: 0 0 0.5em; padding: 0;}
11
+ #slide0 {margin-bottom: 3em;}
12
+
13
+ h1 {border-top: 2pt solid gray; border-bottom: 1px dotted silver;}
14
+ .extra {background: transparent !important;}
15
+ div.extra, pre.extra, .example {font-size: 10pt; color: #333;}
16
+ ul.extra a {font-weight: bold;}
17
+ p.example {display: none;}
18
+
19
+ #header {display: none;}
20
+ #footer h1 {margin: 0; border-bottom: 1px solid; color: gray; font-style: italic;}
21
+ #footer h2, #controls {display: none;}
22
+
23
+ /* The following rule keeps the layout stuff out of print. Remove at your own risk! */
24
+ .layout, .layout * {display: none !important;}
25
+
@@ -0,0 +1,49 @@
1
+ ---
2
+ title: Release 0.9.3
3
+ created_at: 2008-10-08 21:22:41.217238 -06:00
4
+ filter:
5
+ - erb
6
+ - textile
7
+ release_name: Bill Gates Alien Love Child
8
+ ---
9
+ h2. <%= h(@page.title) %>
10
+
11
+ FIXME
12
+
13
+ Release 0.9.3 adds several new features and fixes a few bugs. The two most significant features are a "wikiwords" filter and a special webby gem for the windows platform. See below for more information.
14
+
15
+ * 4 minor enhancements
16
+ ** Added a "wikiwords" filter to process [[text]] as links to other pages (thanks to Paul)
17
+ ** Added colorization to the output text (facets gem required)
18
+ ** Replaced the Heel webserver with webrick
19
+ ** Special windows version with windows line endings in generated files
20
+ * 2 bug fixes
21
+ ** Fixed a bug on Windows where line endings were messing with meta-data
22
+ ** The paginator was not linking correctly back to the first page from subsequent pages in a list
23
+
24
+ h3. Wiki Words
25
+
26
+ Wiki Words provide a convenient way to link to other pages in a site based on the page titles. Page titles surrounded by double brackets will be converted into a link to that particular page.
27
+
28
+ <pre>
29
+ <%= Webby::YAML_SEP %>
30
+ title: Special Report
31
+ created_at: 2008-10-08 21:22:41.217238 -06:00
32
+ filter:
33
+ - wikiwords
34
+ - textile
35
+ <%= Webby::YAML_SEP %>
36
+ h1. Special Report
37
+
38
+ This page is a special report that links to some [[Other Page]] in the site and
39
+ offers a little more information. You can find out more in the [[Reference]]
40
+ page, too.
41
+ </pre>
42
+
43
+ So, in the example above two links will be generated. One will link to the "Other Page" and the second will link to the "Reference" page.
44
+
45
+ h3. Windows Support
46
+
47
+ This release also fixes a few issues with webby on the windows platform. Both issues concern windows line endings versus UNIX line endings in files. The code that parses meta-data has been updated to be line ending agnostic -- so no need to use UNIX line endings in the windows world.
48
+
49
+ The second issue is a windows specific version of the webby gem. This gem has the template site files converted to the windows line ending style. So when a site is created using the webby-gen command, the resulting files should be in the native windows format.
@@ -7,18 +7,10 @@ require 'logging'
7
7
  require 'ostruct'
8
8
  require 'date'
9
9
 
10
- # Configure Webby to log to STDOUT at the 'info' level
11
- Logging::Logger['Webby'].level = :info
12
- Logging::Logger['Webby'].add_appenders(Logging::Appender.stdout)
13
- Logging::Appender.stdout.layout = Logging::Layouts::Pattern.new(
14
- :pattern => "[%d] %5l: %m\n", # [date] LEVEL: message
15
- :date_pattern => "%H:%M:%S" # date == HH:MM:SS
16
- )
17
-
18
10
  module Webby
19
11
 
20
12
  # :stopdoc:
21
- VERSION = '0.9.2' # :nodoc:
13
+ VERSION = '0.9.3' # :nodoc:
22
14
  LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
23
15
  PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR
24
16
  YAML_SEP = '---'
@@ -51,7 +43,8 @@ module Webby
51
43
  :tumblog_dir => 'tumblog',
52
44
 
53
45
  # Items for running the heel webserver
54
- :heel_port => 4331,
46
+ :use_web_server => true,
47
+ :heel_port => 4331,
55
48
 
56
49
  # Items used to deploy the website
57
50
  :user => ENV['USER'] || ENV['USERNAME'],
@@ -1,5 +1,6 @@
1
1
  require 'fileutils'
2
2
  require 'optparse'
3
+ require 'forwardable'
3
4
 
4
5
  module Webby::Apps
5
6
 
@@ -9,6 +10,7 @@ module Webby::Apps
9
10
  #
10
11
 
11
12
  class Generator
13
+ extend Forwardable
12
14
 
13
15
  # Create a new Generator instance and run the +webby+ application given the
14
16
  # command line _args_.
@@ -22,10 +24,34 @@ class Generator
22
24
 
23
25
  # Initialize a new generator object.
24
26
  #
25
- def initialize
27
+ def initialize( output = $stdout, input = $stdin )
26
28
  @options = {}
27
29
  @site = @template = nil
28
- @stdout, @stdin = $stdout, $stdin
30
+ @output, @input = output, input
31
+ @journal = journal
32
+ end
33
+
34
+ def_delegators :@journal,
35
+ :exists, :create, :force, :skip, :identical
36
+
37
+ # Writes the given objects to the output destination. Each object is
38
+ # followed by a newline unless the object is a string with a newline
39
+ # already at the end.
40
+ #
41
+ def puts( *args )
42
+ @output.puts(*args)
43
+ end
44
+
45
+ # Writes the given objects to the output destination.
46
+ #
47
+ def print( *args )
48
+ @output.print(*args)
49
+ end
50
+
51
+ # Reads a line text frim the input source.
52
+ #
53
+ def gets
54
+ @input.gets
29
55
  end
30
56
 
31
57
  # Run the generator executing the commands specified by the user on the
@@ -60,18 +86,18 @@ class Generator
60
86
  opts.on('-t', '--templates', 'list available templates') {
61
87
  ary = templates.map {|t| ::File.basename(t)}
62
88
  ary.delete 'webby'
63
- @stdout.puts "\nAvailable Templates"
64
- @stdout.puts " #{ary.join(', ')}"
65
- @stdout.puts
89
+ puts "\nAvailable Templates"
90
+ puts " #{ary.join(', ')}"
91
+ puts
66
92
  exit
67
93
  }
68
94
 
69
95
  opts.separator ''
70
96
  opts.separator 'common options:'
71
97
 
72
- opts.on( '-h', '--help', 'show this message' ) {@stdout.puts opts; exit}
98
+ opts.on( '-h', '--help', 'show this message' ) {puts opts; exit}
73
99
  opts.on( '--version', 'show version' ) do
74
- @stdout.puts "Webby #{::Webby::VERSION}"
100
+ puts "Webby #{::Webby::VERSION}"
75
101
  exit
76
102
  end
77
103
 
@@ -87,13 +113,13 @@ class Generator
87
113
 
88
114
  # exit if comand line args are missing
89
115
  if site.nil? or tmpl.nil?
90
- @stdout.puts opts
116
+ puts opts
91
117
  exit 1
92
118
  end
93
119
 
94
120
  templates.each {|t| self.template = t if t =~ %r/\/#{tmpl}$/}
95
121
  if template.nil?
96
- @stdout.puts opts
122
+ puts opts
97
123
  abort "Could not find template '#{tmpl}'"
98
124
  end
99
125
 
@@ -184,46 +210,16 @@ class Generator
184
210
  end
185
211
  return if pretend?
186
212
 
187
- if WINDOWS then win_line_endings(src, dst)
188
- else FileUtils.cp(src, dst) end
189
- end
190
-
191
- # Copy the file from the _src_ location to the _dst_ location and
192
- # transform the line endings to the windows "\r\n" format.
193
- #
194
- def win_line_endings( src, dst )
195
- case ::File.extname(src)
196
- when *%w[.png .gif .jpg .jpeg]
197
- FileUtils.cp src, dst
198
- else
199
- ::File.open(dst,'w') do |fd|
200
- ::File.foreach(src, "\n") do |line|
201
- line.tr!("\r\n",'')
202
- fd.puts line
203
- end
204
- end
205
- end
206
- end
207
-
208
- %w[exists create force skip identical].each do |m|
209
- class_eval "def #{m}( msg ) message('#{m}', msg); end"
210
- end
211
-
212
- # Print the given message and message type to stdout.
213
- #
214
- def message( type, msg )
215
- msg = msg.sub(%r/#{site}\/?/, '')
216
- return if msg.empty?
217
- @stdout.puts "%13s %s" % [type, msg]
213
+ FileUtils.cp(src, dst)
218
214
  end
219
215
 
220
216
  # Prints an abort message to the screen and then exits the Ruby
221
217
  # interpreter. A non-zero return code is used to indicate an error.
222
218
  #
223
219
  def abort( msg )
224
- @stdout.puts "\nAborting!"
225
- @stdout.puts " #{msg}"
226
- @stdout.puts
220
+ puts "\nAborting!"
221
+ puts " #{msg}"
222
+ puts
227
223
  exit 1
228
224
  end
229
225
 
@@ -254,8 +250,6 @@ class Generator
254
250
  # Returns +false+ if this is not the case.
255
251
  #
256
252
  def identical?( src, dst )
257
- # FIXME: this most likely won't work on windows machines
258
- # because the line endings are modified when the site is gnerated
259
253
  source = IO.read(src)
260
254
  destination = IO.read(dst)
261
255
  source == destination
@@ -265,9 +259,8 @@ class Generator
265
259
  #
266
260
  def force_file_collision?( dst )
267
261
  dst = dst.sub(%r/#{site}\/?/, '')
268
- @stdout.print "overwrite #{dst}? [(Y)es (n)o (q)uit] "
269
- @stdout.flush
270
- case @stdin.gets
262
+ print "overwrite #{dst}? [(Y)es (n)o (q)uit] "
263
+ case gets
271
264
  when %r/q/i then abort 'user asked to quit'
272
265
  when %r/n/i then :skip
273
266
  when %r/y/i then :force