bcdd-result 0.6.0 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +31 -11
- data/CHANGELOG.md +148 -0
- data/README.md +849 -242
- data/Rakefile +9 -3
- data/Steepfile +1 -1
- data/lib/bcdd/result/config/constant_alias.rb +33 -0
- data/lib/bcdd/result/config/options.rb +26 -0
- data/lib/bcdd/result/config/switcher.rb +82 -0
- data/lib/bcdd/result/config.rb +71 -0
- data/lib/bcdd/result/context/expectations/mixin.rb +23 -0
- data/lib/bcdd/result/context/expectations.rb +25 -0
- data/lib/bcdd/result/context/failure.rb +9 -0
- data/lib/bcdd/result/context/mixin.rb +41 -0
- data/lib/bcdd/result/context/success.rb +15 -0
- data/lib/bcdd/result/context.rb +74 -0
- data/lib/bcdd/result/{expectations/contract → contract}/disabled.rb +2 -2
- data/lib/bcdd/result/{expectations → contract}/error.rb +5 -3
- data/lib/bcdd/result/{expectations/contract → contract}/evaluator.rb +2 -2
- data/lib/bcdd/result/{expectations/contract → contract}/for_types.rb +2 -2
- data/lib/bcdd/result/contract/for_types_and_values.rb +44 -0
- data/lib/bcdd/result/contract/interface.rb +21 -0
- data/lib/bcdd/result/{expectations → contract}/type_checker.rb +1 -1
- data/lib/bcdd/result/contract.rb +33 -0
- data/lib/bcdd/result/error.rb +7 -9
- data/lib/bcdd/result/expectations/mixin.rb +19 -12
- data/lib/bcdd/result/expectations.rb +51 -36
- data/lib/bcdd/result/failure/methods.rb +21 -0
- data/lib/bcdd/result/failure.rb +2 -16
- data/lib/bcdd/result/mixin.rb +26 -8
- data/lib/bcdd/result/success/methods.rb +21 -0
- data/lib/bcdd/result/success.rb +2 -16
- data/lib/bcdd/result/version.rb +1 -1
- data/lib/bcdd/result.rb +17 -4
- data/lib/bcdd-result.rb +3 -0
- data/sig/bcdd/result.rbs +340 -88
- metadata +27 -16
- data/lib/bcdd/result/expectations/contract/for_types_and_values.rb +0 -37
- data/lib/bcdd/result/expectations/contract/interface.rb +0 -21
- data/lib/bcdd/result/expectations/contract.rb +0 -25
- data/lib/result.rb +0 -5
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
class BCDD::Result::Expectations
|
4
|
-
module Contract::Interface
|
5
|
-
def allowed_types
|
6
|
-
raise ::BCDD::Result::Error::NotImplemented
|
7
|
-
end
|
8
|
-
|
9
|
-
def type?(_type)
|
10
|
-
raise ::BCDD::Result::Error::NotImplemented
|
11
|
-
end
|
12
|
-
|
13
|
-
def type!(_type)
|
14
|
-
raise ::BCDD::Result::Error::NotImplemented
|
15
|
-
end
|
16
|
-
|
17
|
-
def type_and_value!(_data)
|
18
|
-
raise ::BCDD::Result::Error::NotImplemented
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
class BCDD::Result::Expectations
|
4
|
-
module Contract
|
5
|
-
require_relative 'contract/interface'
|
6
|
-
require_relative 'contract/evaluator'
|
7
|
-
require_relative 'contract/disabled'
|
8
|
-
require_relative 'contract/for_types'
|
9
|
-
require_relative 'contract/for_types_and_values'
|
10
|
-
|
11
|
-
NONE = Contract::Evaluator.new(Contract::Disabled, Contract::Disabled).freeze
|
12
|
-
|
13
|
-
ToEnsure = ->(spec) do
|
14
|
-
return Contract::Disabled if spec.nil?
|
15
|
-
|
16
|
-
spec.is_a?(Hash) ? Contract::ForTypesAndValues.new(spec) : Contract::ForTypes.new(Array(spec))
|
17
|
-
end
|
18
|
-
|
19
|
-
def self.new(success:, failure:)
|
20
|
-
Contract::Evaluator.new(ToEnsure[success], ToEnsure[failure])
|
21
|
-
end
|
22
|
-
|
23
|
-
private_constant :ToEnsure
|
24
|
-
end
|
25
|
-
end
|