Class: VersionCake::ExtractionStrategy

Inherits:
Object
  • Object
show all
Defined in:
lib/versioncake/strategies/extraction_strategy.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.lookup(strategy) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/versioncake/strategies/extraction_strategy.rb', line 19

def self.lookup(strategy)
  if strategy.class == Proc
    if strategy.arity == 1
      VersionCake::CustomStrategy.new(strategy)
    else
      raise Exception, "Custom extraction strategy requires a single parameter"
    end
  else
    strategy_name = "#{strategy}_strategy".camelize
    begin
      VersionCake.const_get(strategy_name).new
    rescue
      raise Exception, "Unknown VersionCake extraction strategy #{strategy_name}"
    end
  end

end

Instance Method Details

#execute(request) ⇒ Object

Raises:

  • (Exception)


15
16
17
# File 'lib/versioncake/strategies/extraction_strategy.rb', line 15

def execute(request)
  raise Exception, "ExtractionStrategy requires execute to be implemented"
end

#extract(request) ⇒ Object



6
7
8
9
# File 'lib/versioncake/strategies/extraction_strategy.rb', line 6

def extract(request)
  version = execute(request)
  return version.to_i if version && /[0-9]+/.match(version)
end

#version_keyObject



11
12
13
# File 'lib/versioncake/strategies/extraction_strategy.rb', line 11

def version_key
  VersionCake::Railtie.config.versioncake.version_key
end