class JkoApi::Versioning

Public Class Methods

new(context, &block) click to toggle source
# File lib/jko_api/versioning.rb, line 3
def initialize(context, &block)
  @context, @definitions = context, {}
  instance_eval &block
end

Public Instance Methods

max_version_number() click to toggle source
# File lib/jko_api/versioning.rb, line 23
def max_version_number
  @definitions.keys.max
end
min_version_number() click to toggle source
# File lib/jko_api/versioning.rb, line 19
def min_version_number
  @definitions.keys.min
end
version(number, &block) click to toggle source
# File lib/jko_api/versioning.rb, line 8
def version(number, &block)
  @definitions[number] = block || Proc.new {}
  @context.scope module: "v#{number}", constraints: ->(*) {
    JkoApi.current_version_number == number
  } do
    number.downto(min_version_number) do |i|
      @context.instance_eval &@definitions[i]
    end
  end
end