concerns_on_rails 1.5.0 → 1.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/CHANGELOG.md +12 -0
- data/README.md +422 -197
- data/lib/concerns_on_rails/controllers/filterable.rb +69 -0
- data/lib/concerns_on_rails/controllers/paginatable.rb +77 -0
- data/lib/concerns_on_rails/controllers/respondable.rb +53 -0
- data/lib/concerns_on_rails/controllers/sortable.rb +71 -0
- data/lib/concerns_on_rails/legacy_aliases.rb +13 -0
- data/lib/concerns_on_rails/models/expirable.rb +87 -0
- data/lib/concerns_on_rails/models/hashable.rb +80 -0
- data/lib/concerns_on_rails/models/normalizable.rb +74 -0
- data/lib/concerns_on_rails/models/publishable.rb +61 -0
- data/lib/concerns_on_rails/models/schedulable.rb +130 -0
- data/lib/concerns_on_rails/models/sluggable.rb +62 -0
- data/lib/concerns_on_rails/models/soft_deletable.rb +104 -0
- data/lib/concerns_on_rails/models/sortable.rb +87 -0
- data/lib/concerns_on_rails/version.rb +1 -1
- data/lib/concerns_on_rails.rb +21 -7
- metadata +15 -9
- data/lib/concerns_on_rails/expirable.rb +0 -85
- data/lib/concerns_on_rails/hashable.rb +0 -77
- data/lib/concerns_on_rails/publishable.rb +0 -58
- data/lib/concerns_on_rails/schedulable.rb +0 -128
- data/lib/concerns_on_rails/sluggable.rb +0 -60
- data/lib/concerns_on_rails/soft_deletable.rb +0 -101
- data/lib/concerns_on_rails/sortable.rb +0 -84
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6a0e7d53400756b8d2d3c27685da15e9f087f152fd6098beefb418a139f0b710
|
|
4
|
+
data.tar.gz: b11475b0b5c0b494d6ef4f356840bf63570519f85ba9c4d348d11026997937af
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4377941466783167c7f797e00b45a13d4280ce19127323407a671c30ee85bf1791500a60203e3e2141510bbb699fbad6bda5febd5b6706639236dca62741fc20
|
|
7
|
+
data.tar.gz: 9eb22fb7cca58c2bebd9544a558bbb7e060450a02377cee7f5d5ed13b68c453a26d67aca894ed3939aa5d79dfcc92c8874215f646db79b5441151c3a44070a55
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
<!-- CHANGELOG.md -->
|
|
2
2
|
|
|
3
|
+
## 1.6.0 (2026-05-19)
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
- **Models::Normalizable**: Declarative attribute normalization via `before_validation`. Supports built-in presets (`:email`, `:phone`, `:whitespace`, `:squish`, `:downcase`, `:upcase`) and custom lambdas. Works on Rails 5+ (no dependency on Rails 7.1's `normalizes`).
|
|
7
|
+
- **Controllers::Paginatable**: Offset-based pagination via `paginated(relation)` with `X-Total-Count` / `X-Page` / `X-Per-Page` / `X-Total-Pages` response headers. No Kaminari/will_paginate dependency.
|
|
8
|
+
- **Controllers::Filterable**: Declarative URL-param filtering via `filter_by` with three modes (direct `where`, named `scope:`, custom `with:` lambda). Pairs naturally with the model concerns (e.g., drive `Publishable.published` from a URL param).
|
|
9
|
+
- **Controllers::Sortable**: URL-param-driven ordering with a strict allow-list of sortable columns. Safe by default — non-whitelisted columns fall back to the configured default.
|
|
10
|
+
- **Controllers::Respondable**: Standardized JSON envelopes — `render_success(data:, status:, meta:)` and `render_error(message:, status:, code:, errors:)`.
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- Concerns are now organized under `ConcernsOnRails::Models::*` and `ConcernsOnRails::Controllers::*` namespaces. The pre-1.6 paths (`ConcernsOnRails::Sluggable`, etc.) continue to work as aliases — no migration is required.
|
|
14
|
+
|
|
3
15
|
## 1.5.0 (2026-05-16)
|
|
4
16
|
|
|
5
17
|
### Added
|