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