Sha256: 3992b85f2df3a55037810edb8dd33b2f2e2078f569e814c1513941725e6420db
Contents?: true
Size: 1.17 KB
Versions: 1
Compression:
Stored size: 1.17 KB
Contents
module VersionCake class VersionedRequest attr_reader :version, :extracted_version, :is_latest_version def initialize(request, version_override=nil) @version = version_override || extract_version(request) @is_latest_version = @version == config.latest_version end def supported_versions config.supported_versions(@version) end private def config VersionCake::Railtie.config.versioncake end def apply_strategies(request) version = nil config.extraction_strategies.each do |strategy| version = strategy.extract(request) break unless version.nil? end version end def extract_version(request) @extracted_version = apply_strategies(request) if @extracted_version.nil? @version = config.default_version || config.latest_version elsif config.supports_version? @extracted_version @version = @extracted_version elsif @extracted_version > config.latest_version raise ActionController::RoutingError.new("No route match for version") else raise ActionController::RoutingError.new("Version is deprecated") end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
versioncake-2.0.0 | lib/versioncake/versioned_request.rb |