class ActiveSupport::Cache::DalliStore
Public Instance Methods
delete(name, options = {})
click to toggle source
# File lib/millas.rb, line 60 def delete(name, options = {}) dispersed = options.delete(:dispersed) if dispersing?(dispersed) dispersions.map do |n| __delete__(decorated_name(name, n), options) end.sample else __delete__(name, options) end end
Also aliased as: __delete__
exist?(name, options = {})
click to toggle source
# File lib/millas.rb, line 54 def exist?(name, options = {}) dispersed = options.delete(:dispersed) name = decorated_name(name) if dispersing?(dispersed) send("__exist?__", name, options) end
Also aliased as: "__exist?__"
read(name, options = {})
click to toggle source
# File lib/millas.rb, line 35 def read(name, options = {}) dispersed = options.delete(:dispersed) name = decorated_name(name) if dispersing?(dispersed) __read__(name, options) end
Also aliased as: __read__
write(name, value, options = {})
click to toggle source
# File lib/millas.rb, line 41 def write(name, value, options = {}) dispersed = options.delete(:dispersed) if dispersing?(dispersed) expires_in = options[:expires_in] dispersions.map do |n| options.merge!({ expires_in: advanced_expires_in(expires_in, n) }) if expires_in __write__(decorated_name(name, n), value, options) end.sample else __write__(name, value, options) end end
Also aliased as: __write__
Private Instance Methods
advanced_expires_in(expires_in, n)
click to toggle source
# File lib/millas.rb, line 96 def advanced_expires_in(expires_in, n) expires_in + second_intervals*(n-1) end
decorated_name(name, num = nil)
click to toggle source
# File lib/millas.rb, line 92 def decorated_name(name, num = nil) "#{name}-#{num || magic_number}" end
dispersing?(dispersed)
click to toggle source
# File lib/millas.rb, line 82 def dispersing?(dispersed) b = Millas.config.perform_dispersing b = !!dispersed unless dispersed.nil? b end
dispersion_number()
click to toggle source
# File lib/millas.rb, line 72 def dispersion_number number = Millas.config.dispersion_number.try(:to_i) number = 1 if !number || number <= 0 number end
dispersions()
click to toggle source
# File lib/millas.rb, line 78 def dispersions [*1..dispersion_number] end
magic_number()
click to toggle source
# File lib/millas.rb, line 100 def magic_number number = dispersion_number # quadratic function result = number**rand # feel good factor (max = 0.35) alpha = number/40.to_f max_alpha = 0.35 result += if alpha < max_alpha alpha else max_alpha end # return opposite number of the maximum value number - result.floor + 1 end
second_intervals()
click to toggle source
# File lib/millas.rb, line 88 def second_intervals (Millas.config.second_intervals || 0).seconds end