treaty 0.7.0 → 0.9.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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -0
  3. data/config/locales/en.yml +8 -0
  4. data/lib/treaty/attribute/base.rb +13 -5
  5. data/lib/treaty/attribute/dsl.rb +90 -0
  6. data/lib/treaty/attribute/entity/attribute.rb +25 -0
  7. data/lib/treaty/attribute/entity/builder.rb +23 -0
  8. data/lib/treaty/attribute/option/base.rb +17 -1
  9. data/lib/treaty/attribute/option/modifiers/as_modifier.rb +5 -3
  10. data/lib/treaty/attribute/option/registry_initializer.rb +2 -0
  11. data/lib/treaty/attribute/option/validators/format_validator.rb +220 -0
  12. data/lib/treaty/attribute/option/validators/inclusion_validator.rb +20 -8
  13. data/lib/treaty/attribute/option/validators/required_validator.rb +8 -2
  14. data/lib/treaty/attribute/option/validators/type_validator.rb +51 -40
  15. data/lib/treaty/attribute/option_orchestrator.rb +7 -5
  16. data/lib/treaty/attribute/validation/nested_array_validator.rb +18 -12
  17. data/lib/treaty/attribute/validation/nested_transformer.rb +18 -12
  18. data/lib/treaty/base.rb +1 -1
  19. data/lib/treaty/controller/dsl.rb +4 -1
  20. data/lib/treaty/entity.rb +84 -0
  21. data/lib/treaty/info/entity/builder.rb +50 -0
  22. data/lib/treaty/info/entity/dsl.rb +28 -0
  23. data/lib/treaty/info/entity/result.rb +15 -0
  24. data/lib/treaty/info/rest/builder.rb +110 -0
  25. data/lib/treaty/info/rest/dsl.rb +28 -0
  26. data/lib/treaty/info/rest/result.rb +15 -0
  27. data/lib/treaty/request/attribute/attribute.rb +1 -0
  28. data/lib/treaty/request/attribute/builder.rb +1 -0
  29. data/lib/treaty/request/entity.rb +33 -0
  30. data/lib/treaty/request/factory.rb +61 -14
  31. data/lib/treaty/request/validator.rb +65 -0
  32. data/lib/treaty/response/attribute/attribute.rb +1 -0
  33. data/lib/treaty/response/attribute/builder.rb +1 -0
  34. data/lib/treaty/response/entity.rb +33 -0
  35. data/lib/treaty/response/factory.rb +61 -14
  36. data/lib/treaty/response/validator.rb +57 -0
  37. data/lib/treaty/version.rb +1 -1
  38. data/lib/treaty/versions/execution/request.rb +10 -5
  39. data/lib/treaty/versions/factory.rb +16 -5
  40. data/lib/treaty/versions/resolver.rb +8 -2
  41. data/lib/treaty/versions/workspace.rb +2 -2
  42. metadata +16 -8
  43. data/lib/treaty/info/builder.rb +0 -108
  44. data/lib/treaty/info/dsl.rb +0 -26
  45. data/lib/treaty/info/result.rb +0 -13
  46. data/lib/treaty/request/attribute/validation/orchestrator.rb +0 -19
  47. data/lib/treaty/request/attribute/validator.rb +0 -50
  48. data/lib/treaty/response/attribute/validation/orchestrator.rb +0 -19
  49. data/lib/treaty/response/attribute/validator.rb +0 -44
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Treaty
4
- module Info
5
- module DSL
6
- def self.included(base)
7
- base.extend(ClassMethods)
8
- end
9
-
10
- module ClassMethods
11
- def info
12
- builder = Builder.build(
13
- collection_of_versions:
14
- )
15
-
16
- Result.new(builder)
17
- end
18
-
19
- # API: Treaty Web
20
- def treaty?
21
- true
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Treaty
4
- module Info
5
- class Result
6
- attr_reader :versions
7
-
8
- def initialize(builder)
9
- @versions = builder.versions
10
- end
11
- end
12
- end
13
- end
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Treaty
4
- module Request
5
- module Attribute
6
- module Validation
7
- class Orchestrator < Treaty::Attribute::Validation::Orchestrator::Base
8
- private
9
-
10
- def collection_of_attributes
11
- return Treaty::Attribute::Collection.new if version_factory.request_factory.nil?
12
-
13
- version_factory.request_factory.collection_of_attributes
14
- end
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,50 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Treaty
4
- module Request
5
- module Attribute
6
- class Validator < Treaty::Attribute::Validation::Base
7
- def self.validate!(...)
8
- new(...).validate!
9
- end
10
-
11
- def initialize(params:, version_factory:)
12
- super(version_factory:)
13
-
14
- @params = params
15
- end
16
-
17
- def validate!
18
- validate_request_attributes!
19
- end
20
-
21
- private
22
-
23
- def request_data
24
- @request_data ||= begin
25
- @params.to_unsafe_h
26
- rescue NoMethodError
27
- @params
28
- end
29
- end
30
-
31
- def validate_request_attributes!
32
- return request_data unless adapter_strategy?
33
- return request_data unless request_attributes_exist?
34
-
35
- # For adapter strategy:
36
- Validation::Orchestrator.validate!(
37
- version_factory: @version_factory,
38
- data: request_data
39
- )
40
- end
41
-
42
- def request_attributes_exist?
43
- return false if @version_factory.request_factory&.collection_of_attributes&.empty?
44
-
45
- @version_factory.request_factory.collection_of_attributes.exists?
46
- end
47
- end
48
- end
49
- end
50
- end
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Treaty
4
- module Response
5
- module Attribute
6
- module Validation
7
- class Orchestrator < Treaty::Attribute::Validation::Orchestrator::Base
8
- private
9
-
10
- def collection_of_attributes
11
- return Treaty::Attribute::Collection.new if version_factory.response_factory.nil?
12
-
13
- version_factory.response_factory.collection_of_attributes
14
- end
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Treaty
4
- module Response
5
- module Attribute
6
- class Validator < Treaty::Attribute::Validation::Base
7
- def self.validate!(version_factory:, response_data: {})
8
- new(
9
- version_factory:,
10
- response_data:
11
- ).validate!
12
- end
13
-
14
- def initialize(version_factory:, response_data: {})
15
- super(version_factory:)
16
-
17
- @response_data = response_data
18
- end
19
-
20
- def validate!
21
- validate_response_attributes!
22
- end
23
-
24
- private
25
-
26
- def validate_response_attributes!
27
- return @response_data unless response_attributes_exist?
28
-
29
- # For adapter strategy:
30
- Validation::Orchestrator.validate!(
31
- version_factory: @version_factory,
32
- data: @response_data
33
- )
34
- end
35
-
36
- def response_attributes_exist?
37
- return false if @version_factory.response_factory&.collection_of_attributes&.empty?
38
-
39
- @version_factory.response_factory.collection_of_attributes.exists?
40
- end
41
- end
42
- end
43
- end
44
- end