class Phenotype::VersionedApp
Attributes
routes[RW]
strategies[RW]
Public Class Methods
new(strategies: [])
click to toggle source
# File lib/phenotype/versioned_app.rb, line 10 def initialize(strategies: []) @routes = {} @strategies = strategies end
Public Instance Methods
add_strategy(strategy)
click to toggle source
# File lib/phenotype/versioned_app.rb, line 15 def add_strategy(strategy) strategies.push(strategy) end
add_version(version:, cascade: false, &block)
click to toggle source
# File lib/phenotype/versioned_app.rb, line 19 def add_version(version:, cascade: false, &block) raise 'Error - Phenotype version must be numeric' unless version.is_a?(Numeric) routes[version] = RouteHandler.new(cascade: cascade, block: block) end
call(env)
click to toggle source
# File lib/phenotype/versioned_app.rb, line 25 def call(env) Versioner.new(routes: routes, strategies: strategies, env: env).call end