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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f29164d7bff98aa5d0b2aed2e12adf6f4408d06bfa789a142b0cf234f656a95a
4
- data.tar.gz: ce2ba1f720a44a1a9ced023a7b2769d2a2702d971a6c0a2643aa5926a2585df4
3
+ metadata.gz: 3aedf2e728af57a21d22a35d5b2d42e4403f5ea6615682b2c877c3ea65759a3b
4
+ data.tar.gz: 2262b184b9aa0612cbd2f28050ef0eab81a7c35dc937b8239ea36599961fee73
5
5
  SHA512:
6
- metadata.gz: 1a929a3e9025cfa05bab78e9ec0a33fe15d1b2ca0f1e5696bb3cc9a455cf01214f0b0a6cec737e026bc39ad95d356451fc2e25abaeadd38f72d3817d8431335f
7
- data.tar.gz: 7f99ae544a0c2d31abfe8126a43d44766acb3eba9cd14298cc4f84fbe46ff3d5fcfda1a4734c4e2cac47b978bf56c8f6c288fbb031f5d5f61d6f4d3f31e0fad8
6
+ metadata.gz: 508db6d4a702ee9765cab2ea64c2c372a924ad4047624c82d77bf1727941c869cf72b726a2b4bb421f091d3889bd730c59d74325cfdee281a3b3a51bc9bff19b
7
+ data.tar.gz: 07c06d18b0f0fc4d433126d0ad4b8972f36138984226f26dad3a47fc6cfc9973a6d68ecab27145216c250d06dce1f080e88c797849cbd7449ac90c6f7f772f33
@@ -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: ["3.3", "3.4"]
29
+ ruby: ["4.0"]
30
30
 
31
31
  steps:
32
- - uses: actions/checkout@v3
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
@@ -4,7 +4,7 @@ plugins:
4
4
  - rubocop-rake
5
5
 
6
6
  AllCops:
7
- TargetRubyVersion: 3.4
7
+ TargetRubyVersion: 4.0
8
8
  NewCops: enable
9
9
  Exclude:
10
10
  - "*.gemspec"
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.4.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
@@ -10,6 +10,7 @@ gem 'colorize', '>= 0.8.1', '< 2.0'
10
10
  gem 'rake', '>= 13.0', '< 14.0'
11
11
 
12
12
  group :development do
13
+ gem 'fiddle', '>= 1.1'
13
14
  gem 'irb', '>= 1.0'
14
15
  gem 'pry-byebug', '>= 3.9', '< 4.0'
15
16
  gem 'reline', '>= 0.3'
data/Gemfile.lock CHANGED
@@ -1,20 +1,20 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- simple_command_dispatcher (4.2.0)
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.0.3)
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
- benchmark (0.4.1)
26
- bigdecimal (3.3.0)
27
- byebug (12.0.0)
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.5)
31
- connection_pool (2.5.4)
32
- date (3.4.1)
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 (5.0.3)
37
- i18n (1.14.7)
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.1)
40
- irb (1.15.2)
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.15.1)
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 (5.25.5)
51
+ minitest (6.0.1)
52
+ prism (~> 1.5)
50
53
  parallel (1.27.0)
51
- parser (3.3.9.0)
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.5.1)
58
- pry (0.15.2)
60
+ prism (1.9.0)
61
+ pry (0.16.0)
59
62
  coderay (~> 1.1)
60
63
  method_source (~> 1.0)
61
- pry-byebug (3.11.0)
62
- byebug (~> 12.0)
63
- pry (>= 0.13, < 0.16)
64
- psych (5.2.6)
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.0)
70
- rdoc (6.15.0)
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.2)
79
+ reline (0.6.3)
76
80
  io-console (~> 0.5)
77
- rspec (3.13.1)
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.5)
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.5)
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.6)
90
- rubocop (1.81.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.47.1, < 2.0)
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.47.1)
105
+ rubocop-ast (1.49.0)
102
106
  parser (>= 3.3.7.2)
103
- prism (~> 1.4)
104
- rubocop-performance (1.26.0)
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.44.0, < 2.0)
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.7.0)
115
+ rubocop-rspec (3.9.0)
112
116
  lint_roller (~> 1.1)
113
- rubocop (~> 1.72, >= 1.72.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.1.7)
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.1.0)
129
- uri (1.0.4)
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
- [![Ruby](https://github.com/gangelo/simple_command_dispatcher/actions/workflows/ruby.yml/badge.svg?refresh=8)](https://github.com/gangelo/simple_command_dispatcher/actions/workflows/ruby.yml)
2
- [![GitHub version](https://badge.fury.io/gh/gangelo%2Fsimple_command_dispatcher.svg?refresh=8)](https://badge.fury.io/gh/gangelo%2Fsimple_command_dispatcher)
3
- [![Gem Version](https://badge.fury.io/rb/simple_command_dispatcher.svg?refresh=8)](https://badge.fury.io/rb/simple_command_dispatcher)
1
+ [![Ruby](https://github.com/gangelo/simple_command_dispatcher/actions/workflows/ruby.yml/badge.svg?refresh=9)](https://github.com/gangelo/simple_command_dispatcher/actions/workflows/ruby.yml)
2
+ [![GitHub version](https://badge.fury.io/gh/gangelo%2Fsimple_command_dispatcher.svg?refresh=9)](https://badge.fury.io/gh/gangelo%2Fsimple_command_dispatcher)
3
+ [![Gem Version](https://badge.fury.io/rb/simple_command_dispatcher.svg?refresh=9)](https://badge.fury.io/rb/simple_command_dispatcher)
4
4
  [![](https://ruby-gem-downloads-badge.herokuapp.com/simple_command_dispatcher?type=total)](http://www.rubydoc.info/gems/simple_command_dispatcher/)
5
5
  [![Documentation](http://img.shields.io/badge/docs-rdoc.info-blue.svg)](http://www.rubydoc.info/gems/simple_command_dispatcher/)
6
6
  [![Report Issues](https://img.shields.io/badge/report-issues-red.svg)](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 >= 3.3.0
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.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SimpleCommandDispatcher
4
- VERSION = '4.2.0'
4
+ VERSION = '5.0.0'
5
5
  end
@@ -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('>= 3.3', '< 4.0')
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.2.0
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: 2025-10-08 00:00:00.000000000 Z
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: '3.3'
89
+ version: 4.0.1
92
90
  - - "<"
93
91
  - !ruby/object:Gem::Version
94
- version: '4.0'
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: 3.6.2
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
@@ -1,5 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.0.0
5
- before_install: gem install bundler -v 1.13.6
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
- }