dry-effects 0.1.5 → 0.3.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 (63) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -0
  3. data/LICENSE +1 -1
  4. data/README.md +5 -4
  5. data/dry-effects.gemspec +15 -15
  6. data/lib/dry/effects/all.rb +3 -3
  7. data/lib/dry/effects/container.rb +1 -1
  8. data/lib/dry/effects/effect.rb +1 -2
  9. data/lib/dry/effects/effects/async.rb +4 -2
  10. data/lib/dry/effects/effects/cache.rb +13 -9
  11. data/lib/dry/effects/effects/cmp.rb +3 -1
  12. data/lib/dry/effects/effects/current_time.rb +4 -2
  13. data/lib/dry/effects/effects/defer.rb +3 -1
  14. data/lib/dry/effects/effects/env.rb +3 -1
  15. data/lib/dry/effects/effects/fork.rb +3 -1
  16. data/lib/dry/effects/effects/implicit.rb +3 -1
  17. data/lib/dry/effects/effects/interrupt.rb +3 -1
  18. data/lib/dry/effects/effects/lock.rb +3 -1
  19. data/lib/dry/effects/effects/parallel.rb +4 -2
  20. data/lib/dry/effects/effects/random.rb +3 -1
  21. data/lib/dry/effects/effects/reader.rb +1 -1
  22. data/lib/dry/effects/effects/resolve.rb +24 -4
  23. data/lib/dry/effects/effects/retry.rb +4 -2
  24. data/lib/dry/effects/effects/state.rb +4 -2
  25. data/lib/dry/effects/effects/timeout.rb +3 -1
  26. data/lib/dry/effects/effects/timestamp.rb +3 -1
  27. data/lib/dry/effects/errors.rb +4 -4
  28. data/lib/dry/effects/extensions/active_support/tagged_logging.rb +1 -1
  29. data/lib/dry/effects/extensions/auto_inject.rb +5 -5
  30. data/lib/dry/effects/extensions/system.rb +9 -8
  31. data/lib/dry/effects/extensions.rb +4 -6
  32. data/lib/dry/effects/frame.rb +23 -9
  33. data/lib/dry/effects/halt.rb +2 -3
  34. data/lib/dry/effects/handler.rb +2 -10
  35. data/lib/dry/effects/inflector.rb +1 -1
  36. data/lib/dry/effects/initializer.rb +17 -17
  37. data/lib/dry/effects/instructions/execute.rb +2 -1
  38. data/lib/dry/effects/instructions/raise.rb +2 -1
  39. data/lib/dry/effects/provider/class_interface.rb +1 -2
  40. data/lib/dry/effects/provider.rb +2 -2
  41. data/lib/dry/effects/providers/async.rb +2 -2
  42. data/lib/dry/effects/providers/cache.rb +2 -2
  43. data/lib/dry/effects/providers/cmp.rb +1 -1
  44. data/lib/dry/effects/providers/current_time/time_generators.rb +1 -1
  45. data/lib/dry/effects/providers/current_time.rb +5 -5
  46. data/lib/dry/effects/providers/defer.rb +7 -7
  47. data/lib/dry/effects/providers/env.rb +3 -3
  48. data/lib/dry/effects/providers/fork.rb +2 -2
  49. data/lib/dry/effects/providers/implicit.rb +1 -1
  50. data/lib/dry/effects/providers/interrupt.rb +3 -3
  51. data/lib/dry/effects/providers/lock.rb +5 -8
  52. data/lib/dry/effects/providers/parallel.rb +3 -3
  53. data/lib/dry/effects/providers/random.rb +5 -4
  54. data/lib/dry/effects/providers/reader.rb +1 -1
  55. data/lib/dry/effects/providers/resolve.rb +8 -7
  56. data/lib/dry/effects/providers/retry.rb +5 -7
  57. data/lib/dry/effects/providers/state.rb +2 -2
  58. data/lib/dry/effects/providers/timeout.rb +2 -2
  59. data/lib/dry/effects/providers/timestamp.rb +2 -2
  60. data/lib/dry/effects/stack.rb +7 -7
  61. data/lib/dry/effects/version.rb +1 -1
  62. data/lib/dry/effects.rb +9 -9
  63. metadata +9 -29
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 54136f3755a4e11e553c0afaabce55a5566994988eae215c553bed29868b33ec
4
- data.tar.gz: 1d01bd43fc5e9be72beec2b8754caf75313ba5c9b765c8740de21e3d01c00b21
3
+ metadata.gz: '0239ad7c00317ef55c59d15f20b9445a23e4209ee381e6eb0e46300cca5615a4'
4
+ data.tar.gz: 25c49fe75fe6ada449943aa1642763acab11e20d91d66cd3ed0e5353ecf747b6
5
5
  SHA512:
6
- metadata.gz: 3f73d5618defff4f54656fa968c93cca50d9f9a47105500e3063bae2a8a9a78a64ec2b29638eaa3bfbeb1f98fc5ccf35862ab50f8dd8a24c75045f88daf59f68
7
- data.tar.gz: 193b6ecc66f060765df8bb3e982bac4b5867e85114f840611a06f31451dcdb7a3d6f8d09137cf33ac36473530aa88848fad13e0f29c9df4fe96c1168d402c33d
6
+ metadata.gz: 311d562013b53ed8e3744b2dd433ab5200313e17021ec8b9e3219d48d1ff31ddd824c537b8282be3647e90dd4045369229814f58782c13bd47be7374f9b48036
7
+ data.tar.gz: 7eac1b68843190d616057fdd61212ae46e70b3f88b21318daad6e1a5b9d6ea7d15ddbf32e0171095e16a8929d7d45d3661a4eb264629043cb3ae1a794ffc5da4
data/CHANGELOG.md CHANGED
@@ -1,3 +1,37 @@
1
+ <!--- DO NOT EDIT THIS FILE - IT'S AUTOMATICALLY GENERATED VIA DEVTOOLS --->
2
+
3
+ ## 0.3.0 2022-10-15
4
+
5
+
6
+ ### Changed
7
+
8
+ - Use zeitwerk for auto-loading (@flash-gordon)
9
+ - Remove dependency on dry-configurable (@flash-gordon)
10
+
11
+ [Compare v0.2.0...v0.3.0](https://github.com/dry-rb/dry-effects/compare/v0.2.0...v0.3.0)
12
+
13
+ ## 0.2.0 2021-09-12
14
+
15
+
16
+ ### Changed
17
+
18
+ - Updated "system" extension to work with dry-system 0.19.0 (@timriley in #83)
19
+
20
+ [Compare v0.1.5...v0.2.0](https://github.com/dry-rb/dry-effects/compare/v0.1.5...v0.2.0)
21
+
22
+ ## 0.1.5 2020-02-09
23
+
24
+
25
+ ### Fixed
26
+
27
+ - Add patch for ActiveRecord::TaggedLogger to preserve tags in presence of effect handlers (leehambley)
28
+ ```ruby
29
+ Dry::Effects.load_extensions(:active_support_tagged_logging)
30
+ ```
31
+
32
+
33
+ [Compare v0.1.4...v0.1.5](https://github.com/dry-rb/dry-effects/compare/v0.1.4...v0.1.5)
34
+
1
35
  ## 0.1.4 2020-01-07
2
36
 
3
37
 
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2015-2020 dry-rb team
3
+ Copyright (c) 2015-2022 dry-rb team
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy of
6
6
  this software and associated documentation files (the "Software"), to deal in
data/README.md CHANGED
@@ -1,3 +1,4 @@
1
+ <!--- this file is synced from dry-rb/template-gem project -->
1
2
  [gem]: https://rubygems.org/gems/dry-effects
2
3
  [actions]: https://github.com/dry-rb/dry-effects/actions
3
4
  [codacy]: https://www.codacy.com/gh/dry-rb/dry-effects
@@ -10,19 +11,19 @@
10
11
  [![CI Status](https://github.com/dry-rb/dry-effects/workflows/ci/badge.svg)][actions]
11
12
  [![Codacy Badge](https://api.codacy.com/project/badge/Grade/158a8a584a3845eba4a67a71ad540210)][codacy]
12
13
  [![Codacy Badge](https://api.codacy.com/project/badge/Coverage/158a8a584a3845eba4a67a71ad540210)][codacy]
13
- [![Inline docs](http://inch-ci.org/github/dry-rb/dry-effects.svg?branch=master)][inchpages]
14
+ [![Inline docs](http://inch-ci.org/github/dry-rb/dry-effects.svg?branch=main)][inchpages]
14
15
 
15
16
  ## Links
16
17
 
17
- * [User documentation](http://dry-rb.org/gems/dry-effects)
18
+ * [User documentation](https://dry-rb.org/gems/dry-effects)
18
19
  * [API documentation](http://rubydoc.info/gems/dry-effects)
19
20
 
20
21
  ## Supported Ruby versions
21
22
 
22
23
  This library officially supports the following Ruby versions:
23
24
 
24
- * MRI >= `2.4`
25
- * jruby >= `9.2`
25
+ * MRI `>= 2.7.0`
26
+ * jruby `>= 9.3` (postponed until 2.7 is supported)
26
27
 
27
28
  ## License
28
29
 
data/dry-effects.gemspec CHANGED
@@ -1,37 +1,37 @@
1
1
  # frozen_string_literal: true
2
- # this file is managed by dry-rb/devtools project
3
2
 
4
- lib = File.expand_path('lib', __dir__)
3
+ # this file is synced from dry-rb/template-gem project
4
+
5
+ lib = File.expand_path("lib", __dir__)
5
6
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
6
- require 'dry/effects/version'
7
+ require "dry/effects/version"
7
8
 
8
9
  Gem::Specification.new do |spec|
9
- spec.name = 'dry-effects'
10
+ spec.name = "dry-effects"
10
11
  spec.authors = ["Nikita Shilnikov"]
11
12
  spec.email = ["fg@flashgordon.ru"]
12
- spec.license = 'MIT'
13
+ spec.license = "MIT"
13
14
  spec.version = Dry::Effects::VERSION.dup
14
15
 
15
16
  spec.summary = "Algebraic effects"
16
17
  spec.description = spec.summary
17
- spec.homepage = 'https://dry-rb.org/gems/dry-effects'
18
+ spec.homepage = "https://dry-rb.org/gems/dry-effects"
18
19
  spec.files = Dir["CHANGELOG.md", "LICENSE", "README.md", "dry-effects.gemspec", "lib/**/*"]
19
- spec.bindir = 'bin'
20
+ spec.bindir = "bin"
20
21
  spec.executables = []
21
- spec.require_paths = ['lib']
22
+ spec.require_paths = ["lib"]
22
23
 
23
- spec.metadata['allowed_push_host'] = 'https://rubygems.org'
24
- spec.metadata['changelog_uri'] = 'https://github.com/dry-rb/dry-effects/blob/master/CHANGELOG.md'
25
- spec.metadata['source_code_uri'] = 'https://github.com/dry-rb/dry-effects'
26
- spec.metadata['bug_tracker_uri'] = 'https://github.com/dry-rb/dry-effects/issues'
24
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
25
+ spec.metadata["changelog_uri"] = "https://github.com/dry-rb/dry-effects/blob/main/CHANGELOG.md"
26
+ spec.metadata["source_code_uri"] = "https://github.com/dry-rb/dry-effects"
27
+ spec.metadata["bug_tracker_uri"] = "https://github.com/dry-rb/dry-effects/issues"
27
28
 
28
- spec.required_ruby_version = ">= 2.4.0"
29
+ spec.required_ruby_version = ">= 2.7.0"
29
30
 
30
31
  # to update dependencies edit project.yml
31
32
  spec.add_runtime_dependency "concurrent-ruby", "~> 1.0"
32
33
  spec.add_runtime_dependency "dry-container", "~> 0.7", ">= 0.7.2"
33
- spec.add_runtime_dependency "dry-core", "~> 0.4", ">= 0.4.7"
34
- spec.add_runtime_dependency "dry-equalizer", "~> 0.2", ">= 0.2.2"
34
+ spec.add_runtime_dependency "dry-core", "~> 0.9", ">= 0.9"
35
35
  spec.add_runtime_dependency "dry-inflector", "~> 0.1", ">= 0.1.2"
36
36
  spec.add_runtime_dependency "dry-initializer", "~> 3.0"
37
37
 
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'concurrent/map'
4
- require 'dry/effects/inflector'
5
- require 'dry/effects/handler'
3
+ require "concurrent/map"
4
+ require "dry/effects/inflector"
5
+ require "dry/effects/handler"
6
6
 
7
7
  module Dry
8
8
  module Effects
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/container'
3
+ require "dry/container"
4
4
 
5
5
  module Dry
6
6
  module Effects
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/equalizer'
4
- require 'dry/effects/initializer'
3
+ require "dry/effects/initializer"
5
4
 
6
5
  module Dry
7
6
  module Effects
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/effects/effect'
3
+ require "dry/effects/effect"
4
4
 
5
5
  module Dry
6
6
  module Effects
@@ -11,9 +11,11 @@ module Dry
11
11
  Await = Effect.new(type: :async, name: :await)
12
12
 
13
13
  def initialize
14
+ super
15
+
14
16
  module_eval do
15
17
  define_method(:async) { |&block| ::Dry::Effects.yield(Async.(block)) }
16
- define_method(:await) { |task| ::Dry::Effects.yield(Await.(task)) }
18
+ define_method(:await) { ::Dry::Effects.yield(Await.(_1)) }
17
19
  end
18
20
  end
19
21
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/effects/effect'
3
+ require "dry/effects/effect"
4
4
 
5
5
  module Dry
6
6
  module Effects
@@ -11,6 +11,8 @@ module Dry
11
11
  end
12
12
 
13
13
  def initialize(scope = nil, shared: false, **kw)
14
+ super()
15
+
14
16
  if !kw.empty?
15
17
  scope, as = kw.to_a[0]
16
18
  elsif scope.is_a?(::Hash)
@@ -25,16 +27,10 @@ module Dry
25
27
  scope: scope
26
28
  )
27
29
 
28
- if shared
29
- key = method(:shared_cache_key)
30
- else
31
- key = method(:cache_key)
32
- end
33
-
34
- methods = Array(as)
30
+ key = key(shared)
35
31
 
36
32
  module_eval do
37
- methods.each do |meth|
33
+ Array(as).each do |meth|
38
34
  define_method(meth) do |*args, &block|
39
35
  if block
40
36
  eff = fetch_or_store.(key.(self, args), block)
@@ -48,6 +44,14 @@ module Dry
48
44
  end
49
45
  end
50
46
 
47
+ def key(shared)
48
+ if shared
49
+ method(:shared_cache_key)
50
+ else
51
+ method(:cache_key)
52
+ end
53
+ end
54
+
51
55
  def shared_cache_key(_, args, method: Undefined)
52
56
  if Undefined.equal?(method)
53
57
  args
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/effects/effect'
3
+ require "dry/effects/effect"
4
4
 
5
5
  module Dry
6
6
  module Effects
@@ -11,6 +11,8 @@ module Dry
11
11
  end
12
12
 
13
13
  def initialize(id)
14
+ super()
15
+
14
16
  get = CmpEffect.new(type: :cmp, name: :get, id: id)
15
17
 
16
18
  module_eval do
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/effects/effect'
4
- require 'dry/effects/constructors'
3
+ require "dry/effects/effect"
4
+ require "dry/effects/constructors"
5
5
 
6
6
  module Dry
7
7
  module Effects
@@ -18,6 +18,8 @@ module Dry
18
18
  end
19
19
 
20
20
  def initialize(**options)
21
+ super()
22
+
21
23
  module_eval do
22
24
  define_method(:current_time) do |opts = EMPTY_HASH|
23
25
  round = opts.fetch(:round, Undefined)
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/effects/effect'
3
+ require "dry/effects/effect"
4
4
 
5
5
  module Dry
6
6
  module Effects
@@ -11,6 +11,8 @@ module Dry
11
11
  Wait = Effect.new(type: :defer, name: :wait)
12
12
 
13
13
  def initialize
14
+ super
15
+
14
16
  module_eval do
15
17
  define_method(:defer) do |executor: Undefined, &block|
16
18
  ::Dry::Effects.yield(Defer.(block, executor))
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/effects/effect'
3
+ require "dry/effects/effect"
4
4
 
5
5
  module Dry
6
6
  module Effects
@@ -9,6 +9,8 @@ module Dry
9
9
  Read = Effect.new(type: :env, name: :read)
10
10
 
11
11
  def initialize(*args, **kwargs)
12
+ super()
13
+
12
14
  readers = args.zip(args) + kwargs.to_a
13
15
 
14
16
  module_eval do
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/effects/effect'
3
+ require "dry/effects/effect"
4
4
 
5
5
  module Dry
6
6
  module Effects
@@ -9,6 +9,8 @@ module Dry
9
9
  Fork = Effect.new(type: :fork)
10
10
 
11
11
  def initialize
12
+ super
13
+
12
14
  module_eval(<<~RUBY, __FILE__, __LINE__ + 1)
13
15
  def fork
14
16
  yield(::Dry::Effects.yield(Fork))
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/effects/effect'
3
+ require "dry/effects/effect"
4
4
 
5
5
  module Dry
6
6
  module Effects
@@ -11,6 +11,8 @@ module Dry
11
11
  end
12
12
 
13
13
  def initialize(dependency)
14
+ super()
15
+
14
16
  lookup = ImplicitEffect.new(type: :implicit, dependency: dependency)
15
17
 
16
18
  module_eval do
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/effects/effect'
3
+ require "dry/effects/effect"
4
4
 
5
5
  module Dry
6
6
  module Effects
@@ -11,6 +11,8 @@ module Dry
11
11
  end
12
12
 
13
13
  def initialize(scope = :default)
14
+ super()
15
+
14
16
  interrupt = InterruptEffect.new(type: :interrupt, scope: scope)
15
17
 
16
18
  module_eval do
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/effects/effect'
3
+ require "dry/effects/effect"
4
4
 
5
5
  module Dry
6
6
  module Effects
@@ -12,6 +12,8 @@ module Dry
12
12
  Locked = Effect.new(type: :lock, name: :locked?)
13
13
 
14
14
  def initialize
15
+ super
16
+
15
17
  module_eval do
16
18
  define_method(:lock) do |key, meta: Undefined, &block|
17
19
  if block
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/effects/effect'
3
+ require "dry/effects/effect"
4
4
 
5
5
  module Dry
6
6
  module Effects
@@ -10,8 +10,10 @@ module Dry
10
10
  Join = Effect.new(type: :parallel, name: :join)
11
11
 
12
12
  def initialize
13
+ super
14
+
13
15
  define_method(:par) { |&block| ::Dry::Effects.yield(Par).(&block) }
14
- define_method(:join) { |xs| ::Dry::Effects.yield(Join.payload(xs)) }
16
+ define_method(:join) { ::Dry::Effects.yield(Join.payload(_1)) }
15
17
  end
16
18
  end
17
19
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/effects/effect'
3
+ require "dry/effects/effect"
4
4
 
5
5
  module Dry
6
6
  module Effects
@@ -9,6 +9,8 @@ module Dry
9
9
  Rand = Effect.new(type: :random, name: :rand)
10
10
 
11
11
  def initialize
12
+ super
13
+
12
14
  module_eval do
13
15
  define_method(:rand) { |n = nil| ::Dry::Effects.yield(Rand.payload(n)) }
14
16
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/effects/effects/state'
3
+ require "dry/effects/effects/state"
4
4
 
5
5
  module Dry
6
6
  module Effects
@@ -1,23 +1,43 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/effects/effect'
4
- require 'dry/effects/constructors'
3
+ require "dry/effects/effect"
4
+ require "dry/effects/constructors"
5
5
 
6
6
  module Dry
7
7
  module Effects
8
8
  module Effects
9
9
  class Resolve < ::Module
10
+ DependencyNameInvalid = Class.new(StandardError)
11
+
12
+ VALID_NAME = /([a-z_][a-zA-Z_0-9]*)$/.freeze
13
+
10
14
  Resolve = Effect.new(type: :resolve)
11
15
 
12
- Constructors.register(:Resolve) { |key| Resolve.(key) }
16
+ Constructors.register(:Resolve) { Resolve.(_1) }
13
17
 
14
18
  def initialize(*keys, **aliases)
19
+ super()
20
+
21
+ keys_aliased = keys.map { name_for(_1) }.zip(keys)
15
22
  module_eval do
16
- (keys.zip(keys) + aliases.to_a).each do |name, key|
23
+ (keys_aliased + aliases.to_a).each do |name, key|
17
24
  define_method(name) { |&block| ::Dry::Effects.yield(Resolve.(key), &block) }
18
25
  end
19
26
  end
20
27
  end
28
+
29
+ private
30
+
31
+ # similar approach in dry-auto_inject https://github.com/dry-rb/dry-auto_inject/blob/master/lib/dry/auto_inject/dependency_map.rb#L42
32
+ def name_for(identifier)
33
+ matched = VALID_NAME.match(identifier.to_s)
34
+ unless matched
35
+ raise DependencyNameInvalid,
36
+ "name +#{identifier}+ is not a valid Ruby identifier"
37
+ end
38
+
39
+ matched[0]
40
+ end
21
41
  end
22
42
  end
23
43
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/effects/effect'
4
- require 'dry/effects/constructors'
3
+ require "dry/effects/effect"
4
+ require "dry/effects/constructors"
5
5
 
6
6
  module Dry
7
7
  module Effects
@@ -18,6 +18,8 @@ module Dry
18
18
  end
19
19
 
20
20
  def initialize
21
+ super
22
+
21
23
  module_eval do
22
24
  define_method(:repeat) do |scope|
23
25
  effect = Retry.new(type: :retry, scope: scope)
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/effects/effect'
4
- require 'dry/effects/constructors'
3
+ require "dry/effects/effect"
4
+ require "dry/effects/constructors"
5
5
 
6
6
  module Dry
7
7
  module Effects
@@ -22,6 +22,8 @@ module Dry
22
22
  end
23
23
 
24
24
  def initialize(scope, default: Undefined, writer: true, as: scope)
25
+ super()
26
+
25
27
  read = State.new(type: :state, name: :read, scope: scope)
26
28
  write = State.new(type: :state, name: :write, scope: scope)
27
29
 
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/effects/effect'
3
+ require "dry/effects/effect"
4
4
 
5
5
  module Dry
6
6
  module Effects
@@ -13,6 +13,8 @@ module Dry
13
13
  end
14
14
 
15
15
  def initialize(scope)
16
+ super()
17
+
16
18
  timeout = TimeoutEffect.new(type: :timeout, name: :timeout, scope: scope)
17
19
 
18
20
  module_eval do
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/effects/effect'
3
+ require "dry/effects/effect"
4
4
 
5
5
  module Dry
6
6
  module Effects
@@ -9,6 +9,8 @@ module Dry
9
9
  Timestamp = Effect.new(type: :timestamp)
10
10
 
11
11
  def initialize(options = EMPTY_HASH)
12
+ super()
13
+
12
14
  module_eval do
13
15
  define_method(:timestamp) do |round: Undefined|
14
16
  round_to = Undefined.coalesce(round, options.fetch(:round, Undefined))
@@ -20,7 +20,7 @@ module Dry
20
20
  super(
21
21
  Undefined.default(message) {
22
22
  "Effect #{effect.inspect} not handled. "\
23
- 'Effects must be wrapped with corresponding handlers'
23
+ "Effects must be wrapped with corresponding handlers"
24
24
  }
25
25
  )
26
26
  end
@@ -32,7 +32,7 @@ module Dry
32
32
  class MissingStateError < UnhandledEffectError
33
33
  def initialize(effect)
34
34
  message = "Value of +#{effect.scope}+ is not set, "\
35
- 'you need to provide value with an effect handler'
35
+ "you need to provide value with an effect handler"
36
36
 
37
37
  super(effect, message)
38
38
  end
@@ -46,8 +46,8 @@ module Dry
46
46
 
47
47
  def initialize(effect)
48
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
- 'providing a fallback value'
49
+ "by using a writer, passing initial value to the handler, or "\
50
+ "providing a fallback value"
51
51
 
52
52
  super(message)
53
53
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support/tagged_logging'
3
+ require "active_support/tagged_logging"
4
4
 
5
5
  ActiveSupport::TaggedLogging::Formatter.prepend(Module.new {
6
6
  def current_tags
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'concurrent/map'
4
- require 'dry/auto_inject/strategies/constructor'
5
- require 'dry/effects/effects/resolve'
3
+ require "concurrent/map"
4
+ require "dry/auto_inject/strategies/constructor"
5
+ require "dry/effects/effects/resolve"
6
6
 
7
7
  module Dry
8
8
  module Effects
@@ -24,7 +24,7 @@ module Dry
24
24
  class Static < Base
25
25
  private
26
26
 
27
- def define_readers(dynamic = false)
27
+ def define_readers(dynamic: false)
28
28
  map = dependency_map.to_h
29
29
  cache = ::Concurrent::Map.new
30
30
  instance_mod.class_exec do
@@ -49,7 +49,7 @@ module Dry
49
49
  class Dynamic < Static
50
50
  private
51
51
 
52
- def define_readers(dynamic = true)
52
+ def define_readers(dynamic: true)
53
53
  super
54
54
  end
55
55
  end