Sha256: be300cf57a4a7f6c3e3522eb271002790b6d313afc69e9701cfde59e482959db

Contents?: true

Size: 779 Bytes

Versions: 8

Compression:

Stored size: 779 Bytes

Contents

module VersionCake
  class VersionedRequest
    attr_reader :failed, :version

    def initialize(request, strategies, default_version=nil)
      @request, @strategies, @default_version, @failed = request, strategies, default_version, false
    end

    def execute
      begin
        extracted_version = extract_version

        if extracted_version.nil?
          @version = @default_version
        else
          @version = extracted_version
        end
      rescue Exception
        @failed = true
      end
    end

    private

    def extract_version
      extracted_version = nil
      @strategies.each do |strategy|
        extracted_version = strategy.extract(@request)
        break unless extracted_version.nil?
      end
      extracted_version
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
versioncake-4.0.2 lib/versioncake/versioned_request.rb
versioncake-4.0.1 lib/versioncake/versioned_request.rb
versioncake-4.0.0 lib/versioncake/versioned_request.rb
versioncake-3.4.0 lib/versioncake/versioned_request.rb
versioncake-3.3.0 lib/versioncake/versioned_request.rb
versioncake-3.2.0 lib/versioncake/versioned_request.rb
versioncake-3.1.0 lib/versioncake/versioned_request.rb
versioncake-3.0.0 lib/versioncake/versioned_request.rb