Skip to content

Commit

Permalink
Deprecated methods from v1.0.0 now removed
Browse files Browse the repository at this point in the history
  • Loading branch information
alexrabarts committed Feb 6, 2013
1 parent 512e221 commit d627720
Showing 1 changed file with 0 additions and 146 deletions.
146 changes: 0 additions & 146 deletions lib/big_sitemap.rb
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
class BigSitemap class BigSitemap
DEFAULTS = { DEFAULTS = {
:max_per_sitemap => Builder::MAX_URLS, :max_per_sitemap => Builder::MAX_URLS,
:batch_size => 1001, # TODO: Deprecate
:document_path => '/', :document_path => '/',
:gzip => true, :gzip => true,


Expand All @@ -18,12 +17,6 @@ class BigSitemap
:ping_yandex => false :ping_yandex => false
} }


# TODO: Deprecate
COUNT_METHODS = [:count_for_sitemap, :count]
FIND_METHODS = [:find_for_sitemap, :all]
TIMESTAMP_METHODS = [:updated_at, :updated_on, :updated, :created_at, :created_on, :created]
PARAM_METHODS = [:to_param, :id]

class << self class << self
def generate(options={}, &block) def generate(options={}, &block)
@sitemap = self.new(options) @sitemap = self.new(options)
Expand Down Expand Up @@ -159,15 +152,8 @@ def clean
def generate(options={}) def generate(options={})
clean unless options[:partial_update] clean unless options[:partial_update]


# TODO: Ddeprecate
prepare_update

add_urls add_urls


# TODO: Deprecate
generate_models
generate_static

generate_sitemap_index generate_sitemap_index


ping_search_engines ping_search_engines
Expand Down Expand Up @@ -237,135 +223,8 @@ def ping_search_engines
end end
end end


# TODO: Deprecate
def get_last_id(filename)
Dir["#{filename}*.{xml,xml.gz}"].map do |file|
file.to_s.scan(/#{filename}_(.+).xml/).flatten.last.to_i
end.sort.last
end

private private


# TODO: Deprecate
def table_name(model)
model.table_name
end

# TODO: Deprecate
def generate_models
for model, options in @sources
with_sitemap(options.dup.merge({:name => model})) do |sitemap|
last_id = nil #id of last processed item
count_method = pick_method(model, COUNT_METHODS)
find_method = pick_method(model, FIND_METHODS)
raise ArgumentError, "#{model} must provide a count_for_sitemap class method" if count_method.nil?
raise ArgumentError, "#{model} must provide a find_for_sitemap class method" if find_method.nil?

find_options = {}
[:conditions, :limit, :joins, :select, :order, :include, :group].each do |key|
find_options[key] = options.delete(key)
end

# Keep the intial conditions for later user
conditions = find_options[:conditions]

primary_method = options.delete(:primary_column)
primary_column = "#{table_name(model)}.#{primary_method}"

count = model.send(count_method, find_options.merge(:select => (primary_column || '*'), :include => nil))
count = find_options[:limit].to_i if find_options[:limit] && find_options[:limit].to_i < count
num_sitemaps = 1
num_batches = 1

if count > @options[:batch_size]
num_batches = (count.to_f / @options[:batch_size].to_f).ceil
num_sitemaps = (count.to_f / @options[:max_per_sitemap].to_f).ceil
end
batches_per_sitemap = num_batches.to_f / num_sitemaps.to_f

for sitemap_num in 1..num_sitemaps
# Work out the start and end batch numbers for this sitemap
batch_num_start = sitemap_num == 1 ? 1 : ((sitemap_num * batches_per_sitemap).ceil - batches_per_sitemap + 1).to_i
batch_num_end = (batch_num_start + [batches_per_sitemap, num_batches].min).floor - 1

for batch_num in batch_num_start..batch_num_end
offset = (batch_num - 1) * @options[:batch_size]
limit = (count - offset) < @options[:batch_size] ? (count - offset) : @options[:batch_size]
find_options.update(:limit => limit, :offset => offset) if num_batches > 1

if last_id && primary_column
find_options.update(:limit => limit, :offset => nil)
primary_column_value = escape_if_string last_id #escape '
find_options[:conditions] = [conditions, "(#{primary_column} > #{primary_column_value})"].compact.join(' AND ')
end

model.send(find_method, find_options).each do |record|
last_mod = options[:last_modified]
if last_mod.is_a?(Proc)
last_mod = last_mod.call(record)
elsif last_mod.nil?
last_mod_method = pick_method(record, TIMESTAMP_METHODS)
last_mod = last_mod_method.nil? ? Time.now : record.send(last_mod_method)
end

param_method = pick_method(record, PARAM_METHODS)

location =
if options[:location].is_a?(Proc)
options[:location].call(record)
else
File.join @options[:base_url], options[:path], record.send(param_method).to_s
end

change_frequency = options[:change_frequency]
freq = change_frequency.is_a?(Proc) ? change_frequency.call(record) : change_frequency

priority = options[:priority]
pri = priority.is_a?(Proc) ? priority.call(record) : priority

last_id = primary_column ? record.send(primary_method) : nil

sitemap.add_url!(location, {
:last_modified => last_mod,
:change_frequency => freq,
:priority => pri,
:part_number => last_id
}) if location
end
end
end
end
end
self
end

# TODO: Deprecate
def generate_static
return self if Array(@static_pages).empty?
with_sitemap({:name => 'static', :type => 'static'}) do |sitemap|
@static_pages.each do |location, last_mod, freq, pri|
sitemap.add_url!(location, {
:last_modified => last_mod,
:change_frequency => freq,
:priority => pri
})
end
end
self
end

# TODO: Deprecate
def prepare_update
@files_to_move = []
@sources.each do |model, options|
if options[:partial_update] && (primary_column = options[:primary_column]) && (last_id = get_last_id(options[:filename]))
primary_column_value = escape_if_string last_id #escape '
options[:conditions] = [options[:conditions], "(#{table_name(model)}.#{primary_column} >= #{primary_column_value})"].compact.join(' AND ')
options[:start_part_id] = last_id
end
end
end

def lock!(lock_file = 'generator.lock') def lock!(lock_file = 'generator.lock')
lock_file = File.join(@options[:document_full], lock_file) lock_file = File.join(@options[:document_full], lock_file)
File.open(lock_file, 'w', File::EXCL) File.open(lock_file, 'w', File::EXCL)
Expand Down Expand Up @@ -410,11 +269,6 @@ def pick_method(model, candidates)
method method
end end


# TODO: Deprecate
def escape_if_string(value)
(value.to_i.to_s == value.to_s) ? value.to_i : "'#{value.gsub("'", %q(\\\'))}'"
end

def url_for_sitemap(path) def url_for_sitemap(path)
File.join @options[:base_url], @options[:url_path], File.basename(path) File.join @options[:base_url], @options[:url_path], File.basename(path)
end end
Expand Down

0 comments on commit d627720

Please sign in to comment.