lib/spree/core/token_resource.rb
# frozen_string_literal: true
module Spree
module Core
module TokenResource
module ClassMethods
def token_resource
has_one :tokenized_permission, as: :permissable
delegate :token, to: :tokenized_permission, allow_nil: true
after_create :create_token
end
end
def create_token
permission = build_tokenized_permission
permission.token = token = ::SecureRandom.hex(8)
permission.save!
token
end
def self.included(receiver)
receiver.extend ClassMethods
end
end
end
end
ActiveRecord::Base.class_eval { include Spree::Core::TokenResource }