webby 0.8.4 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (165) hide show
  1. data/History.txt +19 -0
  2. data/Manifest.txt +104 -91
  3. data/README.txt +27 -45
  4. data/Rakefile +4 -5
  5. data/bin/webby +2 -1
  6. data/bin/webby-gen +8 -0
  7. data/{data/Rakefile → examples/blog/Sitefile} +0 -2
  8. data/examples/{webby → blog}/tasks/blog.rake +5 -4
  9. data/{data → examples/blog}/templates/atom_feed.erb +10 -11
  10. data/{data → examples/blog}/templates/blog/month.erb +1 -1
  11. data/{data → examples/blog}/templates/blog/post.erb +1 -0
  12. data/{data → examples/blog}/templates/blog/year.erb +1 -1
  13. data/examples/presentation/{Rakefile → Sitefile} +0 -4
  14. data/examples/presentation/content/{_sample_code.txt → presentation/_sample_code.txt} +0 -0
  15. data/examples/presentation/content/{index.txt → presentation/index.txt} +0 -0
  16. data/{data/content → examples/presentation/content/presentation}/s5/blank.gif +0 -0
  17. data/{data/content → examples/presentation/content/presentation}/s5/bodybg.gif +0 -0
  18. data/{data/content → examples/presentation/content/presentation}/s5/framing.css +0 -0
  19. data/{data/content → examples/presentation/content/presentation}/s5/iepngfix.htc +0 -0
  20. data/{data/content → examples/presentation/content/presentation}/s5/opera.css +0 -0
  21. data/{data/content → examples/presentation/content/presentation}/s5/outline.css +0 -0
  22. data/{data/content → examples/presentation/content/presentation}/s5/pretty.css +0 -0
  23. data/{data/content → examples/presentation/content/presentation}/s5/print.css +0 -0
  24. data/{data/content → examples/presentation/content/presentation}/s5/s5-core.css +0 -0
  25. data/{data/content → examples/presentation/content/presentation}/s5/slides.css +0 -0
  26. data/{data/content → examples/presentation/content/presentation}/s5/slides.js +0 -0
  27. data/examples/presentation/layouts/{presentation.rhtml → presentation.txt} +3 -3
  28. data/examples/presentation/templates/{_partial.erb → _code_partial.erb} +0 -0
  29. data/examples/tumblog/Sitefile +9 -0
  30. data/examples/tumblog/content/css/tumblog.css +308 -0
  31. data/examples/tumblog/content/images/tumblog/permalink.gif +0 -0
  32. data/examples/tumblog/content/images/tumblog/rss.gif +0 -0
  33. data/examples/tumblog/content/tumblog/200806/the-noble-chicken/index.txt +12 -0
  34. data/examples/tumblog/content/tumblog/200807/historical-perspectives-on-the-classic-chicken-joke/index.txt +12 -0
  35. data/examples/tumblog/content/tumblog/200807/mad-city-chickens/index.txt +10 -0
  36. data/examples/tumblog/content/tumblog/200807/the-wisdom-of-the-dutch/index.txt +11 -0
  37. data/examples/tumblog/content/tumblog/200807/up-a-tree/index.txt +13 -0
  38. data/examples/tumblog/content/tumblog/index.txt +37 -0
  39. data/examples/tumblog/content/tumblog/rss.txt +37 -0
  40. data/examples/tumblog/layouts/tumblog/default.txt +44 -0
  41. data/examples/tumblog/layouts/tumblog/post.txt +15 -0
  42. data/examples/tumblog/lib/tumblog_helper.rb +32 -0
  43. data/examples/tumblog/tasks/tumblog.rake +30 -0
  44. data/examples/tumblog/templates/atom_feed.erb +40 -0
  45. data/examples/tumblog/templates/tumblog/conversation.erb +12 -0
  46. data/examples/tumblog/templates/tumblog/link.erb +10 -0
  47. data/examples/tumblog/templates/tumblog/photo.erb +13 -0
  48. data/examples/tumblog/templates/tumblog/post.erb +12 -0
  49. data/examples/tumblog/templates/tumblog/quote.erb +11 -0
  50. data/examples/webby/{Rakefile → Sitefile} +2 -2
  51. data/examples/webby/content/communicate/index.txt +28 -0
  52. data/examples/webby/content/css/background.gif +0 -0
  53. data/examples/webby/content/css/site.css +52 -20
  54. data/examples/webby/content/index.txt +7 -8
  55. data/examples/webby/content/learn/index.txt +28 -0
  56. data/examples/webby/content/reference/index.txt +3 -1
  57. data/examples/webby/content/release-notes/rel-0-9-0/index.txt +73 -0
  58. data/examples/webby/content/sitemap.txt +31 -0
  59. data/examples/webby/content/tips_and_tricks/index.txt +1 -1
  60. data/examples/webby/content/tutorial/index.txt +17 -17
  61. data/examples/webby/content/{manual → user-manual}/index.txt +53 -50
  62. data/examples/webby/layouts/{default.rhtml → default.txt} +8 -15
  63. data/examples/webby/templates/page.erb +1 -1
  64. data/examples/website/Sitefile +7 -0
  65. data/{data → examples/website}/content/css/blueprint/License.txt +0 -0
  66. data/{data → examples/website}/content/css/blueprint/Readme.txt +0 -0
  67. data/{data → examples/website}/content/css/blueprint/compressed/print.css +0 -0
  68. data/{data → examples/website}/content/css/blueprint/compressed/screen.css +0 -0
  69. data/{data → examples/website}/content/css/blueprint/lib/forms.css +0 -0
  70. data/{data → examples/website}/content/css/blueprint/lib/grid.css +0 -0
  71. data/{data → examples/website}/content/css/blueprint/lib/grid.png +0 -0
  72. data/{data → examples/website}/content/css/blueprint/lib/ie.css +0 -0
  73. data/{data → examples/website}/content/css/blueprint/lib/reset.css +0 -0
  74. data/{data → examples/website}/content/css/blueprint/lib/typography.css +0 -0
  75. data/{data → examples/website}/content/css/blueprint/plugins/buttons/Readme +0 -0
  76. data/{data → examples/website}/content/css/blueprint/plugins/buttons/buttons.css +0 -0
  77. data/{data → examples/website}/content/css/blueprint/plugins/buttons/icons/cross.png +0 -0
  78. data/{data → examples/website}/content/css/blueprint/plugins/buttons/icons/key.png +0 -0
  79. data/{data → examples/website}/content/css/blueprint/plugins/buttons/icons/tick.png +0 -0
  80. data/{data → examples/website}/content/css/blueprint/plugins/css-classes/Readme +0 -0
  81. data/{data → examples/website}/content/css/blueprint/plugins/css-classes/css-classes.css +0 -0
  82. data/{data → examples/website}/content/css/blueprint/plugins/fancy-type/Readme +0 -0
  83. data/{data → examples/website}/content/css/blueprint/plugins/fancy-type/fancy-type-compressed.css +0 -0
  84. data/{data → examples/website}/content/css/blueprint/plugins/fancy-type/fancy-type.css +0 -0
  85. data/{data → examples/website}/content/css/blueprint/print.css +0 -0
  86. data/{data → examples/website}/content/css/blueprint/screen.css +0 -0
  87. data/{data → examples/website}/content/css/coderay.css +0 -0
  88. data/{data → examples/website}/content/css/site.css +0 -0
  89. data/{data → examples/website}/content/index.txt +2 -1
  90. data/{data/layouts/default.rhtml → examples/website/layouts/default.txt} +1 -1
  91. data/{data → examples/website}/lib/breadcrumbs.rb +0 -0
  92. data/{data → examples/website}/templates/_partial.erb +0 -0
  93. data/{data → examples/website}/templates/page.erb +0 -0
  94. data/{data → examples/website}/templates/presentation.erb +0 -0
  95. data/lib/webby/apps/generator.rb +283 -0
  96. data/lib/webby/apps/main.rb +221 -0
  97. data/lib/webby/apps.rb +12 -0
  98. data/lib/webby/builder.rb +8 -10
  99. data/lib/webby/core_ext/enumerable.rb +11 -0
  100. data/lib/webby/{utils.rb → core_ext/hash.rb} +2 -26
  101. data/lib/webby/core_ext/kernel.rb +21 -0
  102. data/lib/webby/core_ext/string.rb +163 -0
  103. data/lib/webby/core_ext/time.rb +9 -0
  104. data/lib/webby/filters/haml.rb +13 -5
  105. data/lib/webby/filters/markdown.rb +12 -4
  106. data/lib/webby/filters/outline.rb +3 -2
  107. data/lib/webby/filters/sass.rb +12 -4
  108. data/lib/webby/filters/textile.rb +12 -4
  109. data/lib/webby/filters/tidy.rb +10 -8
  110. data/lib/webby/filters.rb +2 -0
  111. data/lib/webby/helpers/graphviz_helper.rb +1 -2
  112. data/lib/webby/helpers/tex_img_helper.rb +6 -10
  113. data/lib/webby/renderer.rb +5 -3
  114. data/lib/webby/resources/layout.rb +1 -1
  115. data/lib/webby/resources/page.rb +1 -1
  116. data/lib/webby/resources/resource.rb +13 -3
  117. data/lib/webby/resources.rb +16 -0
  118. data/{data → lib/webby}/tasks/build.rake +0 -0
  119. data/{examples/presentation → lib/webby}/tasks/create.rake +1 -1
  120. data/{data → lib/webby}/tasks/deploy.rake +0 -0
  121. data/{examples → lib}/webby/tasks/growl.rake +4 -1
  122. data/{data → lib/webby}/tasks/heel.rake +0 -0
  123. data/{data → lib/webby}/tasks/validate.rake +0 -0
  124. data/lib/webby.rb +11 -5
  125. data/spec/core_ext/hash_spec.rb +47 -0
  126. data/spec/core_ext/string_spec.rb +110 -0
  127. data/spec/core_ext/time_spec.rb +19 -0
  128. data/spec/webby/apps/generator_spec.rb +111 -0
  129. data/spec/webby/apps/main_spec.rb +75 -0
  130. data/spec/webby/helpers/capture_helper_spec.rb +1 -1
  131. data/spec/webby/resources_spec.rb +17 -0
  132. data/tasks/gem.rake +10 -2
  133. data/tasks/git.rake +41 -0
  134. data/tasks/rubyforge.rake +2 -2
  135. data/tasks/website.rake +38 -38
  136. metadata +125 -98
  137. data/data/tasks/blog.rake +0 -71
  138. data/data/tasks/create.rake +0 -22
  139. data/data/tasks/growl.rake +0 -12
  140. data/data/tasks/setup.rb +0 -17
  141. data/examples/presentation/content/s5/blank.gif +0 -0
  142. data/examples/presentation/content/s5/bodybg.gif +0 -0
  143. data/examples/presentation/content/s5/framing.css +0 -23
  144. data/examples/presentation/content/s5/iepngfix.htc +0 -42
  145. data/examples/presentation/content/s5/opera.css +0 -7
  146. data/examples/presentation/content/s5/outline.css +0 -15
  147. data/examples/presentation/content/s5/pretty.css +0 -86
  148. data/examples/presentation/content/s5/print.css +0 -1
  149. data/examples/presentation/content/s5/s5-core.css +0 -9
  150. data/examples/presentation/content/s5/slides.css +0 -3
  151. data/examples/presentation/content/s5/slides.js +0 -553
  152. data/examples/presentation/tasks/blog.rake +0 -71
  153. data/examples/presentation/tasks/build.rake +0 -27
  154. data/examples/presentation/tasks/deploy.rake +0 -22
  155. data/examples/presentation/tasks/growl.rake +0 -12
  156. data/examples/presentation/tasks/heel.rake +0 -28
  157. data/examples/presentation/tasks/setup.rb +0 -17
  158. data/examples/presentation/tasks/validate.rake +0 -19
  159. data/examples/webby/tasks/build.rake +0 -27
  160. data/examples/webby/tasks/create.rake +0 -22
  161. data/examples/webby/tasks/deploy.rake +0 -22
  162. data/examples/webby/tasks/heel.rake +0 -28
  163. data/examples/webby/tasks/setup.rb +0 -17
  164. data/examples/webby/tasks/validate.rake +0 -19
  165. data/lib/webby/main.rb +0 -227
@@ -1,28 +0,0 @@
1
-
2
- namespace :heel do
3
-
4
- desc 'Start the heel server to view website (not for Windows)'
5
- task :start do
6
- sh "heel --root #{SITE.output_dir} --port #{SITE.heel_port} --daemonize"
7
- end
8
-
9
- desc 'Stop the heel server'
10
- task :stop do
11
- sh "heel --kill"
12
- end
13
-
14
- task :autorun do
15
- heel_exe = File.join(Gem.bindir, 'heel')
16
- @heel_spawner = Spawner.new(Spawner.ruby, heel_exe, '--root', SITE.output_dir, '--port', SITE.heel_port.to_s, :pause => 86_400)
17
- @heel_spawner.start
18
- end
19
-
20
- task :autobuild => :autorun do
21
- at_exit {@heel_spawner.stop if defined? @heel_spawner and not @heel_spawner.nil?}
22
- end
23
-
24
- end
25
-
26
- task :autobuild => 'heel:autobuild'
27
-
28
- # EOF
@@ -1,17 +0,0 @@
1
-
2
- begin
3
- require 'webby'
4
- rescue LoadError
5
- require 'rubygems'
6
- require 'webby'
7
- end
8
-
9
- SITE = Webby.site
10
-
11
- # Load the other rake files in the tasks folder
12
- Dir.glob(::File.join(%w[tasks *.rake])).sort.each {|fn| import fn}
13
-
14
- # Load all the ruby files in the lib folder
15
- Dir.glob(::File.join(%w[lib ** *.rb])).sort.each {|fn| require fn}
16
-
17
- # EOF
@@ -1,19 +0,0 @@
1
-
2
- namespace :validate do
3
-
4
- desc 'Validate hyperlinks (exclude exteranl sites)'
5
- task :internal => :build do
6
- Webby::LinkValidator.validate(:external => false)
7
- end
8
-
9
- desc 'Validate hyperlinks (include external sites)'
10
- task :external => :build do
11
- Webby::LinkValidator.validate(:external => true)
12
- end
13
-
14
- end # validate
15
-
16
- desc 'Alias to validate:internal'
17
- task :validate => 'validate:internal'
18
-
19
- # EOF
@@ -1,27 +0,0 @@
1
-
2
- task :configure_basepath do
3
- Webby.site.base = ENV['BASE'] if ENV.has_key?('BASE')
4
- end
5
-
6
- desc "Build the website"
7
- task :build => :configure_basepath do |t|
8
- Webby::Builder.run
9
- end
10
-
11
- desc "Rebuild the website"
12
- task :rebuild => :configure_basepath do |t|
13
- Webby::Builder.run :rebuild => true
14
- end
15
-
16
- desc "Continuously build the website"
17
- task :autobuild => :configure_basepath do |t|
18
- Webby::AutoBuilder.run
19
- end
20
-
21
- desc "Delete the website"
22
- task :clobber do |t|
23
- rm_rf Webby.site.output_dir
24
- mkdir Webby.site.output_dir
25
- end
26
-
27
- # EOF
@@ -1,22 +0,0 @@
1
-
2
- namespace :create do
3
-
4
- FileList["#{Webby.site.template_dir}/*"].each do |template|
5
- next unless test(?f, template)
6
- name = template.pathmap '%n'
7
-
8
- # if the file is a partial template
9
- name = $1 if name =~ %r/^_(.*)/
10
-
11
- desc "Create a new #{name}"
12
- task name do |t|
13
- page, title, dir = Webby::Builder.new_page_info(t)
14
- page = Webby::Builder.create(page, :from => template,
15
- :locals => {:title => title, :directory => dir})
16
- exec(::Webby.editor, page) unless ::Webby.editor.nil?
17
- end
18
- end # each
19
-
20
- end # namespace :create
21
-
22
- # EOF
@@ -1,22 +0,0 @@
1
-
2
- require 'rake/contrib/sshpublisher'
3
-
4
- namespace :deploy do
5
-
6
- desc 'Deploy to the server using rsync'
7
- task :rsync do
8
- cmd = "rsync #{SITE.rsync_args.join(' ')} "
9
- cmd << "#{SITE.output_dir}/ #{SITE.user}@#{SITE.host}:#{SITE.remote_dir}"
10
- sh cmd
11
- end
12
-
13
- desc 'Deploy to the server using ssh'
14
- task :ssh do
15
- Rake::SshDirPublisher.new(
16
- "#{SITE.user}@#{SITE.host}", SITE.remote_dir, SITE.output_dir
17
- ).upload
18
- end
19
-
20
- end # deploy
21
-
22
- # EOF
@@ -1,28 +0,0 @@
1
-
2
- namespace :heel do
3
-
4
- desc 'Start the heel server to view website (not for Windows)'
5
- task :start do
6
- sh "heel --root #{SITE.output_dir} --port #{SITE.heel_port} --daemonize"
7
- end
8
-
9
- desc 'Stop the heel server'
10
- task :stop do
11
- sh "heel --kill"
12
- end
13
-
14
- task :autorun do
15
- heel_exe = File.join(Gem.bindir, 'heel')
16
- @heel_spawner = Spawner.new(Spawner.ruby, heel_exe, '--root', SITE.output_dir, '--port', SITE.heel_port.to_s, :pause => 86_400)
17
- @heel_spawner.start
18
- end
19
-
20
- task :autobuild => :autorun do
21
- at_exit {@heel_spawner.stop if defined? @heel_spawner and not @heel_spawner.nil?}
22
- end
23
-
24
- end
25
-
26
- task :autobuild => 'heel:autobuild'
27
-
28
- # EOF
@@ -1,17 +0,0 @@
1
-
2
- begin
3
- require 'webby'
4
- rescue LoadError
5
- require 'rubygems'
6
- require 'webby'
7
- end
8
-
9
- SITE = Webby.site
10
-
11
- # Load the other rake files in the tasks folder
12
- Dir.glob(::File.join(%w[tasks *.rake])).sort.each {|fn| import fn}
13
-
14
- # Load all the ruby files in the lib folder
15
- Dir.glob(::File.join(%w[lib ** *.rb])).sort.each {|fn| require fn}
16
-
17
- # EOF
@@ -1,19 +0,0 @@
1
-
2
- namespace :validate do
3
-
4
- desc 'Validate hyperlinks (exclude exteranl sites)'
5
- task :internal => :build do
6
- Webby::LinkValidator.validate(:external => false)
7
- end
8
-
9
- desc 'Validate hyperlinks (include external sites)'
10
- task :external => :build do
11
- Webby::LinkValidator.validate(:external => true)
12
- end
13
-
14
- end # validate
15
-
16
- desc 'Alias to validate:internal'
17
- task :validate => 'validate:internal'
18
-
19
- # EOF
data/lib/webby/main.rb DELETED
@@ -1,227 +0,0 @@
1
- require 'fileutils'
2
- require 'find'
3
- require 'optparse'
4
-
5
- module Webby
6
-
7
- # The Webby::Main class contains all the functionality needed by the +webby+
8
- # command line application.
9
- #
10
- class Main
11
-
12
- WINDOWS = %r/djgpp|(cyg|ms|bcc)win|mingw/ =~ RUBY_PLATFORM # :nodoc:
13
-
14
- # Directory where the Webby website will be created
15
- attr_accessor :site
16
-
17
- # Directory where the prototype Webby website can be found
18
- attr_accessor :data
19
-
20
- # Flag used to update an existing website
21
- attr_accessor :update
22
-
23
- # call-seq:
24
- # Main.run( args ) => nil
25
- #
26
- # Create a new instance of Main, and run the +webby+ application given the
27
- # command line _args_.
28
- #
29
- def self.run( args )
30
- m = self.new
31
- m.parse args
32
-
33
- if m.update then m.update_site
34
- else m.create_site end
35
- end
36
-
37
- # call-seq:
38
- # Main.new
39
- #
40
- # Create a new Main webby object for building websites.
41
- #
42
- def initialize
43
- @log = Logging::Logger[self]
44
- end
45
-
46
- # call-seq:
47
- # parse( args ) => nil
48
- #
49
- # Parse the command line arguments and store the values for later use by
50
- # the create_site and update_site methods.
51
- #
52
- def parse( args )
53
- self.data = File.join(::Webby::PATH, 'data')
54
- self.update = false
55
-
56
- opts = OptionParser.new
57
- opts.banner << ' site'
58
-
59
- opts.separator ''
60
- opts.on('-u', '--update',
61
- 'update the rake tasks for the site') {self.update = true}
62
-
63
- opts.separator ''
64
- opts.separator 'common options:'
65
-
66
- opts.on_tail( '-h', '--help', 'show this message' ) {puts opts; exit}
67
- opts.on_tail( '--version', 'show version' ) do
68
- puts "Webby #{::Webby::VERSION}"
69
- exit
70
- end
71
-
72
- # parse the command line arguments
73
- opts.parse! args
74
- self.site = args.shift
75
-
76
- if site.nil?
77
- puts opts
78
- ::Kernel.abort
79
- end
80
- nil
81
- end
82
-
83
- # call-seq:
84
- # create_site => nil
85
- #
86
- # Create a new website.
87
- #
88
- def create_site
89
- # see if the site already exists
90
- abort "'#{site}' already exists" if test ?e, site
91
-
92
- # copy over files from the data directory
93
- files = site_files
94
-
95
- files.keys.sort.each do |dir|
96
- mkdir dir
97
- files[dir].sort.each {|file| cp file}
98
- end
99
- nil
100
- end
101
-
102
- # call-seq:
103
- # update_site => nil
104
- #
105
- # Update the rake tasks for an existing website.
106
- #
107
- def update_site
108
- # ensure the site already exists
109
- abort "'#{site}' does not exist" unless test ?d, site
110
-
111
- # copy over files from the data/tasks directory
112
- files = site_files
113
-
114
- mkdir 'tasks'
115
- files['tasks'].sort.each {|file| cp file}
116
-
117
- nil
118
- end
119
-
120
- # call-seq:
121
- # mkdir( dir ) => nil
122
- #
123
- # Make a directory in the user specified site location. A message will be
124
- # displayed to the screen indicating tha the directory is being created.
125
- #
126
- def mkdir( dir )
127
- dir = dir.empty? ? site : ::File.join(site, dir)
128
- unless test ?d, dir
129
- creating dir
130
- FileUtils.mkdir_p dir
131
- end
132
- end
133
-
134
- # call-seq:
135
- # cp( file ) => nil
136
- #
137
- # Copy a file from the Webby prototype website location to the user
138
- # specified site location. A message will be displayed to the screen
139
- # indicating tha the file is being created.
140
- #
141
- def cp( file )
142
- src = ::File.join(data, file)
143
- dst = ::File.join(site, file)
144
- test(?e, dst) ? updating(dst) : creating(dst)
145
- # FileUtils.cp(src, dst)
146
- if WINDOWS then win_line_endings(src, dst)
147
- else FileUtils.cp(src, dst) end
148
- end
149
-
150
- # call-seq:
151
- # win_line_endings( src, dst )
152
- #
153
- # Copy the file from the _src_ location to the _dst_ location and
154
- # transform the line endings to the windows "\r\n" format.
155
- #
156
- def win_line_endings( src, dst )
157
- case ::File.extname(src)
158
- when *%w[.png .gif .jpg .jpeg]
159
- FileUtils.cp src, dst
160
- else
161
- ::File.open(dst,'w') do |fd|
162
- ::File.foreach(src, "\n") do |line|
163
- line.tr!("\r\n",'')
164
- fd.puts line
165
- end
166
- end
167
- end
168
- end
169
-
170
- # call-seq:
171
- # creating( msg ) => nil
172
- #
173
- # Prints a "creating _msg_" to the screen.
174
- #
175
- def creating( msg )
176
- @log.info "creating #{msg}"
177
- end
178
-
179
- # call-seq:
180
- # updating( msg ) => nil
181
- #
182
- # Prints a "updating _msg_" to the screen.
183
- #
184
- def updating( msg )
185
- @log.info "updating #{msg}"
186
- end
187
-
188
- # call-seq:
189
- # abort( msg ) => nil
190
- #
191
- # Prints an abort _msg_ to the screen and then exits the Ruby interpreter.
192
- #
193
- def abort( msg )
194
- @log.fatal msg
195
- exit 1
196
- end
197
-
198
- # call-seq:
199
- # site_files => hash
200
- #
201
- # Iterates over all the files in the Webby prototype website directory and
202
- # stores them in a hash.
203
- #
204
- def site_files
205
- exclude = %r/tmp$|bak$|~$|CVS|\.svn/o
206
-
207
- rgxp = %r/\A#{data}\/?/o
208
- paths = Hash.new {|h,k| h[k] = []}
209
-
210
- Find.find(data) do |p|
211
- next if exclude =~ p
212
-
213
- if test(?d, p)
214
- paths[p.sub(rgxp, '')]
215
- next
216
- end
217
- dir = ::File.dirname(p).sub(rgxp, '')
218
- paths[dir] << p.sub(rgxp, '')
219
- end
220
-
221
- paths
222
- end
223
-
224
- end # class Main
225
- end # module Webby
226
-
227
- # EOF