Module: HasAToken::Concern::ClassMethods
- Defined in:
- lib/has_a_token/concern.rb
Overview
rubocop:disable all
Instance Method Summary collapse
Instance Method Details
#has_a_token(name = :token, opts = {}) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/has_a_token/concern.rb', line 29 def has_a_token(name = :token, opts = {}) # rubocop:disable all if String(name).match(/(_token|_code)$/) method_name = name.to_s else method_name = "#{name}_token" end define_method "generate_#{method_name}" do self[method_name] = loop do random_token = HasAToken::Generator.new(opts).generate break random_token unless self.class.exists?(Hash[method_name, random_token]) end end define_method "reset_#{method_name}!" do send("generate_#{method_name}") save! end end |