simple_command_dispatcher 4.2.0 → 5.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 +4 -4
- data/.github/workflows/ruby.yml +3 -3
- data/.rubocop.yml +1 -1
- data/.ruby-version +1 -1
- data/CHANGELOG.md +22 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +46 -40
- data/README.md +22 -4
- data/lib/simple_command_dispatcher/version.rb +1 -1
- data/simple_command_dispatcher.gemspec +1 -1
- metadata +5 -7
- data/.travis.yml +0 -5
- data/Jenkinsfile +0 -20
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3aedf2e728af57a21d22a35d5b2d42e4403f5ea6615682b2c877c3ea65759a3b
|
|
4
|
+
data.tar.gz: 2262b184b9aa0612cbd2f28050ef0eab81a7c35dc937b8239ea36599961fee73
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 508db6d4a702ee9765cab2ea64c2c372a924ad4047624c82d77bf1727941c869cf72b726a2b4bb421f091d3889bd730c59d74325cfdee281a3b3a51bc9bff19b
|
|
7
|
+
data.tar.gz: 07c06d18b0f0fc4d433126d0ad4b8972f36138984226f26dad3a47fc6cfc9973a6d68ecab27145216c250d06dce1f080e88c797849cbd7449ac90c6f7f772f33
|
data/.github/workflows/ruby.yml
CHANGED
|
@@ -18,18 +18,18 @@ jobs:
|
|
|
18
18
|
os:
|
|
19
19
|
[
|
|
20
20
|
ubuntu-22.04,
|
|
21
|
+
ubuntu-24.04,
|
|
21
22
|
ubuntu-latest,
|
|
22
|
-
macos-13,
|
|
23
23
|
macos-14,
|
|
24
24
|
macos-15,
|
|
25
25
|
windows-2022,
|
|
26
26
|
windows-latest,
|
|
27
27
|
]
|
|
28
28
|
# Use `rbenv install --list` to determine what stable ruby versions to test against.
|
|
29
|
-
ruby: ["
|
|
29
|
+
ruby: ["4.0"]
|
|
30
30
|
|
|
31
31
|
steps:
|
|
32
|
-
- uses: actions/checkout@
|
|
32
|
+
- uses: actions/checkout@v4
|
|
33
33
|
|
|
34
34
|
- name: Set timezone on Linux
|
|
35
35
|
if: contains(matrix.os, 'ubuntu')
|
data/.rubocop.yml
CHANGED
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
4.0.1
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
|
+
## Version 5.0.0 - 2026-02-17
|
|
4
|
+
|
|
5
|
+
- **Breaking Changes**:
|
|
6
|
+
|
|
7
|
+
- Minimum Ruby version changed from 3.3 to 4.0.1
|
|
8
|
+
- Ruby version constraint updated to `>= 4.0.1`, `< 5.0`
|
|
9
|
+
|
|
10
|
+
- **CI/CD Updates**:
|
|
11
|
+
|
|
12
|
+
- Updated GitHub Actions matrix to test against Ruby 4.0
|
|
13
|
+
- Updated `actions/checkout` from v3 to v4
|
|
14
|
+
- Removed stale `.travis.yml` (referenced Ruby 2.0.0)
|
|
15
|
+
- Removed stale `Jenkinsfile` (referenced Ruby 3.2.6)
|
|
16
|
+
|
|
17
|
+
- **Dependency Updates**:
|
|
18
|
+
|
|
19
|
+
- Added `fiddle` gem for Windows compatibility (extracted from default gems in Ruby 4.0.0)
|
|
20
|
+
- Updated all gem dependencies via `bundle update`
|
|
21
|
+
- ActiveSupport updated to 8.1.2
|
|
22
|
+
- RuboCop updated to 1.84.2
|
|
23
|
+
- RSpec updated to 3.13.2
|
|
24
|
+
|
|
3
25
|
## Version 4.2.0 - 2025-10-07
|
|
4
26
|
|
|
5
27
|
- **New Feature: Configurable Logger with Debug Mode**:
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
simple_command_dispatcher (
|
|
4
|
+
simple_command_dispatcher (5.0.0)
|
|
5
5
|
activesupport (>= 7.0.8, < 9.0)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
8
8
|
remote: https://rubygems.org/
|
|
9
9
|
specs:
|
|
10
|
-
activesupport (8.
|
|
10
|
+
activesupport (8.1.2)
|
|
11
11
|
base64
|
|
12
|
-
benchmark (>= 0.3)
|
|
13
12
|
bigdecimal
|
|
14
13
|
concurrent-ruby (~> 1.0, >= 1.3.1)
|
|
15
14
|
connection_pool (>= 2.2.5)
|
|
16
15
|
drb
|
|
17
16
|
i18n (>= 1.6, < 2)
|
|
17
|
+
json
|
|
18
18
|
logger (>= 1.4.2)
|
|
19
19
|
minitest (>= 5.1)
|
|
20
20
|
securerandom (>= 0.3)
|
|
@@ -22,72 +22,76 @@ GEM
|
|
|
22
22
|
uri (>= 0.13.1)
|
|
23
23
|
ast (2.4.3)
|
|
24
24
|
base64 (0.3.0)
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
bigdecimal (4.0.1)
|
|
26
|
+
byebug (13.0.0)
|
|
27
|
+
reline (>= 0.6.0)
|
|
28
28
|
coderay (1.1.3)
|
|
29
29
|
colorize (1.1.0)
|
|
30
|
-
concurrent-ruby (1.3.
|
|
31
|
-
connection_pool (
|
|
32
|
-
date (3.
|
|
30
|
+
concurrent-ruby (1.3.6)
|
|
31
|
+
connection_pool (3.0.2)
|
|
32
|
+
date (3.5.1)
|
|
33
33
|
diff-lcs (1.6.2)
|
|
34
34
|
docile (1.4.1)
|
|
35
35
|
drb (2.2.3)
|
|
36
|
-
erb (
|
|
37
|
-
|
|
36
|
+
erb (6.0.1)
|
|
37
|
+
fiddle (1.1.8)
|
|
38
|
+
i18n (1.14.8)
|
|
38
39
|
concurrent-ruby (~> 1.0)
|
|
39
|
-
io-console (0.8.
|
|
40
|
-
irb (1.
|
|
40
|
+
io-console (0.8.2)
|
|
41
|
+
irb (1.17.0)
|
|
41
42
|
pp (>= 0.6.0)
|
|
43
|
+
prism (>= 1.3.0)
|
|
42
44
|
rdoc (>= 4.0.0)
|
|
43
45
|
reline (>= 0.4.2)
|
|
44
|
-
json (2.
|
|
46
|
+
json (2.18.1)
|
|
45
47
|
language_server-protocol (3.17.0.5)
|
|
46
48
|
lint_roller (1.1.0)
|
|
47
49
|
logger (1.7.0)
|
|
48
50
|
method_source (1.1.0)
|
|
49
|
-
minitest (
|
|
51
|
+
minitest (6.0.1)
|
|
52
|
+
prism (~> 1.5)
|
|
50
53
|
parallel (1.27.0)
|
|
51
|
-
parser (3.3.
|
|
54
|
+
parser (3.3.10.2)
|
|
52
55
|
ast (~> 2.4.1)
|
|
53
56
|
racc
|
|
54
57
|
pp (0.6.3)
|
|
55
58
|
prettyprint
|
|
56
59
|
prettyprint (0.2.0)
|
|
57
|
-
prism (1.
|
|
58
|
-
pry (0.
|
|
60
|
+
prism (1.9.0)
|
|
61
|
+
pry (0.16.0)
|
|
59
62
|
coderay (~> 1.1)
|
|
60
63
|
method_source (~> 1.0)
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
64
|
+
reline (>= 0.6.0)
|
|
65
|
+
pry-byebug (3.12.0)
|
|
66
|
+
byebug (~> 13.0)
|
|
67
|
+
pry (>= 0.13, < 0.17)
|
|
68
|
+
psych (5.3.1)
|
|
65
69
|
date
|
|
66
70
|
stringio
|
|
67
71
|
racc (1.8.1)
|
|
68
72
|
rainbow (3.1.1)
|
|
69
|
-
rake (13.3.
|
|
70
|
-
rdoc (
|
|
73
|
+
rake (13.3.1)
|
|
74
|
+
rdoc (7.2.0)
|
|
71
75
|
erb
|
|
72
76
|
psych (>= 4.0.0)
|
|
73
77
|
tsort
|
|
74
78
|
regexp_parser (2.11.3)
|
|
75
|
-
reline (0.6.
|
|
79
|
+
reline (0.6.3)
|
|
76
80
|
io-console (~> 0.5)
|
|
77
|
-
rspec (3.13.
|
|
81
|
+
rspec (3.13.2)
|
|
78
82
|
rspec-core (~> 3.13.0)
|
|
79
83
|
rspec-expectations (~> 3.13.0)
|
|
80
84
|
rspec-mocks (~> 3.13.0)
|
|
81
|
-
rspec-core (3.13.
|
|
85
|
+
rspec-core (3.13.6)
|
|
82
86
|
rspec-support (~> 3.13.0)
|
|
83
87
|
rspec-expectations (3.13.5)
|
|
84
88
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
85
89
|
rspec-support (~> 3.13.0)
|
|
86
|
-
rspec-mocks (3.13.
|
|
90
|
+
rspec-mocks (3.13.7)
|
|
87
91
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
88
92
|
rspec-support (~> 3.13.0)
|
|
89
|
-
rspec-support (3.13.
|
|
90
|
-
rubocop (1.
|
|
93
|
+
rspec-support (3.13.7)
|
|
94
|
+
rubocop (1.84.2)
|
|
91
95
|
json (~> 2.3)
|
|
92
96
|
language_server-protocol (~> 3.17.0.2)
|
|
93
97
|
lint_roller (~> 1.1.0)
|
|
@@ -95,22 +99,22 @@ GEM
|
|
|
95
99
|
parser (>= 3.3.0.2)
|
|
96
100
|
rainbow (>= 2.2.2, < 4.0)
|
|
97
101
|
regexp_parser (>= 2.9.3, < 3.0)
|
|
98
|
-
rubocop-ast (>= 1.
|
|
102
|
+
rubocop-ast (>= 1.49.0, < 2.0)
|
|
99
103
|
ruby-progressbar (~> 1.7)
|
|
100
104
|
unicode-display_width (>= 2.4.0, < 4.0)
|
|
101
|
-
rubocop-ast (1.
|
|
105
|
+
rubocop-ast (1.49.0)
|
|
102
106
|
parser (>= 3.3.7.2)
|
|
103
|
-
prism (~> 1.
|
|
104
|
-
rubocop-performance (1.26.
|
|
107
|
+
prism (~> 1.7)
|
|
108
|
+
rubocop-performance (1.26.1)
|
|
105
109
|
lint_roller (~> 1.1)
|
|
106
110
|
rubocop (>= 1.75.0, < 2.0)
|
|
107
|
-
rubocop-ast (>= 1.
|
|
111
|
+
rubocop-ast (>= 1.47.1, < 2.0)
|
|
108
112
|
rubocop-rake (0.7.1)
|
|
109
113
|
lint_roller (~> 1.1)
|
|
110
114
|
rubocop (>= 1.72.1)
|
|
111
|
-
rubocop-rspec (3.
|
|
115
|
+
rubocop-rspec (3.9.0)
|
|
112
116
|
lint_roller (~> 1.1)
|
|
113
|
-
rubocop (~> 1.
|
|
117
|
+
rubocop (~> 1.81)
|
|
114
118
|
ruby-progressbar (1.13.0)
|
|
115
119
|
securerandom (0.4.1)
|
|
116
120
|
simplecov (0.22.0)
|
|
@@ -119,18 +123,19 @@ GEM
|
|
|
119
123
|
simplecov_json_formatter (~> 0.1)
|
|
120
124
|
simplecov-html (0.13.2)
|
|
121
125
|
simplecov_json_formatter (0.1.4)
|
|
122
|
-
stringio (3.
|
|
126
|
+
stringio (3.2.0)
|
|
123
127
|
tsort (0.2.0)
|
|
124
128
|
tzinfo (2.0.6)
|
|
125
129
|
concurrent-ruby (~> 1.0)
|
|
126
130
|
unicode-display_width (3.2.0)
|
|
127
131
|
unicode-emoji (~> 4.1)
|
|
128
|
-
unicode-emoji (4.
|
|
129
|
-
uri (1.
|
|
132
|
+
unicode-emoji (4.2.0)
|
|
133
|
+
uri (1.1.1)
|
|
130
134
|
|
|
131
135
|
PLATFORMS
|
|
132
136
|
arm64-darwin-22
|
|
133
137
|
arm64-darwin-23
|
|
138
|
+
arm64-darwin-25
|
|
134
139
|
x64-mingw-ucrt
|
|
135
140
|
x86_64-darwin-19
|
|
136
141
|
x86_64-darwin-20
|
|
@@ -141,6 +146,7 @@ PLATFORMS
|
|
|
141
146
|
DEPENDENCIES
|
|
142
147
|
bundler (~> 2.5, >= 2.5.3)
|
|
143
148
|
colorize (>= 0.8.1, < 2.0)
|
|
149
|
+
fiddle (>= 1.1)
|
|
144
150
|
irb (>= 1.0)
|
|
145
151
|
pry-byebug (>= 3.9, < 4.0)
|
|
146
152
|
rake (>= 13.0, < 14.0)
|
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
[](https://github.com/gangelo/simple_command_dispatcher/actions/workflows/ruby.yml)
|
|
2
|
+
[](https://badge.fury.io/gh/gangelo%2Fsimple_command_dispatcher)
|
|
3
|
+
[](https://badge.fury.io/rb/simple_command_dispatcher)
|
|
4
4
|
[](http://www.rubydoc.info/gems/simple_command_dispatcher/)
|
|
5
5
|
[](http://www.rubydoc.info/gems/simple_command_dispatcher/)
|
|
6
6
|
[](https://github.com/gangelo/simple_command_dispatcher/issues)
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
|
|
15
15
|
📋 **See it in action:** Check out the [demo application](https://github.com/gangelo/simple_command_dispatcher_demo_app) - a Rails API app with tests that demonstrate how to use the gem and its capabilities.
|
|
16
16
|
|
|
17
|
+
📚 **Complete Documentation:** Visit the [comprehensive wiki](https://github.com/gangelo/simple_command_dispatcher/wiki) for in-depth guides, real-world examples, and advanced usage patterns.
|
|
18
|
+
|
|
17
19
|
## Features
|
|
18
20
|
|
|
19
21
|
- 🛠️ **Convention Over Configuration**: Call commands dynamically from controller actions using action routes and parameters
|
|
@@ -42,7 +44,7 @@ Or install it yourself as:
|
|
|
42
44
|
|
|
43
45
|
## Requirements
|
|
44
46
|
|
|
45
|
-
- Ruby >=
|
|
47
|
+
- Ruby >= 4.0.1
|
|
46
48
|
- Rails (optional, but optimized for Rails applications)
|
|
47
49
|
- Rails 8 compatible (tested with ActiveSupport 8.x)
|
|
48
50
|
|
|
@@ -603,6 +605,22 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/gangel
|
|
|
603
605
|
|
|
604
606
|
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
|
605
607
|
|
|
608
|
+
## Documentation
|
|
609
|
+
|
|
610
|
+
For comprehensive documentation, examples, and guides, visit the **[Wiki](https://github.com/gangelo/simple_command_dispatcher/wiki)**:
|
|
611
|
+
|
|
612
|
+
- **[Quick Start Tutorial](https://github.com/gangelo/simple_command_dispatcher/wiki/Quick-Start)** - Build your first command in 5 minutes
|
|
613
|
+
- **[Core Concepts](https://github.com/gangelo/simple_command_dispatcher/wiki/Core-Concepts)** - Understand how SCD works
|
|
614
|
+
- **[Creating Commands](https://github.com/gangelo/simple_command_dispatcher/wiki/Creating-Commands)** - Learn to write command classes
|
|
615
|
+
- **[CommandCallable Module](https://github.com/gangelo/simple_command_dispatcher/wiki/CommandCallable-Module)** - Master command standardization
|
|
616
|
+
- **[Dynamic Dispatching](https://github.com/gangelo/simple_command_dispatcher/wiki/Dynamic-Dispatching)** - Advanced controller patterns
|
|
617
|
+
- **[Route-to-Command Mapping](https://github.com/gangelo/simple_command_dispatcher/wiki/Route-to-Command-Mapping)** - Convention over configuration explained
|
|
618
|
+
- **[Real-World Examples](https://github.com/gangelo/simple_command_dispatcher/wiki/Examples-Authentication)** - Authentication, payments, search, and more
|
|
619
|
+
- **[Parameter Handling](https://github.com/gangelo/simple_command_dispatcher/wiki/Parameter-Handling)** - Working with different parameter types
|
|
620
|
+
- **[Error Handling](https://github.com/gangelo/simple_command_dispatcher/wiki/Error-Handling)** - Validation and error management
|
|
621
|
+
- **[FAQ](https://github.com/gangelo/simple_command_dispatcher/wiki/FAQ)** - Frequently asked questions
|
|
622
|
+
- **[Installation](https://github.com/gangelo/simple_command_dispatcher/wiki/Installation)** - Complete setup guide
|
|
623
|
+
|
|
606
624
|
## Changelog
|
|
607
625
|
|
|
608
626
|
See [CHANGELOG.md](CHANGELOG.md) for version history and breaking changes.
|
|
@@ -34,7 +34,7 @@ Gem::Specification.new do |spec|
|
|
|
34
34
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
35
35
|
spec.require_paths = ['lib']
|
|
36
36
|
|
|
37
|
-
spec.required_ruby_version = Gem::Requirement.new('>=
|
|
37
|
+
spec.required_ruby_version = Gem::Requirement.new('>= 4.0.1', '< 5.0')
|
|
38
38
|
|
|
39
39
|
spec.add_runtime_dependency 'activesupport', '>= 7.0.8', '< 9.0'
|
|
40
40
|
end
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: simple_command_dispatcher
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 5.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Gene M. Angelo, Jr.
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: activesupport
|
|
@@ -49,12 +49,10 @@ files:
|
|
|
49
49
|
- ".rspec"
|
|
50
50
|
- ".rubocop.yml"
|
|
51
51
|
- ".ruby-version"
|
|
52
|
-
- ".travis.yml"
|
|
53
52
|
- CHANGELOG.md
|
|
54
53
|
- CODE_OF_CONDUCT.md
|
|
55
54
|
- Gemfile
|
|
56
55
|
- Gemfile.lock
|
|
57
|
-
- Jenkinsfile
|
|
58
56
|
- LICENSE.txt
|
|
59
57
|
- README.md
|
|
60
58
|
- Rakefile
|
|
@@ -88,17 +86,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
88
86
|
requirements:
|
|
89
87
|
- - ">="
|
|
90
88
|
- !ruby/object:Gem::Version
|
|
91
|
-
version:
|
|
89
|
+
version: 4.0.1
|
|
92
90
|
- - "<"
|
|
93
91
|
- !ruby/object:Gem::Version
|
|
94
|
-
version: '
|
|
92
|
+
version: '5.0'
|
|
95
93
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
94
|
requirements:
|
|
97
95
|
- - ">="
|
|
98
96
|
- !ruby/object:Gem::Version
|
|
99
97
|
version: '0'
|
|
100
98
|
requirements: []
|
|
101
|
-
rubygems_version:
|
|
99
|
+
rubygems_version: 4.0.3
|
|
102
100
|
specification_version: 4
|
|
103
101
|
summary: Dynamic command execution for Rails applications using convention over configuration
|
|
104
102
|
- automatically maps request routes to command classes.
|
data/.travis.yml
DELETED
data/Jenkinsfile
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
pipeline {
|
|
2
|
-
agent { docker { image 'ruby:3.2.6' } }
|
|
3
|
-
stages {
|
|
4
|
-
stage('requirements') {
|
|
5
|
-
steps {
|
|
6
|
-
sh 'gem install bundler -v 2.5.6'
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
stage('build') {
|
|
10
|
-
steps {
|
|
11
|
-
sh 'bundle install'
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
stage('test') {
|
|
15
|
-
steps {
|
|
16
|
-
sh 'bundle exec rspec'
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|