lib/tokenize.rb in jt-rails-tokenizable-1.0.6 vs lib/tokenize.rb in jt-rails-tokenizable-1.0.7

- old
+ new

@@ -1,35 +1,35 @@ module JT::Rails::Tokenizable::Tokenize extend ActiveSupport::Concern included do - before_validation :generate_tokens, on: :create - - mattr_accessor :jt_rails_token_fields do - {} - end + before_validation :jt_rails_generate_tokens, on: :create end module ClassMethods def tokenize(field, options = {}) - jt_rails_token_fields[field.to_sym] = options + @@jt_rails_token_fields ||= {} + @@jt_rails_token_fields[field.to_sym] = options + if options.fetch(:valiations, true) validates field, presence: true, uniqueness: true end end end - def generate_tokens - for field in jt_rails_token_fields.keys + def jt_rails_generate_tokens + @@jt_rails_token_fields ||= {} + + for field in @@jt_rails_token_fields.keys generate_new_token(field) end end def generate_new_token(field) - size = jt_rails_token_fields[field.to_sym].fetch(:size, 32) + size = @@jt_rails_token_fields[field.to_sym].fetch(:size, 32) self[field.to_sym] = loop do random_token = SecureRandom.hex(size) break random_token unless self.class.exists?(field => random_token) end