lib/massive_sitemap/builder/rotating.rb in massive_sitemap-2.0.0.rc4 vs lib/massive_sitemap/builder/rotating.rb in massive_sitemap-2.0.0.rc5
- old
+ new
@@ -1,7 +1,6 @@
require "massive_sitemap/builder/base"
-# writer only has print and puts as interface
module MassiveSitemap
module Builder
class Rotating < Base
NUM_URLS = 1..50_000
@@ -9,44 +8,21 @@
OPTS = Base::OPTS.merge(
:max_urls => NUM_URLS.max
)
def initialize(writer, options = {}, &block)
- @rotations = 0
@urls = 0
super
end
- # On rotation, close current file, and reopen a new one
- # with same file name but -<counter> appendend
- def init!(&block)
- unless @writer.inited?
- @urls = 0
- filename = filename_with_rotation(@writer.options[:filename], @rotations)
- @rotations += 1
- @writer.init! :filename => filename
- header!(&block)
- end
- end
-
def add_url!(location, attrs = {})
if @urls >= @options[:max_urls]
close!
+ @urls = 0
end
super
@urls += 1
- end
-
- private
- def filename_with_rotation(filename, rotation = nil)
- filename, _, ext = split_filename(filename)
- rotation = (rotation.to_i > 0) ? "-#{rotation}" : nil
- [filename, rotation, ext].join
- end
-
- def split_filename(filename)
- filename.to_s.scan(/^([^.]*?)(-[0-9]+)?(\..+)?$/).flatten
end
end
end
end