Sha256: 3289ef0288c4b946a7e1d92fb9815bb4ba03274f84c1181b6a2f3a5ec7e7cb39
Contents?: true
Size: 1.25 KB
Versions: 1
Compression:
Stored size: 1.25 KB
Contents
require 'garage/strategy/cor/version' require 'garage/strategy/chain_of_responsibility' require 'garage/strategy/cor/base' require 'garage/strategy/cor/basic_auth' require 'garage/strategy/cor/configuration' require 'garage/strategy/cor/params' module Garage module Strategy module Cor extend ActiveSupport::Concern included do before_action :verify_auth, if: -> (_) { verify_permission? } end def verify_permission? true end def access_token return @access_token if defined?(@access_token) strategy = build_strategy loop do @access_token = strategy.access_token return @access_token if @access_token strategy = strategy.successor break unless strategy end end def build_strategy return @strategies.first if defined?(@strategies) strategy_classes = Garage::Strategy::ChainOfResponsibility.configuration.strategies @strategies = [].tap do |strategies| strategy_classes.reverse.inject(nil) do |successor, strategy| strategy.new(self, successor).tap { |strategy| strategies.unshift(strategy) } end end @strategies.first end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
garage-strategy-cor-0.1.0.beta1 | lib/garage/strategy/cor.rb |