module HasTokenable::Concern::ClassMethods
Public Instance Methods
default_token_options()
click to toggle source
Default options as well as an overwrite point so you can assign different defaults to different models
# File lib/has_tokenable/concern.rb, line 26 def default_token_options @default_token_options ||= begin options = HasTokenable.default_token_options options[:prefix] ||= self.name[0, 1] options end end
generate_method(options)
click to toggle source
# File lib/has_tokenable/concern.rb, line 34 def generate_method(options) args = [ options[:method_random], options[:length].to_i ] args.slice!(-1) if options[:method_random] == 'uuid' SecureRandom.send(*args) end
generate_unique_token()
click to toggle source
Generates a unique token based on the options
# File lib/has_tokenable/concern.rb, line 43 def generate_unique_token record, options = true, @has_tokenable_options conditions = {} token = loop do random_token = self.generate_method(options) conditions[options[:param_name].to_sym] = random_token break random_token unless self.exists?(conditions) end token end
method_random=(value)
click to toggle source
# File lib/has_tokenable/concern.rb, line 17 def method_random=(value) values = value.is_a?(Array) ? value : [value] values.map! { |v| v.to_s } raise ArgumentError.new('Method is not supported') if (values - METHODS).size > 0 values end