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 +4 -4
- data/app/models/rdux/action.rb +2 -2
- data/app/models/rdux/actionable.rb +3 -3
- data/lib/rdux/result.rb +2 -1
- data/lib/rdux/version.rb +1 -1
- data/lib/rdux.rb +3 -2
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e8bafc3ffdb3e56b33a2c6144590f851600eda0abfe67766f2ccb917c4580158
|
4
|
+
data.tar.gz: 7cf3def8a9248fead40f01c72fa5f06a5b69c6aa460d0fabf361860301dfa146
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b63dea34a594cf2ef6ab632ae872353cf0c041c40a9c7b3aec4fdedcd00fdc7a65d068c2cb9c21d30f6662b47a8dfbd2b95a20e73a5527846331286843dea066
|
7
|
+
data.tar.gz: 0d9d8ba53c8bec8f31e3f45747257c114a72ea0382838eca0d0203e27998789216a6584031dda8fb340f8a0be7c931760d3a9d03e06b4bbf5d690f8ccbf2a6d4
|
data/app/models/rdux/action.rb
CHANGED
@@ -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:
|
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, :
|
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
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:
|
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.
|
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:
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
127
|
+
version: 3.1.4
|
128
128
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
130
|
- - ">="
|