Class: JkoApi::Versioning
- Inherits:
-
Object
- Object
- JkoApi::Versioning
- Defined in:
- lib/jko_api/versioning.rb
Instance Method Summary collapse
-
#initialize(context, &block) ⇒ Versioning
constructor
A new instance of Versioning.
- #max_version_number ⇒ Object
- #min_version_number ⇒ Object
- #version(number, &block) ⇒ Object
Constructor Details
#initialize(context, &block) ⇒ Versioning
Returns a new instance of Versioning.
3 4 5 6 |
# File 'lib/jko_api/versioning.rb', line 3 def initialize(context, &block) @context, @definitions = context, {} instance_eval &block end |
Instance Method Details
#max_version_number ⇒ Object
23 24 25 |
# File 'lib/jko_api/versioning.rb', line 23 def max_version_number @definitions.keys.max end |
#min_version_number ⇒ Object
19 20 21 |
# File 'lib/jko_api/versioning.rb', line 19 def min_version_number @definitions.keys.min end |
#version(number, &block) ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# 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 |