muina 0.2.7 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (159) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +25 -0
  3. data/README.md +0 -35
  4. data/lib/muina/maybe/none.rb +57 -0
  5. data/lib/muina/maybe/some.rb +61 -0
  6. data/lib/muina/maybe.rb +13 -0
  7. data/lib/muina/version.rb +1 -2
  8. data/lib/muina.rb +0 -32
  9. metadata +24 -226
  10. data/.github/workflows/main.yml +0 -16
  11. data/.gitignore +0 -5
  12. data/.mutant.yml +0 -38
  13. data/.rspec +0 -4
  14. data/.rubocop.yml +0 -172
  15. data/.ruby-version +0 -1
  16. data/.simplecov +0 -14
  17. data/CHANGELOG.md +0 -38
  18. data/Gemfile +0 -34
  19. data/Gemfile.lock +0 -265
  20. data/Guardfile +0 -24
  21. data/Rakefile +0 -13
  22. data/SECURITY.md +0 -14
  23. data/bin/bundle +0 -114
  24. data/bin/console +0 -15
  25. data/bin/flay +0 -29
  26. data/bin/flog +0 -29
  27. data/bin/guard +0 -29
  28. data/bin/irb +0 -29
  29. data/bin/lefthook +0 -29
  30. data/bin/mutant +0 -29
  31. data/bin/parlour +0 -29
  32. data/bin/rake +0 -29
  33. data/bin/rspec +0 -29
  34. data/bin/rubocop +0 -29
  35. data/bin/setup +0 -8
  36. data/bin/srb +0 -29
  37. data/bin/srb-rbi +0 -29
  38. data/bin/tapioca +0 -29
  39. data/exe/muina +0 -11
  40. data/lefthook.yml +0 -39
  41. data/lib/muina/action/params_factory.rb +0 -17
  42. data/lib/muina/action/step/command.rb +0 -31
  43. data/lib/muina/action/step/failure.rb +0 -18
  44. data/lib/muina/action/step/query.rb +0 -31
  45. data/lib/muina/action/step/result.rb +0 -51
  46. data/lib/muina/action/step.rb +0 -13
  47. data/lib/muina/action.rb +0 -73
  48. data/lib/muina/any.rb +0 -7
  49. data/lib/muina/classes.rb +0 -7
  50. data/lib/muina/module.rb +0 -6
  51. data/lib/muina/parameters.rb +0 -7
  52. data/lib/muina/params.rb +0 -19
  53. data/lib/muina/private_creation.rb +0 -12
  54. data/lib/muina/result/factory.rb +0 -37
  55. data/lib/muina/result/failure.rb +0 -31
  56. data/lib/muina/result/null.rb +0 -25
  57. data/lib/muina/result/success.rb +0 -31
  58. data/lib/muina/result.rb +0 -17
  59. data/lib/muina/service.rb +0 -37
  60. data/lib/muina/symbol_hash.rb +0 -7
  61. data/lib/muina/unit.rb +0 -10
  62. data/lib/muina/untyped_array.rb +0 -7
  63. data/lib/muina/untyped_hash.rb +0 -7
  64. data/lib/muina/value.rb +0 -16
  65. data/muina.gemspec +0 -35
  66. data/rbi/muina.rbi +0 -268
  67. data/sorbet/config +0 -2
  68. data/sorbet/rbi/gems/actionpack@6.1.4.rbi +0 -5045
  69. data/sorbet/rbi/gems/actionview@6.1.4.rbi +0 -2416
  70. data/sorbet/rbi/gems/activesupport@6.1.4.rbi +0 -3778
  71. data/sorbet/rbi/gems/ast@2.4.2.rbi +0 -54
  72. data/sorbet/rbi/gems/awesome_print@1.9.2.rbi +0 -322
  73. data/sorbet/rbi/gems/builder@3.2.4.rbi +0 -8
  74. data/sorbet/rbi/gems/byebug@11.1.3.rbi +0 -18
  75. data/sorbet/rbi/gems/coderay@1.1.3.rbi +0 -8
  76. data/sorbet/rbi/gems/colorize@0.8.1.rbi +0 -39
  77. data/sorbet/rbi/gems/commander@4.6.0.rbi +0 -8
  78. data/sorbet/rbi/gems/concurrent-ruby@1.1.9.rbi +0 -2403
  79. data/sorbet/rbi/gems/crass@1.0.6.rbi +0 -123
  80. data/sorbet/rbi/gems/diff-lcs@1.4.4.rbi +0 -185
  81. data/sorbet/rbi/gems/docile@1.4.0.rbi +0 -54
  82. data/sorbet/rbi/gems/erubi@1.10.0.rbi +0 -36
  83. data/sorbet/rbi/gems/erubis@2.7.0.rbi +0 -8
  84. data/sorbet/rbi/gems/faker@2.18.0.rbi +0 -2469
  85. data/sorbet/rbi/gems/ffi@1.15.3.rbi +0 -8
  86. data/sorbet/rbi/gems/flay@2.12.1.rbi +0 -178
  87. data/sorbet/rbi/gems/flog@4.6.4.rbi +0 -70
  88. data/sorbet/rbi/gems/formatador@0.3.0.rbi +0 -8
  89. data/sorbet/rbi/gems/guard-compat@1.2.1.rbi +0 -49
  90. data/sorbet/rbi/gems/guard-rspec@4.7.3.rbi +0 -233
  91. data/sorbet/rbi/gems/guard-rubocop@1.4.0.rbi +0 -66
  92. data/sorbet/rbi/gems/guard-shell@0.7.2.rbi +0 -69
  93. data/sorbet/rbi/gems/guard@2.18.0.rbi +0 -617
  94. data/sorbet/rbi/gems/highline@2.0.3.rbi +0 -8
  95. data/sorbet/rbi/gems/i18n@1.8.10.rbi +0 -616
  96. data/sorbet/rbi/gems/io-console@0.5.9.rbi +0 -8
  97. data/sorbet/rbi/gems/irb@1.3.6.rbi +0 -452
  98. data/sorbet/rbi/gems/lefthook@0.7.6.rbi +0 -8
  99. data/sorbet/rbi/gems/listen@3.6.0.rbi +0 -476
  100. data/sorbet/rbi/gems/loofah@2.10.0.rbi +0 -223
  101. data/sorbet/rbi/gems/lumberjack@1.2.8.rbi +0 -431
  102. data/sorbet/rbi/gems/method_source@1.0.0.rbi +0 -8
  103. data/sorbet/rbi/gems/minitest@5.14.4.rbi +0 -344
  104. data/sorbet/rbi/gems/mutant-license@0.1.1.1.4043027289354708743625974235631451632228.0.rbi +0 -8
  105. data/sorbet/rbi/gems/mutant-rspec@0.10.32.rbi +0 -8
  106. data/sorbet/rbi/gems/mutant@0.10.32.rbi +0 -4154
  107. data/sorbet/rbi/gems/nenv@0.3.0.rbi +0 -88
  108. data/sorbet/rbi/gems/nokogiri@1.11.7.rbi +0 -1422
  109. data/sorbet/rbi/gems/notiffany@0.1.3.rbi +0 -331
  110. data/sorbet/rbi/gems/parallel@1.20.1.rbi +0 -113
  111. data/sorbet/rbi/gems/parlour@6.0.1.rbi +0 -1726
  112. data/sorbet/rbi/gems/parser@3.0.2.0.rbi +0 -1683
  113. data/sorbet/rbi/gems/path_expander@1.1.0.rbi +0 -24
  114. data/sorbet/rbi/gems/polyfill@1.9.0.rbi +0 -393
  115. data/sorbet/rbi/gems/pry@0.14.1.rbi +0 -8
  116. data/sorbet/rbi/gems/racc@1.5.2.rbi +0 -47
  117. data/sorbet/rbi/gems/rack-test@1.1.0.rbi +0 -272
  118. data/sorbet/rbi/gems/rack@2.2.3.rbi +0 -1618
  119. data/sorbet/rbi/gems/rails-dom-testing@2.0.3.rbi +0 -92
  120. data/sorbet/rbi/gems/rails-html-sanitizer@1.3.0.rbi +0 -183
  121. data/sorbet/rbi/gems/rainbow@3.0.0.rbi +0 -153
  122. data/sorbet/rbi/gems/rake@13.0.6.rbi +0 -808
  123. data/sorbet/rbi/gems/rb-fsevent@0.11.0.rbi +0 -8
  124. data/sorbet/rbi/gems/rb-inotify@0.10.1.rbi +0 -8
  125. data/sorbet/rbi/gems/regexp_parser@2.1.1.rbi +0 -1120
  126. data/sorbet/rbi/gems/reline@0.2.6.rbi +0 -662
  127. data/sorbet/rbi/gems/rexml@3.2.5.rbi +0 -672
  128. data/sorbet/rbi/gems/rspec-core@3.10.1.rbi +0 -2509
  129. data/sorbet/rbi/gems/rspec-expectations@3.10.1.rbi +0 -1574
  130. data/sorbet/rbi/gems/rspec-mocks@3.10.2.rbi +0 -1462
  131. data/sorbet/rbi/gems/rspec-support@3.10.2.rbi +0 -509
  132. data/sorbet/rbi/gems/rspec@3.10.0.rbi +0 -38
  133. data/sorbet/rbi/gems/rubocop-ast@1.8.0.rbi +0 -2194
  134. data/sorbet/rbi/gems/rubocop-performance@1.11.4.rbi +0 -899
  135. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +0 -118
  136. data/sorbet/rbi/gems/rubocop-rspec@2.4.0.rbi +0 -1805
  137. data/sorbet/rbi/gems/rubocop-sorbet@0.6.2.rbi +0 -288
  138. data/sorbet/rbi/gems/rubocop@1.18.4.rbi +0 -13197
  139. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +0 -405
  140. data/sorbet/rbi/gems/ruby_parser@3.16.0.rbi +0 -4528
  141. data/sorbet/rbi/gems/safe_type@1.1.1.rbi +0 -157
  142. data/sorbet/rbi/gems/sexp_processor@4.15.3.rbi +0 -359
  143. data/sorbet/rbi/gems/shellany@0.0.1.rbi +0 -28
  144. data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +0 -89
  145. data/sorbet/rbi/gems/simplecov@0.21.2.rbi +0 -577
  146. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.3.rbi +0 -8
  147. data/sorbet/rbi/gems/sorbet-coerce@0.5.0.rbi +0 -42
  148. data/sorbet/rbi/gems/sorbet-rails@0.7.4.rbi +0 -8
  149. data/sorbet/rbi/gems/sorbet-struct-comparable@1.1.0.rbi +0 -17
  150. data/sorbet/rbi/gems/spoom@1.1.1.rbi +0 -1193
  151. data/sorbet/rbi/gems/tapioca@0.4.23.rbi +0 -1826
  152. data/sorbet/rbi/gems/thor@1.1.0.rbi +0 -838
  153. data/sorbet/rbi/gems/tzinfo@2.0.4.rbi +0 -856
  154. data/sorbet/rbi/gems/unicode-display_width@2.0.0.rbi +0 -26
  155. data/sorbet/rbi/gems/unparser@0.6.0.rbi +0 -2037
  156. data/sorbet/rbi/gems/zeitwerk@2.4.2.rbi +0 -173
  157. data/sorbet/rbi/todo.rbi +0 -8
  158. data/sorbet/rbi/typed_params.rbi +0 -7
  159. data/sorbet/tapioca/require.rb +0 -16
data/lib/muina/action.rb DELETED
@@ -1,73 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Muina
5
- # Two tracked result based operation
6
- class Action
7
- include T::Props
8
- include T::Props::Constructor
9
-
10
- class DoubleResultError < Error; end
11
-
12
- class DoubleFailureError < Error; end
13
-
14
- private_class_method :new
15
-
16
- def self.steps
17
- @steps ||= []
18
- end
19
-
20
- def self.extract(params)
21
- new(TypedParams[parameters].new.extract!(ParamsFactory.build(params)).serialize.symbolize_keys)
22
- end
23
- private_class_method :extract
24
-
25
- def self.result(&blk)
26
- raise DoubleResultError if @__result_set__
27
-
28
- steps << Step::Result.new(step: blk)
29
-
30
- @__result_set__ = true
31
- end
32
- private_class_method :result
33
-
34
- def self.failure(&blk)
35
- raise DoubleFailureError if @__failure_set__
36
-
37
- steps << Step::Failure.new(step: blk)
38
-
39
- @__failure_set__ = true
40
- end
41
- private_class_method :failure
42
-
43
- def self.command(_name = nil, &blk)
44
- steps << Step::Command.new(step: blk)
45
- end
46
- private_class_method :command
47
-
48
- def self.query(name, type = T.untyped, &blk)
49
- const name, type
50
- steps << Step::Query.new(name: name, step: blk)
51
- end
52
- private_class_method :query
53
-
54
- def self.parameters(&blk)
55
- @parameters ||= Class.new(T::Struct)
56
- parameters.instance_eval(&blk) if blk
57
- instance_eval(&blk) if blk
58
- @parameters
59
- end
60
-
61
- def self.call(hash = {})
62
- extract(hash).__send__(:perform)
63
- end
64
-
65
- private
66
-
67
- def perform
68
- self.class.steps.each { |step| step.call(self) }
69
-
70
- @__result__ || @__failure__ || Result::Null()
71
- end
72
- end
73
- end
data/lib/muina/any.rb DELETED
@@ -1,7 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Muina
5
- Any = T.type_alias { T.untyped }
6
- public_constant :Any
7
- end
data/lib/muina/classes.rb DELETED
@@ -1,7 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Muina
5
- Classes = T.type_alias { T.any(Class, T::Array[Class]) }
6
- public_constant :Classes
7
- end
data/lib/muina/module.rb DELETED
@@ -1,6 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- class Module
5
- include T::Sig
6
- end
@@ -1,7 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Muina
5
- Parameters = T.type_alias { T.any(UntypedHash, ActionController::Parameters) }
6
- public_constant :Parameters
7
- end
data/lib/muina/params.rb DELETED
@@ -1,19 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Muina
5
- # Typesafe parameters with extraction from ActionController::Parameters
6
- class Params
7
- include T::Props
8
- include T::Props::Constructor
9
-
10
- def self.extract(params)
11
- params = ActionController::Parameters.new(params) if params.instance_of?(Hash)
12
- TypedParams[self].new.extract!(params)
13
- end
14
-
15
- def self.<(other)
16
- super || T::Struct <= other
17
- end
18
- end
19
- end
@@ -1,12 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Muina
5
- # Include this module to make `.allocate` and `.new` private
6
- module PrivateCreation
7
- def self.included(klass)
8
- klass.private_class_method :allocate
9
- klass.private_class_method :new
10
- end
11
- end
12
- end
@@ -1,37 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Muina
5
- # Result Monad
6
- class Result < Value
7
- # Typed Results Factory.
8
- class Factory < T::Struct
9
- prop :success_klass, T.any(Classes, T::Types::Base)
10
- prop :error_klass, T.any(Classes, T::Types::Base)
11
-
12
- def success(value)
13
- success_subclass.__send__(:new, value: value)
14
- end
15
-
16
- def failure(error)
17
- failure_subclass.__send__(:new, error: error)
18
- end
19
-
20
- private
21
-
22
- def success_subclass
23
- klass_factory(Success, :value, success_klass)
24
- end
25
-
26
- def failure_subclass
27
- klass_factory(Failure, :error, error_klass)
28
- end
29
-
30
- def klass_factory(klass, symbol, sklass)
31
- iklass = T.unsafe(Class.new(klass)) # rubocop:disable Sorbet/ForbidTUnsafe
32
- iklass.const symbol, sklass, override: true
33
- iklass.__send__(:private, symbol)
34
- end
35
- end
36
- end
37
- end
@@ -1,31 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Muina
5
- class Result < Value
6
- # Right(wrong) side of the Result Monad
7
- class Failure < self
8
- class ValueCalledOnFailureError < Error; end
9
-
10
- const :error, T.untyped
11
- private :error
12
-
13
- def value!
14
- raise ValueCalledOnFailureError
15
- end
16
-
17
- def error!
18
- error
19
- end
20
-
21
- def and_then(&_blk)
22
- self
23
- end
24
-
25
- def or_else(&blk)
26
- blk[error] if blk
27
- self
28
- end
29
- end
30
- end
31
- end
@@ -1,25 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Muina
5
- class Result < Value
6
- # Private null type for the Result Monad
7
- class Null < self
8
- def value!
9
- raise Error
10
- end
11
-
12
- def error!
13
- raise Error
14
- end
15
-
16
- def and_then(&_blk)
17
- self
18
- end
19
-
20
- def or_else(&_blk)
21
- self
22
- end
23
- end
24
- end
25
- end
@@ -1,31 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Muina
5
- class Result < Value
6
- # Left(correct) side of the Result Monad
7
- class Success < self
8
- class ErrorCalledOnSuccessError < Error; end
9
-
10
- const :value, T.untyped
11
- private :value
12
-
13
- def value!
14
- value
15
- end
16
-
17
- def error!
18
- raise ErrorCalledOnSuccessError
19
- end
20
-
21
- def and_then(&blk)
22
- blk[value] if blk
23
- self
24
- end
25
-
26
- def or_else(&_blk)
27
- self
28
- end
29
- end
30
- end
31
- end
data/lib/muina/result.rb DELETED
@@ -1,17 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Muina
5
- # Result Monad
6
- class Result < Value
7
- include PrivateCreation
8
-
9
- def self.Null # rubocop:disable Naming/MethodName
10
- Null.__send__(:new)
11
- end
12
-
13
- def self.[](success_klass, error_klass)
14
- Factory.new(success_klass: success_klass, error_klass: error_klass)
15
- end
16
- end
17
- end
data/lib/muina/service.rb DELETED
@@ -1,37 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Muina
5
- # Simple Service Object compatible with MiniService::Base
6
- class Service
7
- include T::Props
8
- include T::Props::Constructor
9
- include PrivateCreation
10
-
11
- def self.inherited(subklass) # rubocop:disable Metrics/MethodLength
12
- super
13
- # :nocov:
14
- TracePoint.trace(:end) do |t|
15
- if subklass < self && !subklass.instance_methods(false).include?(:perform) # rubocop:disable Style/MissingElse
16
- Logger.new($stdout).fatal "#{subklass}#perfrom is not implemented"
17
- end
18
- t.disable
19
- end
20
- # :nocov:
21
- end
22
-
23
- def self.call(hash = {})
24
- new(hash).__send__(:perform)
25
- end
26
- class << self; alias_method :[], :call; end
27
-
28
- def self.arguments(*args, **opts)
29
- args.each { |arg| const arg, T.untyped }
30
- opts.each { |key, value| const key, T.untyped, default: value }
31
- end
32
-
33
- def perform
34
- raise NotImplementedError, "Please implement the #{self.class}#perform method"
35
- end
36
- end
37
- end
@@ -1,7 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Muina
5
- SymbolHash = T.type_alias { T::Hash[Symbol, T.untyped] }
6
- public_constant :SymbolHash
7
- end
data/lib/muina/unit.rb DELETED
@@ -1,10 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Muina
5
- class Unit
6
- include Singleton
7
- end
8
- UNIT = T.let(Unit.instance, Unit)
9
- public_constant :UNIT
10
- end
@@ -1,7 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Muina
5
- UntypedArray = T.type_alias { T::Array[T.untyped] }
6
- public_constant :UntypedArray
7
- end
@@ -1,7 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Muina
5
- UntypedHash = T.type_alias { T::Hash[T.untyped, T.untyped] }
6
- public_constant :UntypedHash
7
- end
data/lib/muina/value.rb DELETED
@@ -1,16 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- module Muina
5
- # Immutable Value Object parent class
6
- class Value
7
- include T::Props
8
- include T::Props::Constructor
9
- include T::Struct::ActsAsComparable
10
-
11
- def initialize(hash = {})
12
- super(hash)
13
- freeze
14
- end
15
- end
16
- end
data/muina.gemspec DELETED
@@ -1,35 +0,0 @@
1
- # typed: strict
2
- # frozen_string_literal: true
3
-
4
- require_relative 'lib/muina/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = 'muina'
8
- spec.version = Muina::VERSION
9
- spec.authors = ['vaporyhumo']
10
- spec.email = ['roanvilina@gmail.com']
11
-
12
- spec.summary = 'Rails and Sorbet compatible framework'
13
- spec.description = 'Useful parent classes for the Rails missing parts'
14
- spec.homepage = 'https://github.com/vaporyhumo/muina'
15
- spec.required_ruby_version = Gem::Requirement.new('>= 2.6.0')
16
-
17
- spec.metadata['homepage_uri'] = spec.homepage
18
- spec.metadata['source_code_uri'] = spec.homepage
19
- spec.metadata['changelog_uri'] = spec.homepage
20
-
21
- # Specify which files should be added to the gem when it is released.
22
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
23
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
24
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
25
- end
26
- spec.bindir = 'exe'
27
- spec.executables = ['muina']
28
- spec.require_paths = ['lib']
29
-
30
- spec.add_dependency 'actionpack'
31
- spec.add_dependency 'sorbet-rails'
32
- spec.add_dependency 'sorbet-runtime'
33
- spec.add_dependency 'sorbet-struct-comparable'
34
- spec.add_dependency 'zeitwerk'
35
- end
data/rbi/muina.rbi DELETED
@@ -1,268 +0,0 @@
1
- # typed: strong
2
- # frozen_string_literal: true
3
-
4
- M = Muina
5
-
6
- class Module
7
- include T::Sig
8
- end
9
-
10
- module Muina
11
- Any = T.type_alias { T.untyped }
12
- Classes = T.type_alias { T.any(Class, T::Array[Class]) }
13
- Parameters = T.type_alias { T.any(UntypedHash, ActionController::Parameters) }
14
- SymbolHash = T.type_alias { T::Hash[Symbol, T.untyped] }
15
- UntypedArray = T.type_alias { T::Array[T.untyped] }
16
- UntypedHash = T.type_alias { T::Hash[T.untyped, T.untyped] }
17
- UNIT = T.let(Unit.instance, Unit)
18
- VERSION = '0.2.7'
19
-
20
- class Error < StandardError; end
21
-
22
- sig { params(value: T.untyped).returns(Muina::Result::Success) }
23
- def self.Success(value); end
24
-
25
- sig { params(error: T.untyped).returns(Muina::Result::Failure) }
26
- def self.Failure(error); end
27
-
28
- sig { params(blk: T.untyped).returns(Muina::Result) }
29
- def self.Result(&blk); end
30
-
31
- class Action
32
- include T::Props
33
- include T::Props::Constructor
34
-
35
- class DoubleResultError < Error
36
- end
37
-
38
- @steps = T.let(@steps, T.nilable(T::Array[Muina::Action::Step]))
39
- @parameters = T.let(@parameters, T.untyped)
40
- @__result_set__ = T.let(@__result_set__, T::Boolean)
41
- @__failure_set__ = T.let(@__failure_set__, T::Boolean)
42
-
43
- def initialize(hash)
44
- @__failure__ = T.let(@__failure__, T.nilable(Muina::Result::Failure))
45
- @__result__ = T.let(@__result__, T.nilable(Muina::Result::Success))
46
- end
47
-
48
- sig { returns(T::Array[Muina::Action::Step]) }
49
- def self.steps; end
50
-
51
- sig { params(params: T.untyped).returns(T.untyped) }
52
- def self.extract(params); end
53
-
54
- sig { params(blk: T.untyped).returns(T.untyped) }
55
- def self.result(&blk); end
56
-
57
- sig { params(blk: T.untyped).returns(T.untyped) }
58
- def self.failure(&blk); end
59
-
60
- sig { params(_name: T.untyped, blk: T.untyped).returns(T.untyped) }
61
- def self.command(_name = nil, &blk); end
62
-
63
- sig { params(name: T.untyped, type: T.untyped, blk: T.untyped).returns(T.untyped) }
64
- def self.query(name, type, &blk); end
65
-
66
- sig { params(blk: T.untyped).returns(T.untyped) }
67
- def self.parameters(&blk); end
68
-
69
- sig { params(hash: SymbolHash).returns(T.untyped) }
70
- def self.call(hash = {}); end
71
-
72
- sig { returns(T.untyped) }
73
- def perform; end
74
-
75
- module ParamsFactory
76
- sig { params(params: T.untyped).returns(T.untyped) }
77
- def self.build(params); end
78
- end
79
-
80
- class Step < Value
81
- const :step, T.untyped
82
-
83
- sig { params(action: T.untyped).returns(T.untyped) }
84
- def call(action); end
85
-
86
- class Command < self
87
- sig { params(action: T.untyped).returns(T.untyped) }
88
- def call(action); end
89
-
90
- private
91
-
92
- sig { void }
93
- def success; end
94
-
95
- sig { params(action: T.untyped, result: T.untyped).void }
96
- def failure(action, result); end
97
- end
98
-
99
- class Failure < self
100
- sig { params(action: T.untyped).returns(T.untyped) }
101
- def call(action); end
102
- end
103
-
104
- class Query < self
105
- const :name, Symbol
106
-
107
- sig { params(action: T.untyped).void }
108
- def call(action); end
109
-
110
- private
111
-
112
- sig { params(action: T.untyped, result: T.untyped).void }
113
- def success(action, result); end
114
-
115
- sig { params(action: T.untyped, result: T.untyped).void }
116
- def failure(action, result); end
117
- end
118
-
119
- class Result < self
120
- sig { params(action: T.untyped).void }
121
- def call(action); end
122
-
123
- private
124
-
125
- sig { params(action: T.untyped, value: T.untyped).void }
126
- def success(action, value); end
127
-
128
- sig { params(action: T.untyped, value: T.untyped).void }
129
- def failure(action, value); end
130
- end
131
- end
132
- end
133
-
134
- class Params
135
- include T::Props
136
- include T::Props::Constructor
137
-
138
- sig { params(params: Parameters).returns(T.attached_class) }
139
- def self.extract(params); end
140
-
141
- sig { params(other: Class).returns(T::Boolean) }
142
- def self.<(other); end
143
- end
144
-
145
- module PrivateCreation
146
- sig { params(klass: Class).void }
147
- def self.included(klass); end
148
- end
149
-
150
- class Result < Value
151
- include PrivateCreation
152
-
153
- sig { returns(Muina::Result::Null) }
154
- def self.Null; end
155
-
156
- sig { params(success_klass: T.untyped, error_klass: T.untyped).returns(T.untyped) }
157
- def self.[](success_klass, error_klass); end
158
-
159
- sig { returns(T.untyped) }
160
- def value!; end
161
-
162
- class Factory < T::Struct
163
- prop :success_klass, T.any(Classes, T::Types::Base)
164
- prop :error_klass, T.any(Classes, T::Types::Base)
165
-
166
- sig { params(value: T.untyped).returns(Success) }
167
- def success(value); end
168
-
169
- sig { params(error: T.untyped).returns(Failure) }
170
- def failure(error); end
171
-
172
- private
173
-
174
- sig { returns(Class) }
175
- def success_subclass; end
176
-
177
- sig { returns(Class) }
178
- def failure_subclass; end
179
-
180
- sig { params(klass: Class, symbol: Symbol, sklass: T.untyped).returns(Class) }
181
- def klass_factory(klass, symbol, sklass); end
182
- end
183
-
184
- class Failure < self
185
- ValueCalledOnFailureError = Class.new(Error)
186
-
187
- const :error, T.untyped
188
-
189
- sig { returns(T.noreturn) }
190
- def value!; end
191
-
192
- sig { returns(T.untyped) }
193
- def error!; end
194
-
195
- sig { params(_block: T.untyped).returns(Muina::Result::Failure) }
196
- def and_then(&_block); end
197
-
198
- sig { params(block: T.untyped).returns(Muina::Result::Failure) }
199
- def or_else(&block); end
200
- end
201
-
202
- class Null < self
203
- sig { returns(T.noreturn) }
204
- def value!; end
205
-
206
- sig { returns(T.noreturn) }
207
- def error!; end
208
-
209
- sig { returns(Null) }
210
- def and_then(&_block); end
211
-
212
- sig { returns(Null) }
213
- def or_else(&_block); end
214
- end
215
-
216
- class Success < self
217
- ErrorCalledOnSuccessError = Class.new(Error)
218
-
219
- const :value, T.untyped
220
-
221
- sig { returns(T.untyped) }
222
- def value!; end
223
-
224
- sig { returns(T.noreturn) }
225
- def error!; end
226
-
227
- sig { params(block: T.untyped).returns(T.untyped) }
228
- def and_then(&block); end
229
-
230
- sig { params(_block: T.untyped).returns(T.untyped) }
231
- def or_else(&_block); end
232
- end
233
- end
234
-
235
- class Service
236
- include T::Props
237
- include T::Props::Constructor
238
- include PrivateCreation
239
-
240
- sig { params(subklass: Class).void }
241
- def self.inherited(subklass); end
242
-
243
- sig { params(hash: SymbolHash).returns(T.untyped) }
244
- def self.call(hash = {}); end
245
- class << self; alias_method :[], :call; end
246
-
247
- sig { params(args: Symbol, opts: T.untyped).void }
248
- def self.arguments(*args, **opts); end
249
-
250
- private
251
-
252
- sig { returns(T.untyped) }
253
- def perform; end
254
- end
255
-
256
- class Unit
257
- include Singleton
258
- end
259
-
260
- class Value
261
- include T::Props
262
- include T::Props::Constructor
263
- include T::Struct::ActsAsComparable
264
-
265
- sig { params(hash: SymbolHash).void }
266
- def initialize(hash = {}); end
267
- end
268
- end
data/sorbet/config DELETED
@@ -1,2 +0,0 @@
1
- --dir
2
- .