rdux 0.3.1 → 0.4.1
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/README.md +20 -3
- data/app/models/rdux/action.rb +3 -3
- data/app/models/rdux/actionable.rb +5 -3
- data/db/migrate/20230621215717_create_rdux_failed_actions.rb +1 -1
- data/db/migrate/20230621215718_create_rdux_actions.rb +1 -1
- data/lib/rdux/version.rb +1 -1
- metadata +5 -6
- data/lib/tasks/test.rake +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0eef143c3400a105457f40a8a9c4923ac3ceda1f55368d7bc2a8de146b9bf18d
|
4
|
+
data.tar.gz: 3fd1831ee4745709a83d3046bc923fbaba15f6c00c219dc768efcc6c7d6c4c3c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 45d228402c630f1470c1bca298ece96eb39c1de62d6368890ac9959d6c331f77ee48703bcbf56b684b30f22214665789d8bbbada18b691f9e01a18e058cd0fba
|
7
|
+
data.tar.gz: c518e31ce369986564bdc735602480499dfbecf0f4c90f7e873a3e73b016c14cf2e9367e954d99e4e05a56c6f1a17f70c592ceebbd39d7fa82ed077695f94cf4
|
data/README.md
CHANGED
@@ -10,7 +10,7 @@ $ bin/rails db:migrate
|
|
10
10
|
|
11
11
|
### Code structure
|
12
12
|
|
13
|
-
|
13
|
+
#### Dispatch action
|
14
14
|
|
15
15
|
```ruby
|
16
16
|
Rdux.perform(
|
@@ -23,6 +23,12 @@ Rdux.perform(
|
|
23
23
|
)
|
24
24
|
```
|
25
25
|
|
26
|
+
#### Return
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
Rdux::Result[true, { activity: activity }]
|
30
|
+
```
|
31
|
+
|
26
32
|
## Installation
|
27
33
|
Add this line to your application's Gemfile:
|
28
34
|
|
@@ -42,9 +48,20 @@ $ gem install rdux
|
|
42
48
|
|
43
49
|
## Test
|
44
50
|
|
51
|
+
### Setup
|
52
|
+
|
53
|
+
```bash
|
54
|
+
$ cd test/dummy
|
55
|
+
$ DB=all bin/rails db:create
|
56
|
+
$ DB=all bin/rails db:prepare
|
57
|
+
$ cd ../..
|
58
|
+
```
|
59
|
+
|
60
|
+
### Run tests
|
61
|
+
|
45
62
|
```bash
|
46
|
-
$ DB=postgres bin/test
|
47
|
-
$ DB=sqlite bin/test
|
63
|
+
$ DB=postgres bin/rails test
|
64
|
+
$ DB=sqlite bin/rails test
|
48
65
|
```
|
49
66
|
|
50
67
|
## License
|
data/app/models/rdux/action.rb
CHANGED
@@ -8,7 +8,7 @@ module Rdux
|
|
8
8
|
belongs_to :rdux_action, optional: true, class_name: 'Rdux::Action'
|
9
9
|
has_many :rdux_actions, class_name: 'Rdux::Action', foreign_key: 'rdux_action_id'
|
10
10
|
|
11
|
-
serialize :down_payload, JSON
|
11
|
+
serialize :down_payload, JSON if ActiveRecord::Base.connection.adapter_name != 'PostgreSQL'
|
12
12
|
|
13
13
|
scope :up, -> { where(down_at: nil) }
|
14
14
|
scope :down, -> { where.not(down_at: nil) }
|
@@ -47,7 +47,7 @@ module Rdux
|
|
47
47
|
!q.count.positive?
|
48
48
|
end
|
49
49
|
|
50
|
-
def
|
50
|
+
def action_performer(meth)
|
51
51
|
name_const = name.to_s.classify.constantize
|
52
52
|
return name_const if name_const.respond_to?(meth)
|
53
53
|
return unless name_const.is_a?(Class)
|
@@ -57,7 +57,7 @@ module Rdux
|
|
57
57
|
end
|
58
58
|
|
59
59
|
def perform_action(meth, payload, opts)
|
60
|
-
responder =
|
60
|
+
responder = action_performer(meth)
|
61
61
|
return if responder.nil?
|
62
62
|
|
63
63
|
if opts.any?
|
@@ -5,9 +5,11 @@ module Rdux
|
|
5
5
|
extend ActiveSupport::Concern
|
6
6
|
|
7
7
|
included do
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
if ActiveRecord::Base.connection.adapter_name != 'PostgreSQL'
|
9
|
+
serialize :up_payload, JSON
|
10
|
+
serialize :up_result, JSON
|
11
|
+
serialize :meta, JSON
|
12
|
+
end
|
11
13
|
|
12
14
|
validates :name, presence: true
|
13
15
|
validates :up_payload, presence: true
|
@@ -5,7 +5,7 @@ class CreateRduxFailedActions < ActiveRecord::Migration[7.0]
|
|
5
5
|
create_table :rdux_failed_actions do |t|
|
6
6
|
t.string :name, null: false
|
7
7
|
t.column :up_payload, (ActiveRecord::Base.connection.adapter_name == 'PostgreSQL' ? :jsonb : :text), null: false
|
8
|
-
t.boolean :up_payload_sanitized, default: false
|
8
|
+
t.boolean :up_payload_sanitized, default: false, null: false
|
9
9
|
t.column :up_result, (ActiveRecord::Base.connection.adapter_name == 'PostgreSQL' ? :jsonb : :text)
|
10
10
|
t.column :meta, (ActiveRecord::Base.connection.adapter_name == 'PostgreSQL' ? :jsonb : :text)
|
11
11
|
t.string :stream_hash
|
@@ -7,7 +7,7 @@ class CreateRduxActions < ActiveRecord::Migration[7.0]
|
|
7
7
|
t.column :up_payload, (ActiveRecord::Base.connection.adapter_name == 'PostgreSQL' ? :jsonb : :text), null: false
|
8
8
|
t.column :down_payload, (ActiveRecord::Base.connection.adapter_name == 'PostgreSQL' ? :jsonb : :text)
|
9
9
|
t.datetime :down_at
|
10
|
-
t.boolean :up_payload_sanitized, default: false
|
10
|
+
t.boolean :up_payload_sanitized, default: false, null: false
|
11
11
|
t.column :up_result, (ActiveRecord::Base.connection.adapter_name == 'PostgreSQL' ? :jsonb : :text)
|
12
12
|
t.column :meta, (ActiveRecord::Base.connection.adapter_name == 'PostgreSQL' ? :jsonb : :text)
|
13
13
|
t.string :stream_hash
|
data/lib/rdux/version.rb
CHANGED
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.4.1
|
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-08-
|
11
|
+
date: 2023-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -50,14 +50,14 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - ">="
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 1.
|
53
|
+
version: 1.55.1
|
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.55.1
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: rubocop-rails
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -111,7 +111,6 @@ files:
|
|
111
111
|
- lib/rdux/result.rb
|
112
112
|
- lib/rdux/sanitize.rb
|
113
113
|
- lib/rdux/version.rb
|
114
|
-
- lib/tasks/test.rake
|
115
114
|
homepage: https://artofcode.co
|
116
115
|
licenses:
|
117
116
|
- MIT
|
@@ -132,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
132
131
|
- !ruby/object:Gem::Version
|
133
132
|
version: '0'
|
134
133
|
requirements: []
|
135
|
-
rubygems_version: 3.4.
|
134
|
+
rubygems_version: 3.4.18
|
136
135
|
signing_key:
|
137
136
|
specification_version: 4
|
138
137
|
summary: Rdux adds a new layer to Rails apps - actions.
|
data/lib/tasks/test.rake
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
namespace :test do
|
4
|
-
desc 'Run tests with the SQLite database'
|
5
|
-
task :sqlite do
|
6
|
-
# Set an environment variable to change the database configuration
|
7
|
-
ENV['DB'] = 'sqlite'
|
8
|
-
Rake::Task['test'].invoke
|
9
|
-
end
|
10
|
-
|
11
|
-
desc 'Run tests with the Postgres database'
|
12
|
-
task :postgres do
|
13
|
-
ENV['DB'] = 'postgres'
|
14
|
-
Rake::Task['test'].invoke
|
15
|
-
end
|
16
|
-
end
|