module Resque::Reports::Extensions::FilenameGen

Module that generates file name Usage:

class SomeClass
  include Resque::Reports::Extensions::FilenameGen

  # ...call somewhere...
  fname = generate_filename(%w(a b c), 'pdf')
  # 'fname' value is something like this:
  #   "a60428ee50f1795819b8486c817c27829186fa40.pdf"
end

Constants

DEFAULT_EXTENSION

Private Instance Methods

generate_filename(args, fextension) click to toggle source
# File lib/resque/reports/extensions/filename_gen.rb, line 21
def generate_filename(args, fextension)
  "#{ hash(self.class.to_s, *args) }.#{ fextension || DEFAULT_EXTENSION }"
end
hash(*args) click to toggle source
# File lib/resque/reports/extensions/filename_gen.rb, line 25
def hash(*args)
  Digest::SHA1.hexdigest(obj_to_string(args))
end
obj_to_string(obj) click to toggle source
# File lib/resque/reports/extensions/filename_gen.rb, line 29
def obj_to_string(obj)
  case obj
  when Hash
    s = []
    obj.keys.sort.each do |k|
      s << obj_to_string(k)
      s << obj_to_string(obj[k])
    end
    s.to_s
  when Array
    s = []
    obj.each { |a| s << obj_to_string(a) }
    s.to_s
  else
    obj.to_s
  end
end