dry-events 0.3.0 → 1.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e9092f7b60a8ad71e376a074367328c96be1ca31c278dfee8a7f8e8a6c11d02d
4
- data.tar.gz: fb9e14c0df38ac76a64fd9811367322bccee5465d259a28537de902b292a6c72
3
+ metadata.gz: 3004460342bf022f6f7e6b62f4b7d5b97882f216afe182aa7c18b832b6fa7a48
4
+ data.tar.gz: 4f74a7772c2349e148776e0f47f3016c143249793459e9049f543c5cf2c7a429
5
5
  SHA512:
6
- metadata.gz: 995a2c14a459edd0e0fcb05f19629829581fce7e14e7edbbb8c9fe2e555769b3cd15a89b55d75826da0d49a70b7a818de802b7f92d496f0012bf675c61d3bcc1
7
- data.tar.gz: db26c95473237a3f783f06ffc71bad0351ab24a4922a544d227c586f9028d49655f300c038f63697d8fbe297e774b77692e52752167b12ae88660f69d6a8d344
6
+ metadata.gz: fe4f87790cf0ba23499dbd9f46ec0e2bf1b5d6521fda001db03b71b0659bc647e97f0d414e6f82088bc7589c7f7fc8f17749c3d49ac3b50748b8159bad2a54ce
7
+ data.tar.gz: 6c8641f674be30503f66e6dde6f220386608a9ca76250f14cbd94ec52cc795d18bc099875ba46d1bc773011f483dcb14011293b462bda23b884e00054c36edbd
data/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  <!--- DO NOT EDIT THIS FILE - IT'S AUTOMATICALLY GENERATED VIA DEVTOOLS --->
2
2
 
3
+ ## 1.0.0 2022-11-04
4
+
5
+
6
+ ### Changed
7
+
8
+ - This version is compatible with recently released dry-rb dependencies (@flash-gordon)
9
+ - Bumped version to 1.0.0 (@solnic)
10
+
11
+ [Compare v0.4.0...v1.0.0](https://github.com/dry-rb/dry-events/compare/v0.4.0...v1.0.0)
12
+
13
+ ## 0.4.0 2022-10-15
14
+
15
+
16
+ ### Fixed
17
+
18
+ - `subscribed?` now detects instance method blocks too (via #15) (@guilherme-andrade)
19
+
20
+ ### Changed
21
+
22
+ - Use zeitwerk for auto-loading (@flash-gordon)
23
+
24
+ [Compare v0.3.0...v0.4.0](https://github.com/dry-rb/dry-events/compare/v0.3.0...v0.4.0)
25
+
3
26
  ## 0.3.0 2021-04-11
4
27
 
5
28
 
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2015-2021 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-events
2
3
  [actions]: https://github.com/dry-rb/dry-events/actions
3
4
  [codacy]: https://www.codacy.com/gh/dry-rb/dry-events
@@ -10,19 +11,19 @@
10
11
  [![CI Status](https://github.com/dry-rb/dry-events/workflows/ci/badge.svg)][actions]
11
12
  [![Codacy Badge](https://api.codacy.com/project/badge/Grade/3170162485134ea3b778c7e20e180b26)][codacy]
12
13
  [![Codacy Badge](https://api.codacy.com/project/badge/Coverage/3170162485134ea3b778c7e20e180b26)][codacy]
13
- [![Inline docs](http://inch-ci.org/github/dry-rb/dry-events.svg?branch=master)][inchpages]
14
+ [![Inline docs](http://inch-ci.org/github/dry-rb/dry-events.svg?branch=main)][inchpages]
14
15
 
15
16
  ## Links
16
17
 
17
- * [User documentation](http://dry-rb.org/gems/dry-events)
18
+ * [User documentation](https://dry-rb.org/gems/dry-events)
18
19
  * [API documentation](http://rubydoc.info/gems/dry-events)
19
20
 
20
21
  ## Supported Ruby versions
21
22
 
22
23
  This library officially supports the following Ruby versions:
23
24
 
24
- * MRI >= `2.5`
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-events.gemspec CHANGED
@@ -1,35 +1,36 @@
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/events/version'
7
+ require "dry/events/version"
7
8
 
8
9
  Gem::Specification.new do |spec|
9
- spec.name = 'dry-events'
10
+ spec.name = "dry-events"
10
11
  spec.authors = ["Piotr Solnica"]
11
12
  spec.email = ["piotr.solnica+oss@gmail.com"]
12
- spec.license = 'MIT'
13
+ spec.license = "MIT"
13
14
  spec.version = Dry::Events::VERSION.dup
14
15
 
15
16
  spec.summary = "Pub/sub system"
16
17
  spec.description = spec.summary
17
- spec.homepage = 'https://dry-rb.org/gems/dry-events'
18
+ spec.homepage = "https://dry-rb.org/gems/dry-events"
18
19
  spec.files = Dir["CHANGELOG.md", "LICENSE", "README.md", "dry-events.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-events/blob/master/CHANGELOG.md'
25
- spec.metadata['source_code_uri'] = 'https://github.com/dry-rb/dry-events'
26
- spec.metadata['bug_tracker_uri'] = 'https://github.com/dry-rb/dry-events/issues'
24
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
25
+ spec.metadata["changelog_uri"] = "https://github.com/dry-rb/dry-events/blob/main/CHANGELOG.md"
26
+ spec.metadata["source_code_uri"] = "https://github.com/dry-rb/dry-events"
27
+ spec.metadata["bug_tracker_uri"] = "https://github.com/dry-rb/dry-events/issues"
27
28
 
28
- spec.required_ruby_version = ">= 2.5.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
- spec.add_runtime_dependency "dry-core", "~> 0.5", ">= 0.5"
33
+ spec.add_runtime_dependency "dry-core", "~> 1.0", "< 2"
33
34
 
34
35
  spec.add_development_dependency "bundler"
35
36
  spec.add_development_dependency "rake"
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/events/constants'
3
+ require "dry/events/constants"
4
4
 
5
5
  module Dry
6
6
  module Events
@@ -76,7 +76,14 @@ module Dry
76
76
 
77
77
  # @api private
78
78
  def subscribed?(listener)
79
- listeners.values.any? { |value| value.any? { |block, _| block.equal?(listener) } }
79
+ listeners.values.any? do |value|
80
+ value.any? do |block, _|
81
+ case listener
82
+ when Proc then block.equal?(listener)
83
+ when Method then listener.owner == block.owner && listener.name == block.name
84
+ end
85
+ end
86
+ end
80
87
  end
81
88
 
82
89
  # @api private
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'concurrent/map'
4
- require 'dry/core/constants'
3
+ require "concurrent/map"
5
4
 
6
5
  module Dry
7
6
  module Events
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/core/equalizer'
4
- require 'dry/events/constants'
3
+ require "dry/events/constants"
5
4
 
6
5
  module Dry
7
6
  module Events
@@ -14,12 +13,12 @@ module Dry
14
13
  InvalidEventNameError = Class.new(StandardError) do
15
14
  # @api private
16
15
  def initialize
17
- super('please provide a valid event name, it could be either String or Symbol')
16
+ super("please provide a valid event name, it could be either String or Symbol")
18
17
  end
19
18
  end
20
19
 
21
- DOT = '.'.freeze
22
- UNDERSCORE = '_'.freeze
20
+ DOT = "."
21
+ UNDERSCORE = "_"
23
22
 
24
23
  # @!attribute [r] id
25
24
  # @return [Symbol, String] The event identifier
@@ -29,7 +28,7 @@ module Dry
29
28
  def self.new(id, payload = EMPTY_HASH)
30
29
  return super(id, payload) if (id.is_a?(String) || id.is_a?(Symbol)) && !id.empty?
31
30
 
32
- raise InvalidEventNameError.new
31
+ raise InvalidEventNameError
33
32
  end
34
33
 
35
34
  # Initialize a new event
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'set'
3
+ require "set"
4
4
 
5
5
  module Dry
6
6
  module Events
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry/core/equalizer'
4
- require 'dry/events/publisher'
3
+ require "dry/events/publisher"
5
4
 
6
5
  module Dry
7
6
  module Events
@@ -23,7 +22,7 @@ module Dry
23
22
  # end
24
23
  #
25
24
  # @api public
26
- class Listener < Module
25
+ class Listener < ::Module
27
26
  include Dry::Equalizer(:id)
28
27
 
29
28
  # @!attribute [r] :id
@@ -42,6 +41,7 @@ module Dry
42
41
 
43
42
  # @api private
44
43
  def initialize(id)
44
+ super()
45
45
  @id = id
46
46
 
47
47
  define_method(:subscribe) do |event_id, query = EMPTY_HASH, &block|
@@ -1,13 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'concurrent/map'
4
-
5
- require 'dry/core/class_attributes'
6
-
7
- require 'dry/events/constants'
8
- require 'dry/events/event'
9
- require 'dry/events/bus'
10
- require 'dry/events/filter'
3
+ require "dry/core"
4
+ require "dry/events/constants"
5
+ require "dry/events/event"
6
+ require "dry/events/bus"
7
+ require "dry/events/filter"
11
8
 
12
9
  module Dry
13
10
  module Events
@@ -27,9 +24,12 @@ module Dry
27
24
  def initialize(object_or_event_id)
28
25
  case object_or_event_id
29
26
  when String, Symbol
30
- super("you are trying to subscribe to an event: `#{object_or_event_id}` that has not been registered")
27
+ super(
28
+ "you are trying to subscribe to an event: `#{object_or_event_id}` "\
29
+ "that has not been registered"
30
+ )
31
31
  else
32
- super('you try use subscriber object that will never be executed')
32
+ super("you try use subscriber object that will never be executed")
33
33
  end
34
34
  end
35
35
  end
@@ -74,7 +74,7 @@ module Dry
74
74
  # create_user.call(name: "Jane")
75
75
  #
76
76
  # @api public
77
- class Publisher < Module
77
+ class Publisher < ::Module
78
78
  include Dry::Equalizer(:id)
79
79
 
80
80
  # Internal publisher registry, which is used to identify them globally
@@ -102,13 +102,14 @@ module Dry
102
102
  #
103
103
  # @api public
104
104
  def self.[](id)
105
- raise PublisherAlreadyRegisteredError.new(id) if registry.key?(id)
105
+ raise PublisherAlreadyRegisteredError, id if registry.key?(id)
106
106
 
107
107
  new(id)
108
108
  end
109
109
 
110
110
  # @api private
111
111
  def initialize(id)
112
+ super()
112
113
  @id = id
113
114
  end
114
115
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Dry
4
4
  module Events
5
- VERSION = '0.3.0'
5
+ VERSION = "1.0.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dry-events
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Solnica
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-11 00:00:00.000000000 Z
11
+ date: 2022-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -30,20 +30,20 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.5'
34
- - - ">="
33
+ version: '1.0'
34
+ - - "<"
35
35
  - !ruby/object:Gem::Version
36
- version: '0.5'
36
+ version: '2'
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
- version: '0.5'
44
- - - ">="
43
+ version: '1.0'
44
+ - - "<"
45
45
  - !ruby/object:Gem::Version
46
- version: '0.5'
46
+ version: '2'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -111,7 +111,7 @@ licenses:
111
111
  - MIT
112
112
  metadata:
113
113
  allowed_push_host: https://rubygems.org
114
- changelog_uri: https://github.com/dry-rb/dry-events/blob/master/CHANGELOG.md
114
+ changelog_uri: https://github.com/dry-rb/dry-events/blob/main/CHANGELOG.md
115
115
  source_code_uri: https://github.com/dry-rb/dry-events
116
116
  bug_tracker_uri: https://github.com/dry-rb/dry-events/issues
117
117
  post_install_message:
@@ -122,7 +122,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
122
122
  requirements:
123
123
  - - ">="
124
124
  - !ruby/object:Gem::Version
125
- version: 2.5.0
125
+ version: 2.7.0
126
126
  required_rubygems_version: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - ">="