Sha256: dc7207ef1b423f1c58310dd52abbc93c3c47f0c2cb4307ee54f480a918ae6f4b

Contents?: true

Size: 524 Bytes

Versions: 9

Compression:

Stored size: 524 Bytes

Contents

module Spree
  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

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
spree_auth-1.1.5 lib/spree/token_resource.rb
spree_auth-1.1.4 lib/spree/token_resource.rb
spree_auth-1.1.3 lib/spree/token_resource.rb
spree_auth-1.1.2 lib/spree/token_resource.rb
spree_auth-1.1.2.rc1 lib/spree/token_resource.rb
spree_auth-1.1.1 lib/spree/token_resource.rb
spree_auth-1.1.0 lib/spree/token_resource.rb
spree_auth-1.1.0.rc2 lib/spree/token_resource.rb
spree_auth-1.1.0.rc1 lib/spree/token_resource.rb