Module: HasTokenField
- Defined in:
- lib/has_token_field.rb,
lib/has_token_field/version.rb
Constant Summary collapse
- VERSION =
"0.0.1"
Instance Method Summary collapse
Instance Method Details
#has_token_field(name) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/has_token_field.rb', line 5 def has_token_field(name) define_singleton_method :make_token do loop do token = SecureRandom.urlsafe_base64(15).tr('lIO0', 'sxyz') break token unless self.where("#{name}" => token).first end end self.send(:before_save, "ensure_#{name}") define_method "ensure_#{name}" do self[name] = self.class.make_token if self[name].blank? && self.class.column_names.include?(name.to_s) end end |