treaty 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -4
  3. data/config/locales/en.yml +6 -4
  4. data/lib/treaty/attribute/base.rb +15 -7
  5. data/lib/treaty/attribute/builder/base.rb +4 -4
  6. data/lib/treaty/attribute/collection.rb +1 -1
  7. data/lib/treaty/attribute/dsl.rb +90 -0
  8. data/lib/treaty/attribute/entity/attribute.rb +25 -0
  9. data/lib/treaty/attribute/entity/builder.rb +23 -0
  10. data/lib/treaty/attribute/option/base.rb +17 -1
  11. data/lib/treaty/attribute/option/modifiers/as_modifier.rb +5 -3
  12. data/lib/treaty/attribute/option/modifiers/default_modifier.rb +1 -1
  13. data/lib/treaty/attribute/option/registry.rb +4 -4
  14. data/lib/treaty/attribute/option/validators/inclusion_validator.rb +20 -8
  15. data/lib/treaty/attribute/option/validators/required_validator.rb +8 -2
  16. data/lib/treaty/attribute/option/validators/type_validator.rb +51 -40
  17. data/lib/treaty/attribute/option_orchestrator.rb +8 -6
  18. data/lib/treaty/attribute/validation/nested_array_validator.rb +21 -15
  19. data/lib/treaty/attribute/validation/nested_transformer.rb +24 -18
  20. data/lib/treaty/attribute/validation/orchestrator/base.rb +67 -83
  21. data/lib/treaty/base.rb +1 -1
  22. data/lib/treaty/controller/dsl.rb +4 -1
  23. data/lib/treaty/entity.rb +84 -0
  24. data/lib/treaty/exceptions/nested_attributes.rb +2 -2
  25. data/lib/treaty/info/entity/builder.rb +50 -0
  26. data/lib/treaty/info/entity/dsl.rb +28 -0
  27. data/lib/treaty/info/entity/result.rb +15 -0
  28. data/lib/treaty/info/rest/builder.rb +110 -0
  29. data/lib/treaty/info/rest/dsl.rb +28 -0
  30. data/lib/treaty/info/rest/result.rb +15 -0
  31. data/lib/treaty/request/attribute/attribute.rb +1 -0
  32. data/lib/treaty/request/attribute/builder.rb +1 -0
  33. data/lib/treaty/request/entity.rb +33 -0
  34. data/lib/treaty/request/factory.rb +63 -14
  35. data/lib/treaty/request/validator.rb +65 -0
  36. data/lib/treaty/response/attribute/attribute.rb +1 -0
  37. data/lib/treaty/response/attribute/builder.rb +1 -0
  38. data/lib/treaty/response/entity.rb +33 -0
  39. data/lib/treaty/response/factory.rb +63 -14
  40. data/lib/treaty/response/validator.rb +57 -0
  41. data/lib/treaty/version.rb +1 -1
  42. data/lib/treaty/versions/execution/request.rb +10 -5
  43. data/lib/treaty/versions/factory.rb +16 -5
  44. data/lib/treaty/versions/resolver.rb +8 -2
  45. data/lib/treaty/versions/workspace.rb +2 -2
  46. metadata +15 -12
  47. data/lib/treaty/info/builder.rb +0 -122
  48. data/lib/treaty/info/dsl.rb +0 -26
  49. data/lib/treaty/info/result.rb +0 -13
  50. data/lib/treaty/request/attribute/validation/orchestrator.rb +0 -27
  51. data/lib/treaty/request/attribute/validator.rb +0 -50
  52. data/lib/treaty/request/scope/collection.rb +0 -21
  53. data/lib/treaty/request/scope/factory.rb +0 -42
  54. data/lib/treaty/response/attribute/validation/orchestrator.rb +0 -27
  55. data/lib/treaty/response/attribute/validator.rb +0 -44
  56. data/lib/treaty/response/scope/collection.rb +0 -21
  57. data/lib/treaty/response/scope/factory.rb +0 -42
@@ -0,0 +1,110 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Treaty
4
+ module Info
5
+ module Rest
6
+ class Builder
7
+ attr_reader :versions
8
+
9
+ def self.build(...)
10
+ new.build(...)
11
+ end
12
+
13
+ def build(collection_of_versions:)
14
+ build_all(
15
+ versions: collection_of_versions
16
+ )
17
+
18
+ self
19
+ end
20
+
21
+ private
22
+
23
+ def build_all(versions:)
24
+ build_versions_with(
25
+ collection: versions
26
+ )
27
+ end
28
+
29
+ ##########################################################################
30
+
31
+ def build_versions_with(collection:) # rubocop:disable Metrics/MethodLength
32
+ @versions = collection.map do |version|
33
+ gem_version = version.version.version
34
+ {
35
+ version: gem_version.version,
36
+ segments: gem_version.segments,
37
+ default: version.default_result,
38
+ summary: version.summary_text,
39
+ strategy: version.strategy_instance.code,
40
+ deprecated: version.deprecated_result,
41
+ executor: build_executor_with(version),
42
+ request: build_request_with(version),
43
+ response: build_response_with(version)
44
+ }
45
+ end
46
+ end
47
+
48
+ ##########################################################################
49
+
50
+ def build_executor_with(version)
51
+ {
52
+ executor: version.executor.executor,
53
+ method: version.executor.method
54
+ }
55
+ end
56
+
57
+ ##########################################################################
58
+
59
+ def build_request_with(version)
60
+ build_attributes_structure(version.request_factory)
61
+ end
62
+
63
+ def build_response_with(version)
64
+ response_factory = version.response_factory
65
+ {
66
+ status: response_factory.status
67
+ }.merge(build_attributes_structure(response_factory))
68
+ end
69
+
70
+ ##########################################################################
71
+
72
+ def build_attributes_structure(factory)
73
+ {
74
+ attributes: build_attributes_hash(factory.collection_of_attributes)
75
+ }
76
+ end
77
+
78
+ def build_attributes_hash(collection, current_level = 0)
79
+ # validate_nesting_level!(current_level)
80
+
81
+ collection.to_h do |attribute|
82
+ [
83
+ attribute.name,
84
+ {
85
+ type: attribute.type,
86
+ options: attribute.options,
87
+ attributes: build_nested_attributes(attribute, current_level)
88
+ }
89
+ ]
90
+ end
91
+ end
92
+
93
+ def build_nested_attributes(attribute, current_level)
94
+ return {} unless attribute.nested?
95
+
96
+ build_attributes_hash(attribute.collection_of_attributes, current_level + 1)
97
+ end
98
+
99
+ # def validate_nesting_level!(level)
100
+ # return unless level > Treaty::Engine.config.treaty.attribute_nesting_level
101
+ #
102
+ # raise Treaty::Exceptions::NestedAttributes,
103
+ # I18n.t("treaty.attributes.errors.nesting_level_exceeded",
104
+ # level:,
105
+ # max_level: Treaty::Engine.config.treaty.attribute_nesting_level)
106
+ # end
107
+ end
108
+ end
109
+ end
110
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Treaty
4
+ module Info
5
+ module Rest
6
+ module DSL
7
+ def self.included(base)
8
+ base.extend(ClassMethods)
9
+ end
10
+
11
+ module ClassMethods
12
+ def info
13
+ builder = Builder.build(
14
+ collection_of_versions:
15
+ )
16
+
17
+ Result.new(builder)
18
+ end
19
+
20
+ # API: Treaty Web
21
+ def treaty?
22
+ true
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Treaty
4
+ module Info
5
+ module Rest
6
+ class Result
7
+ attr_reader :versions
8
+
9
+ def initialize(builder)
10
+ @versions = builder.versions
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -3,6 +3,7 @@
3
3
  module Treaty
4
4
  module Request
5
5
  module Attribute
6
+ # Request-specific attribute that defaults to required: true
6
7
  class Attribute < Treaty::Attribute::Base
7
8
  private
8
9
 
@@ -3,6 +3,7 @@
3
3
  module Treaty
4
4
  module Request
5
5
  module Attribute
6
+ # Request-specific attribute builder
6
7
  class Builder < Treaty::Attribute::Builder::Base
7
8
  private
8
9
 
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Treaty
4
+ module Request
5
+ # Entity class for request definitions.
6
+ # Attributes are required by default.
7
+ #
8
+ # This class is used internally when defining request blocks.
9
+ # When you write a request block, Treaty creates an anonymous
10
+ # class based on Request::Entity.
11
+ class Entity
12
+ include Treaty::Attribute::DSL
13
+
14
+ class << self
15
+ private
16
+
17
+ # Creates a Request::Attribute::Attribute for this Request::Entity class
18
+ #
19
+ # @return [Request::Attribute::Attribute] Created attribute instance
20
+ def create_attribute(name, type, *helpers, nesting_level:, **options, &block)
21
+ Attribute::Attribute.new(
22
+ name,
23
+ type,
24
+ *helpers,
25
+ nesting_level:,
26
+ **options,
27
+ &block
28
+ )
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -2,31 +2,80 @@
2
2
 
3
3
  module Treaty
4
4
  module Request
5
+ # Factory for creating request definitions.
6
+ #
7
+ # Supports two modes:
8
+ # 1. Block mode: Creates an anonymous Request::Entity class with the block
9
+ # 2. Entity mode: Uses a provided Entity class directly
10
+ #
11
+ # ## Block Mode
12
+ #
13
+ # ```ruby
14
+ # request do
15
+ # object :post do
16
+ # string :title
17
+ # end
18
+ # end
19
+ # ```
20
+ #
21
+ # ## Entity Mode
22
+ #
23
+ # ```ruby
24
+ # request PostRequestEntity
25
+ # ```
5
26
  class Factory
6
- def scope(name, &block)
7
- @scope_factory = Scope::Factory.new(name)
8
-
9
- @scope_factory.instance_eval(&block) if block_given?
10
-
11
- collection_of_scopes << @scope_factory
12
-
13
- @scope_factory = nil
27
+ # Uses a provided Entity class
28
+ #
29
+ # @param entity_class [Class] Entity class to use
30
+ # @return [void]
31
+ # @raise [Treaty::Exceptions::Validation] if entity_class is not a valid Treaty::Entity subclass
32
+ def use_entity(entity_class)
33
+ validate_entity_class!(entity_class)
34
+ @entity_class = entity_class
14
35
  end
15
36
 
16
- def collection_of_scopes
17
- @collection_of_scopes ||= Scope::Collection.new
37
+ # Returns collection of attributes from the entity class
38
+ #
39
+ # @return [Collection] Collection of attributes
40
+ def collection_of_attributes
41
+ return Treaty::Attribute::Collection.new if @entity_class.nil?
42
+
43
+ @entity_class.collection_of_attributes
18
44
  end
19
45
 
20
- ##########################################################################
46
+ # Handles DSL methods for defining attributes
47
+ #
48
+ # This allows the factory to be used with method_missing
49
+ # for backwards compatibility with direct method calls.
50
+ # Creates an anonymous Request::Entity class on first use.
51
+ def method_missing(type, *helpers, **options, &block)
52
+ # If no entity class yet, create one
53
+ @entity_class ||= Class.new(Entity)
21
54
 
22
- def method_missing(name, *, &_block)
23
- raise Treaty::Exceptions::MethodName,
24
- I18n.t("treaty.request.factory.unknown_method", method: name)
55
+ # Call the method on the entity class
56
+ @entity_class.public_send(type, *helpers, **options, &block)
25
57
  end
26
58
 
27
59
  def respond_to_missing?(name, *)
28
60
  super
29
61
  end
62
+
63
+ private
64
+
65
+ # Validates that the provided entity_class is a valid Treaty::Entity subclass
66
+ #
67
+ # @param entity_class [Class] Entity class to validate
68
+ # @raise [Treaty::Exceptions::Validation] if entity_class is not a valid Treaty::Entity subclass
69
+ def validate_entity_class!(entity_class)
70
+ return if entity_class.is_a?(Class) && entity_class < Treaty::Entity
71
+
72
+ raise Treaty::Exceptions::Validation,
73
+ I18n.t(
74
+ "treaty.request.factory.invalid_entity_class",
75
+ type: entity_class.class,
76
+ value: entity_class
77
+ )
78
+ end
30
79
  end
31
80
  end
32
81
  end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Treaty
4
+ module Request
5
+ # Validator for request data
6
+ class Validator
7
+ class << self
8
+ # Validates request parameters against the request definition
9
+ #
10
+ # @param params [Hash] Request parameters to validate
11
+ # @param version_factory [Versions::Factory] Version factory with request definition
12
+ # @return [Hash] Validated and transformed parameters
13
+ def validate!(params:, version_factory:)
14
+ new(params:, version_factory:).validate!
15
+ end
16
+ end
17
+
18
+ def initialize(params:, version_factory:)
19
+ @params = params
20
+ @version_factory = version_factory
21
+ end
22
+
23
+ def validate!
24
+ validate_request_attributes!
25
+ end
26
+
27
+ private
28
+
29
+ def request_data
30
+ @request_data ||= begin
31
+ @params.to_unsafe_h
32
+ rescue NoMethodError
33
+ @params
34
+ end
35
+ end
36
+
37
+ def validate_request_attributes! # rubocop:disable Metrics/MethodLength
38
+ return request_data unless adapter_strategy?
39
+ return request_data unless request_attributes_exist?
40
+
41
+ # For adapter strategy with attributes defined:
42
+ orchestrator_class = Class.new(Treaty::Attribute::Validation::Orchestrator::Base) do
43
+ define_method(:collection_of_attributes) do
44
+ @version_factory.request_factory.collection_of_attributes
45
+ end
46
+ end
47
+
48
+ orchestrator_class.validate!(
49
+ version_factory: @version_factory,
50
+ data: request_data
51
+ )
52
+ end
53
+
54
+ def adapter_strategy?
55
+ !@version_factory.strategy_instance.direct?
56
+ end
57
+
58
+ def request_attributes_exist?
59
+ return false if @version_factory.request_factory&.collection_of_attributes&.empty?
60
+
61
+ @version_factory.request_factory.collection_of_attributes.exists?
62
+ end
63
+ end
64
+ end
65
+ end
@@ -3,6 +3,7 @@
3
3
  module Treaty
4
4
  module Response
5
5
  module Attribute
6
+ # Response-specific attribute that defaults to required: false
6
7
  class Attribute < Treaty::Attribute::Base
7
8
  private
8
9
 
@@ -3,6 +3,7 @@
3
3
  module Treaty
4
4
  module Response
5
5
  module Attribute
6
+ # Response-specific attribute builder
6
7
  class Builder < Treaty::Attribute::Builder::Base
7
8
  private
8
9
 
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Treaty
4
+ module Response
5
+ # Entity class for response definitions.
6
+ # Attributes are optional by default.
7
+ #
8
+ # This class is used internally when defining response blocks.
9
+ # When you write a response block, Treaty creates an anonymous
10
+ # class based on Response::Entity.
11
+ class Entity
12
+ include Treaty::Attribute::DSL
13
+
14
+ class << self
15
+ private
16
+
17
+ # Creates a Response::Attribute::Attribute for this Response::Entity class
18
+ #
19
+ # @return [Response::Attribute::Attribute] Created attribute instance
20
+ def create_attribute(name, type, *helpers, nesting_level:, **options, &block)
21
+ Attribute::Attribute.new(
22
+ name,
23
+ type,
24
+ *helpers,
25
+ nesting_level:,
26
+ **options,
27
+ &block
28
+ )
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -2,6 +2,27 @@
2
2
 
3
3
  module Treaty
4
4
  module Response
5
+ # Factory for creating response definitions.
6
+ #
7
+ # Supports two modes:
8
+ # 1. Block mode: Creates an anonymous Response::Entity class with the block
9
+ # 2. Entity mode: Uses a provided Entity class directly
10
+ #
11
+ # ## Block Mode
12
+ #
13
+ # ```ruby
14
+ # response 200 do
15
+ # object :post do
16
+ # string :id
17
+ # end
18
+ # end
19
+ # ```
20
+ #
21
+ # ## Entity Mode
22
+ #
23
+ # ```ruby
24
+ # response 200, PostResponseEntity
25
+ # ```
5
26
  class Factory
6
27
  attr_reader :status
7
28
 
@@ -9,30 +30,58 @@ module Treaty
9
30
  @status = status
10
31
  end
11
32
 
12
- def scope(name, &block)
13
- @scope_factory = Scope::Factory.new(name)
14
-
15
- @scope_factory.instance_eval(&block) if block_given?
16
-
17
- collection_of_scopes << @scope_factory
18
-
19
- @scope_factory = nil
33
+ # Uses a provided Entity class
34
+ #
35
+ # @param entity_class [Class] Entity class to use
36
+ # @return [void]
37
+ # @raise [Treaty::Exceptions::Validation] if entity_class is not a valid Treaty::Entity subclass
38
+ def use_entity(entity_class)
39
+ validate_entity_class!(entity_class)
40
+ @entity_class = entity_class
20
41
  end
21
42
 
22
- def collection_of_scopes
23
- @collection_of_scopes ||= Scope::Collection.new
43
+ # Returns collection of attributes from the entity class
44
+ #
45
+ # @return [Collection] Collection of attributes
46
+ def collection_of_attributes
47
+ return Treaty::Attribute::Collection.new if @entity_class.nil?
48
+
49
+ @entity_class.collection_of_attributes
24
50
  end
25
51
 
26
- ##########################################################################
52
+ # Handles DSL methods for defining attributes
53
+ #
54
+ # This allows the factory to be used with method_missing
55
+ # for backwards compatibility with direct method calls.
56
+ # Creates an anonymous Response::Entity class on first use.
57
+ def method_missing(type, *helpers, **options, &block)
58
+ # If no entity class yet, create one
59
+ @entity_class ||= Class.new(Entity)
27
60
 
28
- def method_missing(name, *, &_block)
29
- raise Treaty::Exceptions::MethodName,
30
- I18n.t("treaty.response.factory.unknown_method", method: name)
61
+ # Call the method on the entity class
62
+ @entity_class.public_send(type, *helpers, **options, &block)
31
63
  end
32
64
 
33
65
  def respond_to_missing?(name, *)
34
66
  super
35
67
  end
68
+
69
+ private
70
+
71
+ # Validates that the provided entity_class is a valid Treaty::Entity subclass
72
+ #
73
+ # @param entity_class [Class] Entity class to validate
74
+ # @raise [Treaty::Exceptions::Validation] if entity_class is not a valid Treaty::Entity subclass
75
+ def validate_entity_class!(entity_class)
76
+ return if entity_class.is_a?(Class) && entity_class < Treaty::Entity
77
+
78
+ raise Treaty::Exceptions::Validation,
79
+ I18n.t(
80
+ "treaty.response.factory.invalid_entity_class",
81
+ type: entity_class.class,
82
+ value: entity_class
83
+ )
84
+ end
36
85
  end
37
86
  end
38
87
  end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Treaty
4
+ module Response
5
+ # Validator for response data
6
+ class Validator
7
+ class << self
8
+ # Validates response data against the response definition
9
+ #
10
+ # @param response_data [Hash] Response data to validate
11
+ # @param version_factory [Versions::Factory] Version factory with response definition
12
+ # @return [Hash] Validated and transformed response data
13
+ def validate!(version_factory:, response_data: {})
14
+ new(version_factory:, response_data:).validate!
15
+ end
16
+ end
17
+
18
+ def initialize(version_factory:, response_data: {})
19
+ @version_factory = version_factory
20
+ @response_data = response_data
21
+ end
22
+
23
+ def validate!
24
+ validate_response_attributes!
25
+ end
26
+
27
+ private
28
+
29
+ def validate_response_attributes!
30
+ return @response_data unless response_attributes_exist?
31
+
32
+ # Create orchestrator for both DIRECT and ADAPTER strategies
33
+ # Orchestrator filters data by attributes and performs transformation
34
+ orchestrator_class = Class.new(Treaty::Attribute::Validation::Orchestrator::Base) do
35
+ define_method(:collection_of_attributes) do
36
+ @version_factory.response_factory.collection_of_attributes
37
+ end
38
+ end
39
+
40
+ orchestrator_class.validate!(
41
+ version_factory: @version_factory,
42
+ data: @response_data
43
+ )
44
+ end
45
+
46
+ def adapter_strategy?
47
+ !@version_factory.strategy_instance.direct?
48
+ end
49
+
50
+ def response_attributes_exist?
51
+ return false if @version_factory.response_factory&.collection_of_attributes&.empty?
52
+
53
+ @version_factory.response_factory.collection_of_attributes.exists?
54
+ end
55
+ end
56
+ end
57
+ end
@@ -3,7 +3,7 @@
3
3
  module Treaty
4
4
  module VERSION
5
5
  MAJOR = 0
6
- MINOR = 6
6
+ MINOR = 8
7
7
  PATCH = 0
8
8
  PRE = nil
9
9
 
@@ -3,7 +3,7 @@
3
3
  module Treaty
4
4
  module Versions
5
5
  module Execution
6
- class Request
6
+ class Request # rubocop:disable Metrics/ClassLength
7
7
  def self.execute!(...)
8
8
  new(...).execute!
9
9
  end
@@ -117,9 +117,11 @@ module Treaty
117
117
 
118
118
  unless executor.respond_to?(method_name)
119
119
  raise Treaty::Exceptions::Execution,
120
- I18n.t("treaty.execution.method_not_found",
121
- method: method_name,
122
- class_name: executor)
120
+ I18n.t(
121
+ "treaty.execution.method_not_found",
122
+ method: method_name,
123
+ class_name: executor
124
+ )
123
125
  end
124
126
 
125
127
  executor.public_send(method_name, params: @validated_params)
@@ -134,7 +136,10 @@ module Treaty
134
136
 
135
137
  def raise_executor_missing_error!
136
138
  raise Treaty::Exceptions::Execution,
137
- I18n.t("treaty.execution.executor_missing", version: @version_factory.version)
139
+ I18n.t(
140
+ "treaty.execution.executor_missing",
141
+ version: @version_factory.version
142
+ )
138
143
  end
139
144
 
140
145
  def servactory_service?
@@ -48,16 +48,24 @@ module Treaty
48
48
  @deprecated_result = result
49
49
  end
50
50
 
51
- def request(&block)
51
+ def request(entity_class = nil, &block)
52
52
  @request_factory ||= Request::Factory.new
53
53
 
54
- @request_factory.instance_eval(&block) if block_given?
54
+ if entity_class.present?
55
+ @request_factory.use_entity(entity_class)
56
+ elsif block_given?
57
+ @request_factory.instance_eval(&block)
58
+ end
55
59
  end
56
60
 
57
- def response(status, &block)
61
+ def response(status, entity_class = nil, &block)
58
62
  @response_factory ||= Response::Factory.new(status)
59
63
 
60
- @response_factory.instance_eval(&block) if block_given?
64
+ if entity_class.present?
65
+ @response_factory.use_entity(entity_class)
66
+ elsif block_given?
67
+ @response_factory.instance_eval(&block)
68
+ end
61
69
  end
62
70
 
63
71
  def delegate_to(executor, method = :call)
@@ -74,7 +82,10 @@ module Treaty
74
82
  end
75
83
 
76
84
  raise Treaty::Exceptions::Validation,
77
- I18n.t("treaty.versioning.factory.invalid_default_option", type: @default_result.class)
85
+ I18n.t(
86
+ "treaty.versioning.factory.invalid_default_option",
87
+ type: @default_result.class
88
+ )
78
89
  end
79
90
 
80
91
  ##########################################################################
@@ -52,12 +52,18 @@ module Treaty
52
52
 
53
53
  def raise_version_not_found!
54
54
  raise Treaty::Exceptions::Validation,
55
- I18n.t("treaty.versioning.resolver.version_not_found", version: @current_version)
55
+ I18n.t(
56
+ "treaty.versioning.resolver.version_not_found",
57
+ version: @current_version
58
+ )
56
59
  end
57
60
 
58
61
  def raise_version_deprecated!
59
62
  raise Treaty::Exceptions::Deprecated,
60
- I18n.t("treaty.versioning.resolver.version_deprecated", version: @current_version)
63
+ I18n.t(
64
+ "treaty.versioning.resolver.version_deprecated",
65
+ version: @current_version
66
+ )
61
67
  end
62
68
  end
63
69
  end