dry-effects 0.3.1 → 0.4.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -0
- data/LICENSE +1 -1
- data/README.md +4 -12
- data/dry-effects.gemspec +4 -4
- data/lib/dry/effects/constructors.rb +2 -2
- data/lib/dry/effects/container.rb +1 -1
- data/lib/dry/effects/effects/resolve.rb +1 -1
- data/lib/dry/effects/errors.rb +4 -4
- data/lib/dry/effects/extensions/active_support/tagged_logging.rb +14 -8
- data/lib/dry/effects/extensions/auto_inject.rb +7 -2
- data/lib/dry/effects/initializer.rb +9 -3
- data/lib/dry/effects/providers/random.rb +1 -1
- data/lib/dry/effects/version.rb +1 -1
- data/lib/dry/effects.rb +1 -2
- data/lib/dry-effects.rb +2 -0
- metadata +16 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '019d3a5a4ceac14c0bf1fc045315034746b2076f82e17c8cd43d1e4d15453a73'
|
4
|
+
data.tar.gz: 7c6bc85d0688ff60a98152a50f0bd27e2ee7cbd45379a33be51584bfad456c3e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a900139589cf38dcdacb469021826ade7e435a9229243ae9392b76fc0cfcca6762ef48373e5a2d7b4a16f7ae51cb769c7f1de1559c92c14d8bdd3725def5932
|
7
|
+
data.tar.gz: 91d5e392c86b9a91b5bef272914d4a647790606716de5722d4cccd555584bdfb33e7cdaa6fb653ffa870b33f21481fa4a057babf85131077d9a85cca65b25c6d
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
<!--- DO NOT EDIT THIS FILE - IT'S AUTOMATICALLY GENERATED VIA DEVTOOLS --->
|
2
2
|
|
3
|
+
## 0.4.1
|
4
|
+
|
5
|
+
|
6
|
+
### Changed
|
7
|
+
|
8
|
+
- Workaround for a clash with Object#with (@tallica + @flash-gordon)
|
9
|
+
|
10
|
+
[Compare v0.4.0...main](https://github.com/dry-rb/dry-effects/compare/v0.4.0...main)
|
11
|
+
|
12
|
+
## 0.4.0
|
13
|
+
|
14
|
+
|
15
|
+
### Changed
|
16
|
+
|
17
|
+
- This version is compatible with recently released dry-rb dependencies (@flash-gordon)
|
18
|
+
|
19
|
+
[Compare v0.3.1...main](https://github.com/dry-rb/dry-effects/compare/v0.3.1...main)
|
20
|
+
|
3
21
|
## 0.3.1 2022-10-17
|
4
22
|
|
5
23
|
|
data/LICENSE
CHANGED
data/README.md
CHANGED
@@ -1,29 +1,21 @@
|
|
1
1
|
<!--- this file is synced from dry-rb/template-gem project -->
|
2
2
|
[gem]: https://rubygems.org/gems/dry-effects
|
3
3
|
[actions]: https://github.com/dry-rb/dry-effects/actions
|
4
|
-
[codacy]: https://www.codacy.com/gh/dry-rb/dry-effects
|
5
|
-
[chat]: https://dry-rb.zulipchat.com
|
6
|
-
[inchpages]: http://inch-ci.org/github/dry-rb/dry-effects
|
7
4
|
|
8
|
-
# dry-effects [][gem]
|
11
|
-
[][actions]
|
12
|
-
[][codacy]
|
13
|
-
[][codacy]
|
14
|
-
[][inchpages]
|
5
|
+
# dry-effects [][gem] [][actions]
|
15
6
|
|
16
7
|
## Links
|
17
8
|
|
18
9
|
* [User documentation](https://dry-rb.org/gems/dry-effects)
|
19
10
|
* [API documentation](http://rubydoc.info/gems/dry-effects)
|
11
|
+
* [Forum](https://discourse.dry-rb.org)
|
20
12
|
|
21
13
|
## Supported Ruby versions
|
22
14
|
|
23
15
|
This library officially supports the following Ruby versions:
|
24
16
|
|
25
|
-
* MRI `>=
|
26
|
-
* jruby `>= 9.
|
17
|
+
* MRI `>= 3.0.0`
|
18
|
+
* jruby `>= 9.4` (not tested on CI)
|
27
19
|
|
28
20
|
## License
|
29
21
|
|
data/dry-effects.gemspec
CHANGED
@@ -26,14 +26,14 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.metadata["source_code_uri"] = "https://github.com/dry-rb/dry-effects"
|
27
27
|
spec.metadata["bug_tracker_uri"] = "https://github.com/dry-rb/dry-effects/issues"
|
28
28
|
|
29
|
-
spec.required_ruby_version = ">=
|
29
|
+
spec.required_ruby_version = ">= 3.0.0"
|
30
30
|
|
31
31
|
# to update dependencies edit project.yml
|
32
32
|
spec.add_runtime_dependency "concurrent-ruby", "~> 1.0"
|
33
|
-
spec.add_runtime_dependency "dry-
|
34
|
-
spec.add_runtime_dependency "dry-
|
35
|
-
spec.add_runtime_dependency "dry-inflector", "~> 0.1", ">= 0.1.2"
|
33
|
+
spec.add_runtime_dependency "dry-core", "~> 1.0"
|
34
|
+
spec.add_runtime_dependency "dry-inflector", "~> 1.0"
|
36
35
|
spec.add_runtime_dependency "dry-initializer", "~> 3.0"
|
36
|
+
spec.add_runtime_dependency "zeitwerk", "~> 2.6"
|
37
37
|
|
38
38
|
spec.add_development_dependency "bundler"
|
39
39
|
spec.add_development_dependency "rake"
|
@@ -3,8 +3,6 @@
|
|
3
3
|
module Dry
|
4
4
|
module Effects
|
5
5
|
module Constructors
|
6
|
-
extend self
|
7
|
-
|
8
6
|
# @api public
|
9
7
|
def CurrentTime(**kwargs)
|
10
8
|
if kwargs.empty?
|
@@ -33,6 +31,8 @@ module Dry
|
|
33
31
|
def Write(scope, value)
|
34
32
|
Effects::State::State.new(type: :state, name: :write, scope: scope, payload: [value])
|
35
33
|
end
|
34
|
+
|
35
|
+
instance_methods(false).each { module_function(_1) }
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
data/lib/dry/effects/errors.rb
CHANGED
@@ -19,7 +19,7 @@ module Dry
|
|
19
19
|
|
20
20
|
super(
|
21
21
|
Undefined.default(message) {
|
22
|
-
"Effect #{effect.inspect} not handled. "\
|
22
|
+
"Effect #{effect.inspect} not handled. " \
|
23
23
|
"Effects must be wrapped with corresponding handlers"
|
24
24
|
}
|
25
25
|
)
|
@@ -31,7 +31,7 @@ module Dry
|
|
31
31
|
# @api private
|
32
32
|
class MissingStateError < UnhandledEffectError
|
33
33
|
def initialize(effect)
|
34
|
-
message = "Value of +#{effect.scope}+ is not set, "\
|
34
|
+
message = "Value of +#{effect.scope}+ is not set, " \
|
35
35
|
"you need to provide value with an effect handler"
|
36
36
|
|
37
37
|
super(effect, message)
|
@@ -45,8 +45,8 @@ module Dry
|
|
45
45
|
include Error
|
46
46
|
|
47
47
|
def initialize(effect)
|
48
|
-
message = "+#{effect.scope}+ is not defined, you need to assign it first "\
|
49
|
-
"by using a writer, passing initial value to the handler, or "\
|
48
|
+
message = "+#{effect.scope}+ is not defined, you need to assign it first " \
|
49
|
+
"by using a writer, passing initial value to the handler, or " \
|
50
50
|
"providing a fallback value"
|
51
51
|
|
52
52
|
super(message)
|
@@ -2,12 +2,18 @@
|
|
2
2
|
|
3
3
|
require "active_support/tagged_logging"
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
begin
|
6
|
+
require "active_support/isolated_execution_state"
|
7
|
+
|
8
|
+
# it's not needed when state is already isolated
|
9
|
+
rescue LoadError
|
10
|
+
ActiveSupport::TaggedLogging::Formatter.prepend(Module.new {
|
11
|
+
def current_tags
|
12
|
+
thread_key = @thread_key ||= "activesupport_tagged_logging_tags:#{object_id}"
|
13
|
+
unless Thread.current.thread_variable_get(thread_key)
|
14
|
+
Thread.current.thread_variable_set(thread_key, [])
|
15
|
+
end
|
16
|
+
Thread.current.thread_variable_get(thread_key)
|
10
17
|
end
|
11
|
-
|
12
|
-
|
13
|
-
})
|
18
|
+
})
|
19
|
+
end
|
@@ -1,12 +1,17 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "concurrent/map"
|
4
|
-
require "dry/auto_inject
|
4
|
+
require "dry/auto_inject"
|
5
|
+
require "dry/auto_inject/version"
|
6
|
+
|
7
|
+
if Gem::Version.new(Dry::AutoInject::VERSION) < Gem::Version.new("0.10.0")
|
8
|
+
raise "dry-effects requires dry-auto_inject >= 0.10.0"
|
9
|
+
end
|
5
10
|
|
6
11
|
module Dry
|
7
12
|
module Effects
|
8
13
|
class DryAutoEffectsStrategies
|
9
|
-
extend ::
|
14
|
+
extend Core::Container::Mixin
|
10
15
|
|
11
16
|
class Base < AutoInject::Strategies::Constructor
|
12
17
|
private
|
@@ -64,9 +64,15 @@ module Dry
|
|
64
64
|
|
65
65
|
# @api private
|
66
66
|
def self.extended(base)
|
67
|
-
base.
|
68
|
-
|
69
|
-
|
67
|
+
base.module_eval do
|
68
|
+
if method_defined?(:with)
|
69
|
+
undef_method(:with)
|
70
|
+
end
|
71
|
+
|
72
|
+
extend(::Dry::Initializer)
|
73
|
+
extend(DefineWithHook)
|
74
|
+
include(InstanceMethods)
|
75
|
+
end
|
70
76
|
end
|
71
77
|
|
72
78
|
# @api private
|
data/lib/dry/effects/version.rb
CHANGED
data/lib/dry/effects.rb
CHANGED
@@ -4,7 +4,6 @@ require "zeitwerk"
|
|
4
4
|
require "concurrent/map"
|
5
5
|
|
6
6
|
require "dry/core"
|
7
|
-
require "dry/container"
|
8
7
|
require "dry/inflector"
|
9
8
|
require "dry/initializer"
|
10
9
|
|
@@ -35,7 +34,7 @@ module Dry
|
|
35
34
|
loader.ignore(
|
36
35
|
"#{root}/dry-effects.rb",
|
37
36
|
"#{root}/dry/effects/{all,error,extensions,inflector,initializer,version}.rb",
|
38
|
-
"#{root}/dry/effects/extensions/**/*.rb"
|
37
|
+
"#{root}/dry/effects/extensions/**/*.rb"
|
39
38
|
)
|
40
39
|
end
|
41
40
|
end
|
data/lib/dry-effects.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dry-effects
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nikita Shilnikov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-03-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
@@ -25,79 +25,61 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name: dry-
|
28
|
+
name: dry-core
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0
|
34
|
-
- - ">="
|
35
|
-
- !ruby/object:Gem::Version
|
36
|
-
version: 0.7.2
|
33
|
+
version: '1.0'
|
37
34
|
type: :runtime
|
38
35
|
prerelease: false
|
39
36
|
version_requirements: !ruby/object:Gem::Requirement
|
40
37
|
requirements:
|
41
38
|
- - "~>"
|
42
39
|
- !ruby/object:Gem::Version
|
43
|
-
version: '0
|
44
|
-
- - ">="
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: 0.7.2
|
40
|
+
version: '1.0'
|
47
41
|
- !ruby/object:Gem::Dependency
|
48
|
-
name: dry-
|
42
|
+
name: dry-inflector
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
50
44
|
requirements:
|
51
45
|
- - "~>"
|
52
46
|
- !ruby/object:Gem::Version
|
53
|
-
version: '0
|
54
|
-
- - ">="
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: '0.9'
|
47
|
+
version: '1.0'
|
57
48
|
type: :runtime
|
58
49
|
prerelease: false
|
59
50
|
version_requirements: !ruby/object:Gem::Requirement
|
60
51
|
requirements:
|
61
52
|
- - "~>"
|
62
53
|
- !ruby/object:Gem::Version
|
63
|
-
version: '0
|
64
|
-
- - ">="
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version: '0.9'
|
54
|
+
version: '1.0'
|
67
55
|
- !ruby/object:Gem::Dependency
|
68
|
-
name: dry-
|
56
|
+
name: dry-initializer
|
69
57
|
requirement: !ruby/object:Gem::Requirement
|
70
58
|
requirements:
|
71
59
|
- - "~>"
|
72
60
|
- !ruby/object:Gem::Version
|
73
|
-
version: '0
|
74
|
-
- - ">="
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: 0.1.2
|
61
|
+
version: '3.0'
|
77
62
|
type: :runtime
|
78
63
|
prerelease: false
|
79
64
|
version_requirements: !ruby/object:Gem::Requirement
|
80
65
|
requirements:
|
81
66
|
- - "~>"
|
82
67
|
- !ruby/object:Gem::Version
|
83
|
-
version: '0
|
84
|
-
- - ">="
|
85
|
-
- !ruby/object:Gem::Version
|
86
|
-
version: 0.1.2
|
68
|
+
version: '3.0'
|
87
69
|
- !ruby/object:Gem::Dependency
|
88
|
-
name:
|
70
|
+
name: zeitwerk
|
89
71
|
requirement: !ruby/object:Gem::Requirement
|
90
72
|
requirements:
|
91
73
|
- - "~>"
|
92
74
|
- !ruby/object:Gem::Version
|
93
|
-
version: '
|
75
|
+
version: '2.6'
|
94
76
|
type: :runtime
|
95
77
|
prerelease: false
|
96
78
|
version_requirements: !ruby/object:Gem::Requirement
|
97
79
|
requirements:
|
98
80
|
- - "~>"
|
99
81
|
- !ruby/object:Gem::Version
|
100
|
-
version: '
|
82
|
+
version: '2.6'
|
101
83
|
- !ruby/object:Gem::Dependency
|
102
84
|
name: bundler
|
103
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -229,14 +211,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
229
211
|
requirements:
|
230
212
|
- - ">="
|
231
213
|
- !ruby/object:Gem::Version
|
232
|
-
version:
|
214
|
+
version: 3.0.0
|
233
215
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
234
216
|
requirements:
|
235
217
|
- - ">="
|
236
218
|
- !ruby/object:Gem::Version
|
237
219
|
version: '0'
|
238
220
|
requirements: []
|
239
|
-
rubygems_version: 3.
|
221
|
+
rubygems_version: 3.3.26
|
240
222
|
signing_key:
|
241
223
|
specification_version: 4
|
242
224
|
summary: Algebraic effects
|