active_outbox 0.1.4 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef235321d10ec48e78a45e7b894ef50bffb6e73bf6e7d94971f19ed5f945e137
4
- data.tar.gz: df6f204e1644416d5351af321e8f2cd832b0a7fad22e9d38385902f48e1e146b
3
+ metadata.gz: bedb54017b2c61e07e141bf5d232694a1b27cdaa7a07bdad89e266a5f6f42e8c
4
+ data.tar.gz: 5bdda5254741aa6ce091da6557a17f5a9dc65abdb8cd7b8cf29c6653d2798f9c
5
5
  SHA512:
6
- metadata.gz: f3322c31bd2dd05f239d5373fb772033583407576b5be4b14b184c5d97abc5ba1dd0aa7516e27b0f11519848d381948c8031c79c0d0916eaadd1566e78709d30
7
- data.tar.gz: 803e2a29abded8d24ecd32492c39f19b26103769b47a7952d16114b5073bf5e42711d369e43f8d09e25cd9ce6d446c7492051e661d22f2c24becc66e25e7b66f
6
+ metadata.gz: 828f4f6dd6aa3f48c5365be6b5fd378c3086c97adcecb5d87d8fbaeeb872623d481f385dff0f23cb45fba72dad289a06732d6a04289d0f7cbac71bdf5ec920c7
7
+ data.tar.gz: 905bc052f21285ea79724e6d552b26d714ff2fa03c00b39015c2048a5d2189af567e7910ac4ff755d9fe3122ffc811b734b16c53c01e46b72e8d44065daee605
data/README.md CHANGED
@@ -63,6 +63,8 @@ Using the User model as an example, the default event names provided are:
63
63
  - USER_UPDATED
64
64
  - USER_DESTROYED
65
65
 
66
+ This will live under `ActiveOutbox::Events` wherever you include the `Outboxable` concern. The intent is to define it under `Object` for non-namespaced models, as well as under each model namespace that is encountered.
67
+
66
68
  ### Custom Events
67
69
  If you want to persist a custom event other than the provided base events, you can do so.
68
70
  ```ruby
@@ -75,7 +77,7 @@ By default our Outbox migration has an `aggregate_identifier` field which serves
75
77
  rails g active_outbox:model <optional model_name> --uuid
76
78
  ```
77
79
  ### Modularized Outbox Mappings
78
- If more granularity is desired multiple outbox classes can be configured. Using the provided generators we can specify namespaces and the folder structure.
80
+ If more granularity is desired multiple outbox classes can be configured. Using the provided generators we can specify namespaces and the folder structure.
79
81
  ```bash
80
82
  rails g active_outbox:model user_access/ --component-path packs/user_access
81
83
 
@@ -10,16 +10,21 @@ module ActiveOutbox
10
10
  *namespace, klass = name.underscore.upcase.split('/')
11
11
  namespace = namespace.reverse.join('.')
12
12
 
13
- module_parent.const_set('Events', Module.new) unless module_parent.const_defined?('Events')
13
+ module_parent.const_set('ActiveOutbox', Module.new) unless module_parent.const_defined?('ActiveOutbox', false)
14
+
15
+ unless module_parent::ActiveOutbox.const_defined?('Events', false)
16
+ module_parent::ActiveOutbox.const_set('Events', Module.new)
17
+ end
14
18
 
15
19
  { create: 'CREATED', update: 'UPDATED', destroy: 'DESTROYED' }.each do |key, value|
16
20
  const_name = "#{klass}_#{value}"
17
21
 
18
- unless module_parent::Events.const_defined?(const_name)
19
- module_parent::Events.const_set(const_name, "#{const_name}#{namespace.blank? ? '' : '.'}#{namespace}")
22
+ unless module_parent::ActiveOutbox::Events.const_defined?(const_name)
23
+ module_parent::ActiveOutbox::Events.const_set(const_name,
24
+ "#{const_name}#{namespace.blank? ? '' : '.'}#{namespace}")
20
25
  end
21
26
 
22
- event_name = module_parent::Events.const_get(const_name)
27
+ event_name = module_parent::ActiveOutbox::Events.const_get(const_name)
23
28
 
24
29
  send("after_#{key}") { create_outbox!(key, event_name) }
25
30
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_outbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guillermo Aguirre
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-16 00:00:00.000000000 Z
11
+ date: 2024-05-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-configurable
@@ -76,7 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
78
  requirements: []
79
- rubygems_version: 3.4.10
79
+ rubygems_version: 3.5.9
80
80
  signing_key:
81
81
  specification_version: 4
82
82
  summary: A Transactional Outbox implementation for ActiveRecord