dsl_compose 2.7.0 → 2.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -0
  3. data/lib/dsl_compose/parser.rb +16 -2
  4. data/lib/dsl_compose/version.rb +1 -1
  5. data/sig/dsl_compose/class_coerce.rbs +14 -0
  6. data/sig/dsl_compose/composer.rbs +20 -0
  7. data/sig/dsl_compose/dsl/arguments/argument/end_with_validation.rbs +21 -0
  8. data/sig/dsl_compose/dsl/arguments/argument/equal_to_validation.rbs +20 -0
  9. data/sig/dsl_compose/dsl/arguments/argument/format_validation.rbs +22 -0
  10. data/sig/dsl_compose/dsl/arguments/argument/greater_than_or_equal_to_validation.rbs +22 -0
  11. data/sig/dsl_compose/dsl/arguments/argument/greater_than_validation.rbs +22 -0
  12. data/sig/dsl_compose/dsl/arguments/argument/in_validation.rbs +22 -0
  13. data/sig/dsl_compose/dsl/arguments/argument/interpreter.rbs +32 -0
  14. data/sig/dsl_compose/dsl/arguments/argument/is_a_validation.rbs +18 -0
  15. data/sig/dsl_compose/dsl/arguments/argument/length_validation.rbs +21 -0
  16. data/sig/dsl_compose/dsl/arguments/argument/less_than_or_equal_to_validation.rbs +21 -0
  17. data/sig/dsl_compose/dsl/arguments/argument/less_than_validation.rbs +21 -0
  18. data/sig/dsl_compose/dsl/arguments/argument/not_end_with_validation.rbs +21 -0
  19. data/sig/dsl_compose/dsl/arguments/argument/not_in_validation.rbs +21 -0
  20. data/sig/dsl_compose/dsl/arguments/argument/not_start_with_validation.rbs +21 -0
  21. data/sig/dsl_compose/dsl/arguments/argument/start_with_validation.rbs +21 -0
  22. data/sig/dsl_compose/dsl/arguments/argument.rbs +78 -0
  23. data/sig/dsl_compose/dsl/arguments.rbs +33 -0
  24. data/sig/dsl_compose/dsl/dsl_method/interpreter.rbs +18 -0
  25. data/sig/dsl_compose/dsl/dsl_method.rbs +47 -0
  26. data/sig/dsl_compose/dsl/interpreter.rbs +20 -0
  27. data/sig/dsl_compose/dsl.rbs +57 -0
  28. data/sig/dsl_compose/dsls.rbs +22 -0
  29. data/sig/dsl_compose/interpreter/execution/arguments.rbs +28 -0
  30. data/sig/dsl_compose/interpreter/execution/method_calls/method_call.rbs +26 -0
  31. data/sig/dsl_compose/interpreter/execution/method_calls.rbs +16 -0
  32. data/sig/dsl_compose/interpreter/execution.rbs +28 -0
  33. data/sig/dsl_compose/interpreter.rbs +21 -0
  34. data/sig/dsl_compose/parser/block_arguments.rbs +8 -0
  35. data/sig/dsl_compose/parser/for_children_of_parser/descendents.rbs +17 -0
  36. data/sig/dsl_compose/parser/for_children_of_parser/for_dsl_parser/for_method_parser.rbs +37 -0
  37. data/sig/dsl_compose/parser/for_children_of_parser/for_dsl_parser.rbs +36 -0
  38. data/sig/dsl_compose/parser/for_children_of_parser.rbs +32 -0
  39. data/sig/dsl_compose/parser.rbs +12 -0
  40. data/sig/dsl_compose/reader/execution_reader/arguments_reader.rbs +15 -0
  41. data/sig/dsl_compose/reader/execution_reader.rbs +17 -0
  42. data/sig/dsl_compose/reader.rbs +22 -0
  43. data/sig/dsl_compose/reader_base.rbs +17 -0
  44. data/sig/dsl_compose/shared_configuration.rbs +22 -0
  45. data/sig/dsl_compose.rbs +4 -0
  46. metadata +43 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9eca7fac101d871e9ce111652e859f93eee66b0c8997fd2d2334231f256b6ebd
4
- data.tar.gz: 3e858226842b60303d39af62eebc95208ac72b4839f816da45e8d678a078cfbc
3
+ metadata.gz: 1b3e6317cc749c3ca13077798521067f9e9a47561184b77d678865b3dcb99679
4
+ data.tar.gz: b6a123b99643edd4dfa152064099dfbbeb7c881de4f6bb5cfc437283fdf23a35
5
5
  SHA512:
6
- metadata.gz: c779883cc3eb12be2dbb13ed79cda45dff848501be4d23b283dfd1d4de6a59f3ab5301def52b7947e1d03f22671080bae84e290cf05ff7d92432892d97917365
7
- data.tar.gz: 9e14efabd12ee806787bceffa742007ae6f8d631e87f02856357418458c4d707e8702ca2eabbb8a332f1a60aadcfe73cf641fd5eef811c13ad2dfc231e76269f
6
+ metadata.gz: 2e25a2d09a7fe04eda88faeba6bf60249e2dbbfd718bdb39c9f80fd7acf9f123e684062adfc66e9022c3c3b734a36e8c2315e099ddb0c7e5ec6adb83966af4ea
7
+ data.tar.gz: 7c11c40bf4828f5d6e862dec367cf0f6c0c96c45651027b0e3f9ec427c4432a10be7a0b7864639d56a2aec5b310d71d497ff5e19936bc77f2018d34b3844c361
data/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.9.0](https://github.com/craigulliott/dsl_compose/compare/v2.8.0...v2.9.0) (2023-08-31)
4
+
5
+
6
+ ### Features
7
+
8
+ * adding rbs signatures to built gem so they are available in other projects ([1733e11](https://github.com/craigulliott/dsl_compose/commit/1733e1103921fd6724cf994ce430ef0f2a1f7806))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * improving the rerun_all method so that the list of parsers to rerun does not depend on a parser having previously executed it's for_children_of method ([679d896](https://github.com/craigulliott/dsl_compose/commit/679d896c3efb2c5808b99f7fb996ca66f17d541d))
14
+
15
+ ## [2.8.0](https://github.com/craigulliott/dsl_compose/compare/v2.7.0...v2.8.0) (2023-08-31)
16
+
17
+
18
+ ### Features
19
+
20
+ * adding a rerun_all singleton method to re-execute all parsers in the system (useful from within specs) ([d0c4ee3](https://github.com/craigulliott/dsl_compose/commit/d0c4ee3cc41da45e774a17ab9d57990dbbf59603))
21
+
3
22
  ## [2.7.0](https://github.com/craigulliott/dsl_compose/compare/v2.6.1...v2.7.0) (2023-08-29)
4
23
 
5
24
 
@@ -54,9 +54,9 @@ module DSLCompose
54
54
  end
55
55
 
56
56
  # this method is used to rerun the parser, this is most useful from within a test suite
57
- # when you are testing the parser itself
57
+ # when you are testing the parser or the effects of running the parser
58
58
  def self.rerun
59
- # rerun each parset tests
59
+ # rerun each parser for this specific class
60
60
  @runs&.each do |run|
61
61
  base_class = run[:base_class]
62
62
  block = run[:block]
@@ -64,5 +64,19 @@ module DSLCompose
64
64
  for_children_of base_class, rerun: true, final_children_only: final_children_only, &block
65
65
  end
66
66
  end
67
+
68
+ # so we know which parsers have run, and in which order
69
+ def self.inherited subclass
70
+ @@all_parser_classes ||= []
71
+ @@all_parser_classes << subclass
72
+ end
73
+
74
+ # this method is used to rerun all of the parsers, this is most useful from within a test suite
75
+ # when you are testing the parser or the effects of running the parser
76
+ def self.rerun_all
77
+ @@all_parser_classes.each do |parser_class|
78
+ parser_class.rerun
79
+ end
80
+ end
67
81
  end
68
82
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DSLCompose
4
- VERSION = "2.7.0"
4
+ VERSION = "2.9.0"
5
5
  end
@@ -0,0 +1,14 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class ClassCoerce
4
+ @class_name: String
5
+
6
+ def initialize: (String class_name) -> void
7
+ def to_class: -> untyped
8
+
9
+
10
+ class UnexpectedClassNameError < StandardError
11
+ end
12
+
13
+ end
14
+ end
@@ -0,0 +1,20 @@
1
+ # Classes
2
+ module DSLCompose
3
+ module Composer
4
+ def self.included: (untyped klass) -> untyped
5
+
6
+ def self.get_dsl: (Symbol name) -> DSL
7
+
8
+ def self.define_dsl: (Symbol name) -> void
9
+
10
+ class ComposerAlreadyInstalledError < StandardError
11
+ end
12
+
13
+ class MethodAlreadyExistsWithThisDSLNameError < StandardError
14
+ end
15
+
16
+ class GetDSLExecutionResultsMethodAlreadyExistsError < StandardError
17
+ end
18
+
19
+ end
20
+ end
@@ -0,0 +1,21 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class DSL
4
+ class Arguments
5
+ class Argument
6
+ class EndWithValidation
7
+ @values: Array[Symbol]
8
+
9
+ def initialize: (Symbol | Array[Symbol]) -> void
10
+ def validate!: (Symbol | String value) -> true
11
+
12
+ class InvalidValueError < StandardError
13
+ end
14
+
15
+ class ValidationFailedError < StandardError
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,20 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class DSL
4
+ class Arguments
5
+ class Argument
6
+ class EqualToValidation
7
+ @value: Numeric | String | Symbol | bool
8
+
9
+ def initialize: (Numeric | String | Symbol | bool value) -> void
10
+ def validate!: (Numeric | String | Symbol | bool value) -> true
11
+
12
+
13
+ class ValidationFailedError < StandardError
14
+ end
15
+
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,22 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class DSL
4
+ class Arguments
5
+ class Argument
6
+ class FormatValidation
7
+ @regex: Regexp
8
+
9
+ def initialize: (Regexp regex) -> void
10
+ def validate!: (String value) -> true
11
+
12
+ class InvalidValueError < StandardError
13
+ end
14
+
15
+ class ValidationFailedError < StandardError
16
+ end
17
+
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class DSL
4
+ class Arguments
5
+ class Argument
6
+ class GreaterThanOrEqualToValidation
7
+ @value: Numeric
8
+
9
+ def initialize: (Numeric value) -> void
10
+ def validate!: (Numeric value) -> true
11
+
12
+ class InvalidValueError < StandardError
13
+ end
14
+
15
+ class ValidationFailedError < StandardError
16
+ end
17
+
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class DSL
4
+ class Arguments
5
+ class Argument
6
+ class GreaterThanValidation
7
+ @value: Numeric
8
+
9
+ def initialize: (Numeric value) -> void
10
+ def validate!: (Numeric value) -> true
11
+
12
+ class InvalidValueError < StandardError
13
+ end
14
+
15
+ class ValidationFailedError < StandardError
16
+ end
17
+
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class DSL
4
+ class Arguments
5
+ class Argument
6
+ class InValidation
7
+ @values: Array[Numeric | Symbol | String]
8
+
9
+ def initialize: (Array[Numeric | Symbol | String] values) -> void
10
+ def validate!: (Numeric | Symbol | String value) -> true
11
+
12
+ class InvalidValueError < StandardError
13
+ end
14
+
15
+ class ValidationFailedError < StandardError
16
+ end
17
+
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,32 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class DSL
4
+ class Arguments
5
+ class Argument
6
+ class Interpreter
7
+ @argument: Argument
8
+
9
+ def initialize: (Argument argument) -> void
10
+ def instance_eval: () -> void
11
+
12
+ private
13
+ def description: (String description) -> void
14
+ def validate_greater_than: (Numeric value) -> void
15
+ def validate_greater_than_or_equal_to: (Numeric value) -> void
16
+ def validate_less_than: (Numeric value) -> void
17
+ def validate_less_than_or_equal_to: (Numeric value) -> void
18
+ def validate_equal_to: (Numeric value) -> void
19
+ def validate_length: (?minimum: Numeric?, ?maximum: Numeric?, ?is: Numeric?) -> void
20
+ def validate_not_in: ([Numeric | Symbol | String] values) -> void
21
+ def validate_in: ([Numeric | Symbol | String] values) -> void
22
+ def validate_end_with: (Symbol | Array[Symbol] value) -> void
23
+ def validate_not_end_with: (Symbol | Array[Symbol] value) -> void
24
+ def validate_start_with: (Symbol | Array[Symbol] value) -> void
25
+ def validate_not_start_with: (Symbol | Array[Symbol] value) -> void
26
+ def validate_format: (Regexp regex) -> void
27
+ def validate_is_a: (String class_name) -> void
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,18 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class DSL
4
+ class Arguments
5
+ class Argument
6
+ class IsAValidation
7
+ @value: Object
8
+
9
+ def initialize: (Object value) -> void
10
+ def validate!: (untyped value) -> true
11
+
12
+ class ValidationFailedError < StandardError
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,21 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class DSL
4
+ class Arguments
5
+ class Argument
6
+ class LengthValidation
7
+ @maximum: nil | Numeric
8
+ @minimum: nil | Numeric
9
+ @is: nil | Numeric
10
+
11
+ def initialize: (?maximum: nil | Numeric, ?minimum: nil | Numeric, ?is: nil | Numeric) -> void
12
+ def validate!: (String | Symbol value) -> true
13
+
14
+ class ValidationFailedError < StandardError
15
+ end
16
+
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class DSL
4
+ class Arguments
5
+ class Argument
6
+ class LessThanOrEqualToValidation
7
+ @value: Numeric
8
+
9
+ def initialize: (Numeric value) -> void
10
+ def validate!: (Numeric value) -> true
11
+
12
+ class InvalidValueError < StandardError
13
+ end
14
+
15
+ class ValidationFailedError < StandardError
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class DSL
4
+ class Arguments
5
+ class Argument
6
+ class LessThanValidation
7
+ @value: Numeric
8
+
9
+ def initialize: (Numeric value) -> void
10
+ def validate!: (Numeric value) -> true
11
+
12
+ class InvalidValueError < StandardError
13
+ end
14
+
15
+ class ValidationFailedError < StandardError
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class DSL
4
+ class Arguments
5
+ class Argument
6
+ class NotEndWithValidation
7
+ @values: Array[Symbol]
8
+
9
+ def initialize: (Symbol | Array[Symbol]) -> void
10
+ def validate!: (Symbol | String value) -> true
11
+
12
+ class InvalidValueError < StandardError
13
+ end
14
+
15
+ class ValidationFailedError < StandardError
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class DSL
4
+ class Arguments
5
+ class Argument
6
+ class NotInValidation
7
+ @values: Array[Numeric | Symbol | String]
8
+
9
+ def initialize: (Array[Numeric | Symbol | String] values) -> void
10
+ def validate!: (Numeric | Symbol | String value) -> true
11
+
12
+ class InvalidValueError < StandardError
13
+ end
14
+
15
+ class ValidationFailedError < StandardError
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class DSL
4
+ class Arguments
5
+ class Argument
6
+ class NotStartWithValidation
7
+ @values: Array[Symbol]
8
+
9
+ def initialize: (Symbol | Array[Symbol]) -> void
10
+ def validate!: (Symbol | String value) -> true
11
+
12
+ class InvalidValueError < StandardError
13
+ end
14
+
15
+ class ValidationFailedError < StandardError
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class DSL
4
+ class Arguments
5
+ class Argument
6
+ class StartWithValidation
7
+ @values: Array[Symbol]
8
+
9
+ def initialize: (Symbol | Array[Symbol]) -> void
10
+ def validate!: (Symbol | String value) -> true
11
+
12
+ class InvalidValueError < StandardError
13
+ end
14
+
15
+ class ValidationFailedError < StandardError
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,78 @@
1
+ type argument_type = :integer | :string | :boolean | :float | :array | :symbol | :class | :object
2
+ # Classes
3
+ module DSLCompose
4
+ class DSL
5
+ class Arguments
6
+ class Argument
7
+ RESERVED_ARGUMENT_NAMES: Array[Symbol]
8
+
9
+ attr_reader name: Symbol
10
+ attr_reader type: argument_type
11
+ attr_reader required: bool
12
+ attr_reader array: bool
13
+ attr_reader description: String
14
+
15
+ attr_reader greater_than_validation: GreaterThanValidation
16
+ attr_reader greater_than_or_equal_to_validation: GreaterThanOrEqualToValidation
17
+ attr_reader less_than_validation: LessThanValidation
18
+ attr_reader less_than_or_equal_to_validation: LessThanOrEqualToValidation
19
+ attr_reader format_validation: FormatValidation
20
+ attr_reader equal_to_validation: EqualToValidation
21
+ attr_reader in_validation: InValidation
22
+ attr_reader not_in_validation: NotInValidation
23
+ attr_reader end_with_validation: EndWithValidation
24
+ attr_reader not_end_with_validation: NotEndWithValidation
25
+ attr_reader start_with_validation: StartWithValidation
26
+ attr_reader not_start_with_validation: NotStartWithValidation
27
+ attr_reader length_validation: LengthValidation
28
+ attr_reader is_a_validation: IsAValidation
29
+
30
+ def initialize: (Symbol name, bool required, argument_type `type`, ?array: bool) -> void
31
+ def set_description: (String description) -> void
32
+ def has_description?: () -> bool
33
+ def required?: -> bool
34
+ def optional?: -> bool
35
+
36
+ def validate_greater_than: (Numeric value) -> void
37
+ def validate_greater_than_or_equal_to: (Numeric value) -> void
38
+ def validate_less_than: (Numeric value) -> void
39
+ def validate_less_than_or_equal_to: (Numeric value) -> void
40
+ def validate_format: (Regexp regexp) -> void
41
+ def validate_equal_to: (Numeric | Symbol | String value) -> void
42
+ def validate_in: (Array[Numeric | Symbol | String] values) -> void
43
+ def validate_not_in: (Array[Numeric | Symbol | String] values) -> void
44
+ def validate_end_with: (Symbol | Array[Symbol] value) -> void
45
+ def validate_not_end_with: (Symbol | Array[Symbol] value) -> void
46
+ def validate_start_with: (Symbol | Array[Symbol] value) -> void
47
+ def validate_not_start_with: (Symbol | Array[Symbol] value) -> void
48
+ def validate_length: (?maximum: nil | Numeric, ?minimum: nil | Numeric, ?is: nil | Numeric) -> void
49
+ def validate_is_a: (String class_name) -> void
50
+
51
+ class ValidationInvalidArgumentError < StandardError
52
+ end
53
+
54
+ class ValidationIncompatibleError < StandardError
55
+ def message: -> untyped
56
+ end
57
+
58
+ class ValidationAlreadyExistsError < StandardError
59
+ end
60
+
61
+ class InvalidTypeError < StandardError
62
+ end
63
+
64
+ class ArgumentNameReservedError < StandardError
65
+ end
66
+
67
+ class InvalidNameError < StandardError
68
+ end
69
+
70
+ class InvalidDescriptionError < StandardError
71
+ end
72
+
73
+ class DescriptionAlreadyExistsError < StandardError
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,33 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class DSL
4
+ class Arguments
5
+ @arguments: Hash[Symbol, Argument]
6
+
7
+ def initialize: -> void
8
+ def arguments: -> Array[Argument]
9
+ def optional_arguments: -> Array[Argument]
10
+ def required_arguments: -> Array[Argument]
11
+ def argument: (Symbol name) -> Argument
12
+ def optional_argument: (Symbol name) -> Argument
13
+ def required_argument: (Symbol name) -> Argument
14
+ def has_argument?: (Symbol name) -> bool
15
+ def add_argument: (Symbol name, bool required, argument_type `type`, ?array: bool) -> Argument
16
+
17
+ class ArgumentDoesNotExistError < StandardError
18
+ end
19
+
20
+ class ArgumentOrderingError < StandardError
21
+ end
22
+
23
+ class ArgumentAlreadyExistsError < StandardError
24
+ end
25
+
26
+ class RequestedOptionalArgumentIsRequiredError < StandardError
27
+ end
28
+
29
+ class RequestedRequiredArgumentIsOptionalError < StandardError
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,18 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class DSL
4
+ class DSLMethod
5
+ class Interpreter
6
+ @dsl_method: DSLMethod
7
+
8
+ def initialize: (DSLMethod dsl_method) -> void
9
+ def instance_eval: () -> void
10
+
11
+ private
12
+ def description: (String description) -> void
13
+ def optional: (Symbol name, argument_type `type`, ?array: bool) -> void
14
+ def requires: (Symbol name, argument_type `type`, ?array: bool) -> void
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,47 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class DSL
4
+ class DSLMethod
5
+
6
+ attr_reader name: Symbol
7
+ attr_reader unique: bool
8
+ attr_reader required: bool
9
+ attr_reader description: String
10
+ attr_reader arguments: Arguments
11
+
12
+ def initialize: (Symbol name, bool unique, bool required) -> void
13
+ def set_description: (String description) -> void
14
+ def has_description?: -> bool
15
+ def unique?: -> bool
16
+ def required?: -> bool
17
+ def optional?: -> bool
18
+
19
+ class ArgumentDoesNotExistError < StandardError
20
+ end
21
+
22
+ class InvalidNameError < StandardError
23
+ end
24
+
25
+ class MethodNameIsReservedError < StandardError
26
+ end
27
+
28
+ class InvalidDescriptionError < StandardError
29
+ end
30
+
31
+ class DescriptionAlreadyExistsError < StandardError
32
+ end
33
+
34
+ class ArgumentOrderingError < StandardError
35
+ end
36
+
37
+ class ArgumentAlreadyExistsError < StandardError
38
+ end
39
+
40
+ class RequestedOptionalArgumentIsRequiredError < StandardError
41
+ end
42
+
43
+ class RequestedRequiredArgumentIsOptionalError < StandardError
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,20 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class DSL
4
+ class Interpreter
5
+ @dsl: DSL
6
+
7
+ def initialize: (DSL dsl) -> void
8
+ def instance_eval: () -> void
9
+
10
+ private
11
+ def description: (String description) -> void
12
+ def namespace: (Symbol namespace) -> void
13
+ def title: (String title) -> void
14
+ def add_method: (Symbol name, ?required: nil) -> void
15
+ def add_unique_method: (Symbol name, ?required: nil) -> void
16
+ def optional: (Symbol name, argument_type `type`, ?array: bool) -> void
17
+ def requires: (Symbol name, argument_type `type`, ?array: bool) -> void
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,57 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class DSL
4
+ @dsl_methods: Hash[Symbol, DSLMethod]
5
+
6
+ attr_reader name: Symbol
7
+ attr_reader arguments: Arguments
8
+ attr_reader klass: Object
9
+ attr_reader description: String
10
+ attr_reader namespace: Symbol
11
+ attr_reader title: String
12
+ def initialize: (Symbol name, Object klass) -> void
13
+ def evaluate_configuration_block: () -> void
14
+ def set_description: (String description) -> String
15
+ def has_description?: -> bool
16
+ def set_namespace: (Symbol namespace) -> Symbol
17
+ def has_namespace?: -> bool
18
+ def set_title: (String title) -> String
19
+ def has_title?: -> bool
20
+ def add_method: (Symbol name, bool unique, bool required) -> DSLMethod
21
+ def dsl_methods: -> Array[DSLMethod]
22
+ def required_dsl_methods: -> Array[DSLMethod]
23
+ def optional_dsl_methods: -> Array[DSLMethod]
24
+ def dsl_method: (Symbol name) -> DSLMethod
25
+ def has_dsl_method?: (Symbol name) -> bool
26
+
27
+ class MethodDoesNotExistError < StandardError
28
+ end
29
+
30
+ class MethodAlreadyExistsError < StandardError
31
+ end
32
+
33
+ class InvalidNameError < StandardError
34
+ end
35
+
36
+ class NoBlockProvidedError < StandardError
37
+ end
38
+
39
+ class InvalidDescriptionError < StandardError
40
+ end
41
+
42
+ class DescriptionAlreadyExistsError < StandardError
43
+ end
44
+
45
+ class InvalidNamespaceError < StandardError
46
+ end
47
+
48
+ class NamespaceAlreadyExistsError < StandardError
49
+ end
50
+
51
+ class InvalidTitleError < StandardError
52
+ end
53
+
54
+ class TitleAlreadyExistsError < StandardError
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,22 @@
1
+ # Classes
2
+ module DSLCompose
3
+ module DSLs
4
+ self.@dsls: Hash[Object, Hash[Symbol, DSL]]
5
+
6
+ def self.create_dsl: (Object klass, Symbol name) -> DSL
7
+ def self.class_dsl_exists?: (Object klass, Symbol name) -> bool
8
+ def self.dsls: -> Hash[Object, Hash[Symbol, DSL]]
9
+ def self.class_dsls: (Object klass) -> Array[DSL]
10
+ def self.class_dsl: (Object klass, Symbol name) -> DSL
11
+ def self.reset: -> void
12
+
13
+ class ClassDSLDefinitionDoesNotExistError < StandardError
14
+ end
15
+
16
+ class DSLAlreadyExistsError < StandardError
17
+ end
18
+
19
+ class NoDSLDefinitionsForClassError < StandardError
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,28 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class Interpreter
4
+ class Execution
5
+ class Arguments
6
+ attr_reader arguments: Hash[untyped, untyped]
7
+ def initialize: (untyped arguments, *untyped args) -> void
8
+ def to_h: -> Hash[untyped, untyped]
9
+
10
+ class MissingRequiredArgumentsError < StandardError
11
+ def initialize: (untyped required_count, untyped provided_count) -> void
12
+ end
13
+
14
+ class TooManyArgumentsError < StandardError
15
+ end
16
+
17
+ class OptionalArgumentsShouldBeHashError < StandardError
18
+ end
19
+
20
+ class InvalidArgumentTypeError < StandardError
21
+ end
22
+
23
+ class ArrayNotValidError < StandardError
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,26 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class Interpreter
4
+ class Execution
5
+ class MethodCalls
6
+ class MethodCall
7
+ class InvalidDescriptionError < StandardError
8
+ end
9
+
10
+ @method_call: MethodCall
11
+ @parser_usage_notes: Array[String]
12
+
13
+ attr_reader dsl_method: DSL::DSLMethod
14
+ attr_reader arguments: Arguments
15
+
16
+ def initialize: (DSL::DSLMethod dsl_method, *untyped args) -> void
17
+ def method_name: -> Symbol
18
+ def add_parser_usage_note: (String note) -> void
19
+ def parser_usage_notes: () -> Array[String]
20
+
21
+ def to_h: -> Hash[untyped, untyped]
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,16 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class Interpreter
4
+ class Execution
5
+ class MethodCalls
6
+ @method_calls: Array[MethodCall]
7
+
8
+ def initialize: -> void
9
+ def method_calls: () -> Array[MethodCall]
10
+ def method_called?: (Symbol method_name) -> bool
11
+ def method_calls_by_name: (Symbol method_name) -> Array[MethodCall]
12
+ def add_method_call: (DSL::DSLMethod dsl_method, *untyped args) -> MethodCall
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,28 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class Interpreter
4
+ class Execution
5
+ @parser_usage_notes: Array[String]
6
+
7
+ attr_reader dsl: DSL
8
+ attr_reader klass: Object
9
+ attr_reader method_calls: MethodCalls
10
+ attr_reader arguments: Arguments
11
+
12
+ def initialize: (Object klass, DSL dsl, *untyped args) -> void
13
+ def instance_eval: () -> void
14
+ def add_parser_usage_note: (String note) -> void
15
+ def parser_usage_notes: () -> Array[String]
16
+
17
+ private
18
+ def method_missing: (Symbol method_name, *untyped args) -> untyped
19
+ def respond_to_missing?: (Symbol method_name, *untyped args) -> untyped
20
+
21
+ class MethodIsUniqueError < StandardError
22
+ end
23
+
24
+ class RequiredMethodNotCalledError < StandardError
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,21 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class Interpreter
4
+ @parser_usage_notes: Hash[singleton(Object), Array[String]]
5
+ attr_reader executions: Array[Execution]
6
+ def initialize: -> void
7
+ def execute_dsl: (untyped klass, DSL dsl, *untyped args) -> Execution
8
+ def class_executions: (singleton(Object) klass) -> Array[Execution]
9
+ def dsl_executions: (Symbol dsl_name) -> Array[Execution]
10
+ def to_h: (Symbol dsl_name) -> Hash[Symbol, Hash[Symbol, Array[Hash[Symbol, Symbol]]]]
11
+ def executions_by_class: () -> Hash[Symbol, Hash[Symbol, Array[Hash[Symbol, Symbol]]]]
12
+ def add_parser_usage_note: (singleton(Object) klass, String note) -> void
13
+ def parser_usage_notes: (singleton(Object) klass) -> Array[String]
14
+
15
+ class InvalidDescriptionError < StandardError
16
+ end
17
+
18
+ class DSLExecutionNotFoundError < StandardError
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,8 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class Parser
4
+ class BlockArguments
5
+ def self.accepts_argument?: (Symbol arg_name) -> bool
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,17 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class Parser
4
+ class ForChildrenOfParser
5
+ class Descendents
6
+ @base_class: singleton(Object)
7
+ @final_children_only: bool
8
+
9
+ def initialize: (singleton(Object) base_class, bool final_children_only) -> void
10
+ def classes: -> Array[singleton(Object)]
11
+
12
+ private
13
+ def has_descendents: (singleton(Object) base_class) -> bool
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,37 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class Parser
4
+ class ForChildrenOfParser
5
+ class ForDSLParser
6
+ class ForMethodParser
7
+ @base_class: singleton(Object)
8
+ @child_class: singleton(Object)
9
+ @dsl_execution: Interpreter::Execution
10
+ @method_names: Array[Symbol]
11
+ @method_name: Symbol
12
+ @method_call: Interpreter::Execution::MethodCalls::MethodCall
13
+
14
+ def initialize: (singleton(Object) base_class, singleton(Object) child_class, Interpreter::Execution dsl_execution, Array[Symbol] method_names) -> void
15
+
16
+ # overriding this method because steep doesn't
17
+ # correctly infer that a block is being passed to this method
18
+ def instance_exec: (
19
+ ::Hash[untyped, untyped] args
20
+ ) -> void
21
+
22
+ class AllBlockParametersMustBeKeywordParametersError < StandardError
23
+ end
24
+
25
+ class NoBlockProvided < StandardError
26
+ end
27
+
28
+ class MethodDoesNotExistError < StandardError
29
+ end
30
+
31
+ class MethodNamesShouldBeSymbolsError < StandardError
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,36 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class Parser
4
+ class ForChildrenOfParser
5
+ class ForDSLParser
6
+ @base_class: singleton(Object)
7
+ @child_class: singleton(Object)
8
+ @dsl_names: Array[Symbol]
9
+ @dsl_execution: Interpreter::Execution
10
+
11
+ def initialize: (singleton(Object) base_class, singleton(Object) child_class, Array[Symbol] dsl_names, bool on_current_class, bool on_ancestor_class) -> void
12
+
13
+ # overriding this method because steep doesn't
14
+ # correctly infer that a block is being passed to this method
15
+ def instance_exec: (
16
+ ::Hash[untyped, untyped] args
17
+ ) -> void
18
+
19
+ private
20
+ def for_method: (Array[Symbol] method_names) -> void
21
+
22
+ class AllBlockParametersMustBeKeywordParametersError < StandardError
23
+ end
24
+
25
+ class NoBlockProvided < StandardError
26
+ end
27
+
28
+ class DSLDoesNotExistError < StandardError
29
+ end
30
+
31
+ class DSLNamesShouldBeSymbolsError < StandardError
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,32 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class Parser
4
+ class ForChildrenOfParser
5
+ @base_class: singleton(Object)
6
+ @child_class: singleton(Object)
7
+
8
+ def initialize: (singleton(Object) base_class, bool final_children_only) -> void
9
+
10
+ # overriding this method because steep doesn't
11
+ # correctly infer that a block is being passed to this method
12
+ def instance_exec: (
13
+ ::Hash[untyped, untyped] args
14
+ ) -> void
15
+
16
+ private
17
+ def for_dsl: (Array[Symbol] dsl_names, ?on_current_class: bool, ?on_ancestor_class: bool) -> untyped
18
+
19
+ class AllBlockParametersMustBeKeywordParametersError < StandardError
20
+ end
21
+
22
+ class ClassDoesNotUseDSLComposeError < StandardError
23
+ end
24
+
25
+ class NoBlockProvided < StandardError
26
+ end
27
+
28
+ class NoChildClassError < StandardError
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,12 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class Parser
4
+ self.@runs: untyped
5
+
6
+ def initialize: -> void
7
+ def self.for_children_of: (singleton(Object) base_class, ?final_children_only: bool, ?rerun: bool) -> void
8
+
9
+ class NotInitializable < StandardError
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,15 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class Reader
4
+ class ExecutionReader
5
+ class ArgumentsReader
6
+ @arguments: DSL::Arguments
7
+ @argument_values: Interpreter::Execution::Arguments
8
+
9
+ def initialize: (DSL::Arguments arguments, Interpreter::Execution::Arguments argument_values) -> void
10
+ def method_missing: (Symbol method_name) -> (ArgumentsReader | nil)
11
+ def respond_to_missing?: (Symbol method_name) -> bool
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class Reader
4
+ class ExecutionReader
5
+ @execution: Interpreter::Execution
6
+
7
+ def initialize: (Interpreter::Execution execution) -> void
8
+ def arguments: -> ArgumentsReader
9
+ def method_called?: (Symbol method_name) -> bool
10
+ def method_missing: (Symbol method_name) -> (nil | ArgumentsReader | Array[ArgumentsReader])
11
+ def respond_to_missing?: (Symbol method_name) -> bool
12
+
13
+ class InvalidExecution < StandardError
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,22 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class Reader
4
+ @klass: Class
5
+ @dsl_name: Symbol
6
+ @dsl: DSL
7
+ @dsl_defining_class: Class
8
+
9
+ def initialize: (untyped klass, Symbol dsl_name) -> void
10
+ def last_execution: -> (ExecutionReader | nil)
11
+ def last_execution!: -> ExecutionReader
12
+ def executions: -> Array[ExecutionReader]
13
+ def ancestor_executions: -> Array[ExecutionReader]
14
+ def all_executions: -> Array[ExecutionReader]
15
+ def dsl_used?: -> bool
16
+ def dsl_used_on_ancestors?: -> bool
17
+ def dsl_used_on_class_or_ancestors?: -> bool
18
+
19
+ class DSLNotFound < StandardError
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,17 @@
1
+ # Classes
2
+ module DSLCompose
3
+ class ReaderBase
4
+ attr_reader base_class: singleton(Object)
5
+ attr_reader dsl_name: Symbol
6
+ attr_reader reader: Reader
7
+ def initialize: (singleton(Object) base_class) -> void
8
+
9
+ private
10
+ def dsl_name_from_class_name: (singleton(ReaderBase) reader_class) -> Symbol
11
+ def last_execution: -> (Reader::ExecutionReader | nil)
12
+ def last_execution!: -> Reader::ExecutionReader
13
+ def executions: -> Array[Reader::ExecutionReader]
14
+ def ancestor_executions: -> Array[Reader::ExecutionReader]
15
+ def all_executions: -> Array[Reader::ExecutionReader]
16
+ end
17
+ end
@@ -0,0 +1,22 @@
1
+ # Classes
2
+ module DSLCompose
3
+ module SharedConfiguration
4
+ self.@shared_configuration: Hash[Symbol, untyped]
5
+
6
+ def self.add: (Symbol name) -> void
7
+ def self.get: (Symbol name) -> untyped
8
+ def self.clear: -> Hash[Symbol, untyped]
9
+
10
+ class SharedConfigurationAlreadyExistsError < StandardError
11
+ end
12
+
13
+ class SharedConfigurationDoesNotExistError < StandardError
14
+ end
15
+
16
+ class InvalidSharedConfigurationNameError < StandardError
17
+ end
18
+
19
+ class NoBlockProvidedError < StandardError
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,4 @@
1
+ module DSLCompose
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dsl_compose
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.0
4
+ version: 2.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Craig Ulliott
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-29 00:00:00.000000000 Z
11
+ date: 2023-08-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: class_spec_helper
@@ -79,6 +79,47 @@ files:
79
79
  - lib/dsl_compose/reader_base.rb
80
80
  - lib/dsl_compose/shared_configuration.rb
81
81
  - lib/dsl_compose/version.rb
82
+ - sig/dsl_compose.rbs
83
+ - sig/dsl_compose/class_coerce.rbs
84
+ - sig/dsl_compose/composer.rbs
85
+ - sig/dsl_compose/dsl.rbs
86
+ - sig/dsl_compose/dsl/arguments.rbs
87
+ - sig/dsl_compose/dsl/arguments/argument.rbs
88
+ - sig/dsl_compose/dsl/arguments/argument/end_with_validation.rbs
89
+ - sig/dsl_compose/dsl/arguments/argument/equal_to_validation.rbs
90
+ - sig/dsl_compose/dsl/arguments/argument/format_validation.rbs
91
+ - sig/dsl_compose/dsl/arguments/argument/greater_than_or_equal_to_validation.rbs
92
+ - sig/dsl_compose/dsl/arguments/argument/greater_than_validation.rbs
93
+ - sig/dsl_compose/dsl/arguments/argument/in_validation.rbs
94
+ - sig/dsl_compose/dsl/arguments/argument/interpreter.rbs
95
+ - sig/dsl_compose/dsl/arguments/argument/is_a_validation.rbs
96
+ - sig/dsl_compose/dsl/arguments/argument/length_validation.rbs
97
+ - sig/dsl_compose/dsl/arguments/argument/less_than_or_equal_to_validation.rbs
98
+ - sig/dsl_compose/dsl/arguments/argument/less_than_validation.rbs
99
+ - sig/dsl_compose/dsl/arguments/argument/not_end_with_validation.rbs
100
+ - sig/dsl_compose/dsl/arguments/argument/not_in_validation.rbs
101
+ - sig/dsl_compose/dsl/arguments/argument/not_start_with_validation.rbs
102
+ - sig/dsl_compose/dsl/arguments/argument/start_with_validation.rbs
103
+ - sig/dsl_compose/dsl/dsl_method.rbs
104
+ - sig/dsl_compose/dsl/dsl_method/interpreter.rbs
105
+ - sig/dsl_compose/dsl/interpreter.rbs
106
+ - sig/dsl_compose/dsls.rbs
107
+ - sig/dsl_compose/interpreter.rbs
108
+ - sig/dsl_compose/interpreter/execution.rbs
109
+ - sig/dsl_compose/interpreter/execution/arguments.rbs
110
+ - sig/dsl_compose/interpreter/execution/method_calls.rbs
111
+ - sig/dsl_compose/interpreter/execution/method_calls/method_call.rbs
112
+ - sig/dsl_compose/parser.rbs
113
+ - sig/dsl_compose/parser/block_arguments.rbs
114
+ - sig/dsl_compose/parser/for_children_of_parser.rbs
115
+ - sig/dsl_compose/parser/for_children_of_parser/descendents.rbs
116
+ - sig/dsl_compose/parser/for_children_of_parser/for_dsl_parser.rbs
117
+ - sig/dsl_compose/parser/for_children_of_parser/for_dsl_parser/for_method_parser.rbs
118
+ - sig/dsl_compose/reader.rbs
119
+ - sig/dsl_compose/reader/execution_reader.rbs
120
+ - sig/dsl_compose/reader/execution_reader/arguments_reader.rbs
121
+ - sig/dsl_compose/reader_base.rbs
122
+ - sig/dsl_compose/shared_configuration.rbs
82
123
  homepage:
83
124
  licenses:
84
125
  - MIT