rdux 0.5.0 → 0.6.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: 4d8b2deb7d13b8061c8996ccb5389ee374f7822aeb9973e50c7723688caf1c1d
4
- data.tar.gz: 4d5fd29c0b67e4c3d01a326b2b34e7e7ee8a5599485b2ea76c48cfd445147ad6
3
+ metadata.gz: e8bafc3ffdb3e56b33a2c6144590f851600eda0abfe67766f2ccb917c4580158
4
+ data.tar.gz: 7cf3def8a9248fead40f01c72fa5f06a5b69c6aa460d0fabf361860301dfa146
5
5
  SHA512:
6
- metadata.gz: a27f19dba3623c4e9da1f0c802d3d62f44a5d9a20a75fc7af1ac14a597e9f203b2237ada8930ca22c10e626e756d77b601041e820668485ec3c25b325c744f40
7
- data.tar.gz: e5603781b011cd5fd8e215083be8165c3665a5071b7a148d91cfd247e6e0be3875d5289ed89f5ec593b4e26aece21f2e7b05f19d5334ccb569c8c574272e2838
6
+ metadata.gz: b63dea34a594cf2ef6ab632ae872353cf0c041c40a9c7b3aec4fdedcd00fdc7a65d068c2cb9c21d30f6662b47a8dfbd2b95a20e73a5527846331286843dea066
7
+ data.tar.gz: 0d9d8ba53c8bec8f31e3f45747257c114a72ea0382838eca0d0203e27998789216a6584031dda8fb340f8a0be7c931760d3a9d03e06b4bbf5d690f8ccbf2a6d4
@@ -10,7 +10,7 @@ module Rdux
10
10
  belongs_to :rdux_action, optional: true, class_name: 'Rdux::Action'
11
11
  has_many :rdux_actions, class_name: 'Rdux::Action', foreign_key: 'rdux_action_id'
12
12
 
13
- serialize :down_payload, JSON if ActiveRecord::Base.connection.adapter_name != 'PostgreSQL'
13
+ serialize :down_payload, coder: JSON if ActiveRecord::Base.connection.adapter_name != 'PostgreSQL'
14
14
 
15
15
  scope :up, -> { where(down_at: nil) }
16
16
  scope :down, -> { where.not(down_at: nil) }
@@ -45,7 +45,7 @@ module Rdux
45
45
  q = self.class.where('created_at > ?', created_at)
46
46
  .where(down_at: nil)
47
47
  .where('rdux_action_id IS NULL OR rdux_action_id != ?', id)
48
- q = q.where(stream_hash: stream_hash) unless stream_hash.nil?
48
+ q = q.where(stream_hash:) unless stream_hash.nil?
49
49
  !q.count.positive?
50
50
  end
51
51
 
@@ -6,9 +6,9 @@ module Rdux
6
6
 
7
7
  included do
8
8
  if ActiveRecord::Base.connection.adapter_name != 'PostgreSQL'
9
- serialize :up_payload, JSON
10
- serialize :up_result, JSON
11
- serialize :meta, JSON
9
+ serialize :up_payload, coder: JSON
10
+ serialize :up_result, coder: JSON
11
+ serialize :meta, coder: JSON
12
12
  end
13
13
 
14
14
  validates :name, presence: true
data/lib/rdux/result.rb CHANGED
@@ -1,10 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rdux
4
- Result = Struct.new(:ok, :down_payload, :resp, :action, :up_result, :nested, :save) do
4
+ Result = Struct.new(:ok, :down_payload, :resp, :up_result, :save, :after_save, :nested, :action) do
5
5
  def payload
6
6
  resp || down_payload
7
7
  end
8
+ alias_method :val, :payload
8
9
 
9
10
  def save_failed?
10
11
  ok == false && save
data/lib/rdux/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rdux
4
- VERSION = '0.5.0'
4
+ VERSION = '0.6.0'
5
5
  end
data/lib/rdux.rb CHANGED
@@ -9,7 +9,7 @@ module Rdux
9
9
  class << self
10
10
  def dispatch(action_name, payload, opts = {}, meta: nil)
11
11
  (opts[:ars] || {}).each { |k, v| payload["#{k}_id"] = v.id }
12
- action = Action.create!(name: action_name, up_payload: payload, meta: meta)
12
+ action = Action.create!(name: action_name, up_payload: payload, meta:)
13
13
  sanitize(action)
14
14
  call_call_or_up_on_action(action, opts)
15
15
  end
@@ -27,6 +27,8 @@ module Rdux
27
27
  res = action.up(opts)
28
28
  end
29
29
  assign_and_persist(res, action)
30
+ res.after_save.call(res.action) if res.after_save && res.action
31
+ res
30
32
  end
31
33
 
32
34
  def assign_and_persist(res, action)
@@ -38,7 +40,6 @@ module Rdux
38
40
  else
39
41
  action.destroy
40
42
  end
41
- res
42
43
  end
43
44
 
44
45
  def assign_and_persist_for_ok(res, action)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdux
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zbigniew Humeniuk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-22 00:00:00.000000000 Z
11
+ date: 2024-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -36,56 +36,56 @@ dependencies:
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 1.5.2
39
+ version: 1.5.4
40
40
  type: :development
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 1.5.2
46
+ version: 1.5.4
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rubocop
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: 1.55.1
53
+ version: 1.59.0
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: 1.55.1
60
+ version: 1.59.0
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: rubocop-rails
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - ">="
66
66
  - !ruby/object:Gem::Version
67
- version: 2.20.2
67
+ version: 2.23.1
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: 2.20.2
74
+ version: 2.23.1
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: sqlite3
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - ">="
80
80
  - !ruby/object:Gem::Version
81
- version: 1.6.3
81
+ version: 1.7.0
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - ">="
87
87
  - !ruby/object:Gem::Version
88
- version: 1.6.3
88
+ version: 1.7.0
89
89
  description: |
90
90
  Write apps that are easy to test.
91
91
  Rdux gives you a possibility to centralize your app's state modification logic (DB changes).
@@ -124,7 +124,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
124
124
  requirements:
125
125
  - - ">="
126
126
  - !ruby/object:Gem::Version
127
- version: 3.0.0
127
+ version: 3.1.4
128
128
  required_rubygems_version: !ruby/object:Gem::Requirement
129
129
  requirements:
130
130
  - - ">="