cmdx 1.14.0 → 1.15.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.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +8 -1
  4. data/lib/cmdx/attribute.rb +22 -1
  5. data/lib/cmdx/validator_registry.rb +1 -0
  6. data/lib/cmdx/validators/absence.rb +61 -0
  7. data/lib/cmdx/version.rb +1 -1
  8. data/lib/locales/af.yml +1 -0
  9. data/lib/locales/ar.yml +1 -0
  10. data/lib/locales/az.yml +1 -0
  11. data/lib/locales/be.yml +1 -0
  12. data/lib/locales/bg.yml +1 -0
  13. data/lib/locales/bn.yml +1 -0
  14. data/lib/locales/bs.yml +1 -0
  15. data/lib/locales/ca.yml +1 -0
  16. data/lib/locales/cnr.yml +1 -0
  17. data/lib/locales/cs.yml +1 -0
  18. data/lib/locales/cy.yml +1 -0
  19. data/lib/locales/da.yml +1 -0
  20. data/lib/locales/de.yml +1 -0
  21. data/lib/locales/dz.yml +1 -0
  22. data/lib/locales/el.yml +1 -0
  23. data/lib/locales/en.yml +1 -0
  24. data/lib/locales/eo.yml +1 -0
  25. data/lib/locales/es.yml +1 -0
  26. data/lib/locales/et.yml +1 -0
  27. data/lib/locales/eu.yml +1 -0
  28. data/lib/locales/fa.yml +1 -0
  29. data/lib/locales/fi.yml +1 -0
  30. data/lib/locales/fr.yml +1 -0
  31. data/lib/locales/fy.yml +1 -0
  32. data/lib/locales/gd.yml +1 -0
  33. data/lib/locales/gl.yml +1 -0
  34. data/lib/locales/he.yml +1 -0
  35. data/lib/locales/hi.yml +1 -0
  36. data/lib/locales/hr.yml +1 -0
  37. data/lib/locales/hu.yml +1 -0
  38. data/lib/locales/hy.yml +1 -0
  39. data/lib/locales/id.yml +1 -0
  40. data/lib/locales/is.yml +1 -0
  41. data/lib/locales/it.yml +1 -0
  42. data/lib/locales/ja.yml +1 -0
  43. data/lib/locales/ka.yml +1 -0
  44. data/lib/locales/kk.yml +1 -0
  45. data/lib/locales/km.yml +1 -0
  46. data/lib/locales/kn.yml +1 -0
  47. data/lib/locales/ko.yml +1 -0
  48. data/lib/locales/lb.yml +1 -0
  49. data/lib/locales/lo.yml +1 -0
  50. data/lib/locales/lt.yml +1 -0
  51. data/lib/locales/lv.yml +1 -0
  52. data/lib/locales/mg.yml +1 -0
  53. data/lib/locales/mk.yml +1 -0
  54. data/lib/locales/ml.yml +1 -0
  55. data/lib/locales/mn.yml +1 -0
  56. data/lib/locales/mr-IN.yml +1 -0
  57. data/lib/locales/ms.yml +1 -0
  58. data/lib/locales/nb.yml +1 -0
  59. data/lib/locales/ne.yml +1 -0
  60. data/lib/locales/nl.yml +1 -0
  61. data/lib/locales/nn.yml +1 -0
  62. data/lib/locales/oc.yml +1 -0
  63. data/lib/locales/or.yml +1 -0
  64. data/lib/locales/pa.yml +1 -0
  65. data/lib/locales/pl.yml +1 -0
  66. data/lib/locales/pt.yml +1 -0
  67. data/lib/locales/rm.yml +1 -0
  68. data/lib/locales/ro.yml +1 -0
  69. data/lib/locales/ru.yml +1 -0
  70. data/lib/locales/sc.yml +1 -0
  71. data/lib/locales/sk.yml +1 -0
  72. data/lib/locales/sl.yml +1 -0
  73. data/lib/locales/sq.yml +1 -0
  74. data/lib/locales/sr.yml +1 -0
  75. data/lib/locales/st.yml +1 -0
  76. data/lib/locales/sv.yml +1 -0
  77. data/lib/locales/sw.yml +1 -0
  78. data/lib/locales/ta.yml +1 -0
  79. data/lib/locales/te.yml +1 -0
  80. data/lib/locales/th.yml +1 -0
  81. data/lib/locales/tl.yml +1 -0
  82. data/lib/locales/tr.yml +1 -0
  83. data/lib/locales/tt.yml +1 -0
  84. data/lib/locales/ug.yml +1 -0
  85. data/lib/locales/uk.yml +1 -0
  86. data/lib/locales/ur.yml +1 -0
  87. data/lib/locales/uz.yml +1 -0
  88. data/lib/locales/vi.yml +1 -0
  89. data/lib/locales/wo.yml +1 -0
  90. data/lib/locales/zh-CN.yml +1 -0
  91. data/lib/locales/zh-HK.yml +1 -0
  92. data/lib/locales/zh-TW.yml +1 -0
  93. data/lib/locales/zh-YUE.yml +1 -0
  94. data/mkdocs.yml +3 -0
  95. metadata +2 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 620c2c00dd483c6a4122c7b5acbbe6cf7a07d22260d0331d6f1d54b571ef7648
4
- data.tar.gz: aff47b340a77b052bc4cd2e201068044a443c1d8f4609163fa45025bdba25d00
3
+ metadata.gz: f23ba43366877a7e368b02f036bd98212c53ee1d52ae47c09e4d689ac305651e
4
+ data.tar.gz: 4b4e778baa84ae14274c8313464c979fb1be9c9d0651f45ca0483bc7f530a3c2
5
5
  SHA512:
6
- metadata.gz: a8f6fec277ff0198937013c25a1a1c753d4cf5100ff4920c834dc92fba8df7d2adc1ef3fbcff91c999f1af8c4676c3e8702c71a29a3402efcf36d4a0236163ba
7
- data.tar.gz: 2233517633c8d9afaafb7a44878b6b3fe0939dabcbe647ceafd9e7ca04450ee1e5e9f6b6f5adb2de58c305b0c2c0940e74ee2d7290f0eb202bda429d76b66992
6
+ metadata.gz: e1ea9eeebd2d84da3c8d0813dbf8739f8776adc0fb749ee9309f63bff258026b4ec9a8f53e32bca6c8a806ae135a617773709ff41d9b52fd3def07f914b2199d
7
+ data.tar.gz: 1dc6797d0e13aa08f900464c731f81cc5fd15672094c9ce3f02d0487d99395ce219b21ad7a9e95aa1d833b3dd36a9394a156fec503cd417109e3e08d33e41449
data/CHANGELOG.md CHANGED
@@ -6,6 +6,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.15.0] - 2025-01-21
10
+
11
+ ### Added
12
+ - Add attribute `Absence` validator
13
+ - Add attribute `:description` option
14
+
15
+ ## [1.14.0] - 2025-01-09
16
+
9
17
  ### Added
10
18
  - Add Ruby 4.0 compatibility
11
19
  - Add `Context#clear!` method to remove all context data
data/README.md CHANGED
@@ -6,7 +6,14 @@
6
6
 
7
7
  Build business logic that’s powerful, predictable, and maintainable.
8
8
 
9
- [Documentation](https://drexed.github.io/cmdx) · [Changelog](./CHANGELOG.md) · [Report Bug](https://github.com/drexed/cmdx/issues) · [Request Feature](https://github.com/drexed/cmdx/issues) · [LLM.md](https://raw.githubusercontent.com/drexed/cmdx/refs/heads/main/LLM.md)
9
+ [Home](https://drexed.github.io/cmdx) ·
10
+ [Documentation](https://drexed.github.io/cmdx/getting_started) ·
11
+ [Blog](https://drexed.github.io/cmdx/blog) ·
12
+ [Changelog](./CHANGELOG.md) ·
13
+ [Report Bug](https://github.com/drexed/cmdx/issues) ·
14
+ [Request Feature](https://github.com/drexed/cmdx/issues) ·
15
+ [llms.txt](https://drexed.github.io/cmdx/llms.txt) ·
16
+ [llms-full.txt](https://drexed.github.io/cmdx/llms-full.txt)
10
17
 
11
18
  <img alt="Version" src="https://img.shields.io/gem/v/cmdx">
12
19
  <img alt="Build" src="https://github.com/drexed/cmdx/actions/workflows/ci.yml/badge.svg">
@@ -72,6 +72,16 @@ module CMDx
72
72
  # @rbs @types: Array[Class]
73
73
  attr_reader :types
74
74
 
75
+ # Returns the description of the attribute.
76
+ #
77
+ # @return [String] The description of the attribute
78
+ #
79
+ # @example
80
+ # attribute.description # => "The user's name"
81
+ #
82
+ # @rbs @description: String
83
+ attr_reader :description
84
+
75
85
  # Creates a new attribute with the specified name and configuration.
76
86
  #
77
87
  # @param name [Symbol, String] The name of the attribute
@@ -79,6 +89,7 @@ module CMDx
79
89
  # @option options [Attribute] :parent The parent attribute for nested structures
80
90
  # @option options [Boolean] :required Whether the attribute is required (default: false)
81
91
  # @option options [Array<Class>, Class] :types The expected type(s) for the attribute value
92
+ # @option options [String] :description The description of the attribute
82
93
  # @option options [Symbol, String, Proc] :source The source of the attribute value
83
94
  # @option options [Symbol, String] :as The method name to use for this attribute
84
95
  # @option options [Symbol, String, Boolean] :prefix The prefix to add to the method name
@@ -98,6 +109,7 @@ module CMDx
98
109
  @parent = options.delete(:parent)
99
110
  @required = options.delete(:required) || false
100
111
  @types = Array(options.delete(:types) || options.delete(:type))
112
+ @description = options.delete(:description) || options.delete(:desc)
101
113
 
102
114
  @name = name.to_sym
103
115
  @options = options
@@ -238,13 +250,22 @@ module CMDx
238
250
  # @return [Hash] A hash representation of the attribute
239
251
  #
240
252
  # @example
241
- # attribute.to_h # => { name: :user_id, method_name: :user_id, required: true, types: [:integer], options: {}, children: [] }
253
+ # attribute.to_h # => {
254
+ # name: :user_id,
255
+ # method_name: :current_user_id,
256
+ # description: "The user's name",
257
+ # required: true,
258
+ # types: [:integer],
259
+ # options: {},
260
+ # children: []
261
+ # }
242
262
  #
243
263
  # @rbs () -> Hash[Symbol, untyped]
244
264
  def to_h
245
265
  {
246
266
  name: name,
247
267
  method_name: method_name,
268
+ description: description,
248
269
  required: required?,
249
270
  types: types,
250
271
  options: options.except(:if, :unless),
@@ -29,6 +29,7 @@ module CMDx
29
29
  # @rbs (?Hash[Symbol, Class]? registry) -> void
30
30
  def initialize(registry = nil)
31
31
  @registry = registry || {
32
+ absence: Validators::Absence,
32
33
  exclusion: Validators::Exclusion,
33
34
  format: Validators::Format,
34
35
  inclusion: Validators::Inclusion,
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CMDx
4
+ module Validators
5
+ # Validates that a value is absent or empty
6
+ #
7
+ # This validator ensures that the given value is nil, empty, or consists only of whitespace.
8
+ # It handles different value types appropriately:
9
+ # - Strings: checks for absence of non-whitespace characters
10
+ # - Collections: checks for empty collections
11
+ # - Other objects: checks for nil values
12
+ module Absence
13
+
14
+ extend self
15
+
16
+ # Validates that a value is absent or empty
17
+ #
18
+ # @param value [Object] The value to validate for absence
19
+ # @param options [Hash] Validation configuration options
20
+ # @option options [String] :message Custom error message
21
+ #
22
+ # @return [nil] Returns nil if validation passes
23
+ #
24
+ # @raise [ValidationError] When the value is present, not empty, or contains non-whitespace characters
25
+ #
26
+ # @example Validate string absence
27
+ # Absence.call("")
28
+ # # => nil (validation passes)
29
+ # @example Validate non-empty string
30
+ # Absence.call("hello")
31
+ # # => raises ValidationError
32
+ # @example Validate array absence
33
+ # Absence.call([])
34
+ # # => nil (validation passes)
35
+ # @example Validate non-empty array
36
+ # Absence.call([1, 2, 3])
37
+ # # => raises ValidationError
38
+ # @example Validate with custom message
39
+ # Absence.call("hello", message: "Value must be empty")
40
+ # # => raises ValidationError with custom message
41
+ #
42
+ # @rbs (untyped value, ?Hash[Symbol, untyped] options) -> nil
43
+ def call(value, options = {})
44
+ match =
45
+ if value.is_a?(String)
46
+ /\S/.match?(value)
47
+ elsif value.respond_to?(:empty?)
48
+ !value.empty?
49
+ else
50
+ !value.nil?
51
+ end
52
+
53
+ return unless match
54
+
55
+ message = options[:message] if options.is_a?(Hash)
56
+ raise ValidationError, message || Locale.t("cmdx.validators.absence")
57
+ end
58
+
59
+ end
60
+ end
61
+ end
data/lib/cmdx/version.rb CHANGED
@@ -5,6 +5,6 @@ module CMDx
5
5
  # @return [String] the version of the CMDx gem
6
6
  #
7
7
  # @rbs return: String
8
- VERSION = "1.14.0"
8
+ VERSION = "1.15.0"
9
9
 
10
10
  end
data/lib/locales/af.yml CHANGED
@@ -26,6 +26,7 @@ af:
26
26
  symbol: "simbool"
27
27
  time: "tyd"
28
28
  validators:
29
+ absence: "moet leeg wees"
29
30
  exclusion:
30
31
  of: "moet nie een van wees nie: %{values}"
31
32
  within: "moet nie binne %{min} en %{max} wees nie"
data/lib/locales/ar.yml CHANGED
@@ -26,6 +26,7 @@ ar:
26
26
  symbol: "رمز"
27
27
  time: "الوقت"
28
28
  validators:
29
+ absence: "يجب أن يكون فارغاً"
29
30
  exclusion:
30
31
  of: "يجب ألا يكون واحداً من: %{values}"
31
32
  within: "يجب ألا يكون بين %{min} و %{max}"
data/lib/locales/az.yml CHANGED
@@ -26,6 +26,7 @@ az:
26
26
  symbol: "simvol"
27
27
  time: "vaxt"
28
28
  validators:
29
+ absence: "boş olmalıdır"
29
30
  exclusion:
30
31
  of: "aşağıdakılardan biri ola bilməz: %{values}"
31
32
  within: "%{min} və %{max} arasında ola bilməz"
data/lib/locales/be.yml CHANGED
@@ -26,6 +26,7 @@ be:
26
26
  symbol: "сімвал"
27
27
  time: "час"
28
28
  validators:
29
+ absence: "павінна быць пустым"
29
30
  exclusion:
30
31
  of: "не можа быць адным з: %{values}"
31
32
  within: "не можа быць паміж %{min} і %{max}"
data/lib/locales/bg.yml CHANGED
@@ -26,6 +26,7 @@ bg:
26
26
  symbol: "символ"
27
27
  time: "час"
28
28
  validators:
29
+ absence: "трябва да бъде празно"
29
30
  exclusion:
30
31
  of: "не може да бъде един от: %{values}"
31
32
  within: "не може да бъде между %{min} и %{max}"
data/lib/locales/bn.yml CHANGED
@@ -26,6 +26,7 @@ bn:
26
26
  symbol: "প্রতীক"
27
27
  time: "সময়"
28
28
  validators:
29
+ absence: "খালি হতে হবে"
29
30
  exclusion:
30
31
  of: "নিম্নলিখিতগুলির মধ্যে একটি হতে পারবে না: %{values}"
31
32
  within: "%{min} এবং %{max} এর মধ্যে থাকতে পারবে না"
data/lib/locales/bs.yml CHANGED
@@ -26,6 +26,7 @@ bs:
26
26
  symbol: "simbol"
27
27
  time: "vrijeme"
28
28
  validators:
29
+ absence: "mora biti prazno"
29
30
  exclusion:
30
31
  of: "ne smije biti jedan od: %{values}"
31
32
  within: "ne smije biti između %{min} i %{max}"
data/lib/locales/ca.yml CHANGED
@@ -26,6 +26,7 @@ ca:
26
26
  symbol: "símbol"
27
27
  time: "temps"
28
28
  validators:
29
+ absence: "ha d'estar buit"
29
30
  exclusion:
30
31
  of: "no ha de ser un de: %{values}"
31
32
  within: "no ha d'estar entre %{min} i %{max}"
data/lib/locales/cnr.yml CHANGED
@@ -26,6 +26,7 @@ cnr:
26
26
  symbol: "simbol"
27
27
  time: "vrijeme"
28
28
  validators:
29
+ absence: "mora biti prazan"
29
30
  exclusion:
30
31
  of: "ne smije biti jedan od: %{values}"
31
32
  within: "ne smije biti između %{min} i %{max}"
data/lib/locales/cs.yml CHANGED
@@ -26,6 +26,7 @@ cs:
26
26
  symbol: "symbol"
27
27
  time: "čas"
28
28
  validators:
29
+ absence: "musí být prázdné"
29
30
  exclusion:
30
31
  of: "nesmí být jedním z: %{values}"
31
32
  within: "nesmí být mezi %{min} a %{max}"
data/lib/locales/cy.yml CHANGED
@@ -26,6 +26,7 @@ cy:
26
26
  symbol: "symbol"
27
27
  time: "amser"
28
28
  validators:
29
+ absence: "rhaid iddo fod yn wag"
29
30
  exclusion:
30
31
  of: "ni all fod yn un o: %{values}"
31
32
  within: "ni all fod rhwng %{min} a %{max}"
data/lib/locales/da.yml CHANGED
@@ -26,6 +26,7 @@ da:
26
26
  symbol: "symbol"
27
27
  time: "tid"
28
28
  validators:
29
+ absence: "skal være tom"
29
30
  exclusion:
30
31
  of: "må ikke være en af: %{values}"
31
32
  within: "må ikke være mellem %{min} og %{max}"
data/lib/locales/de.yml CHANGED
@@ -26,6 +26,7 @@ de:
26
26
  symbol: "Symbol"
27
27
  time: "Zeit"
28
28
  validators:
29
+ absence: "muss leer sein"
29
30
  exclusion:
30
31
  of: "darf nicht einer von sein: %{values}"
31
32
  within: "darf nicht zwischen %{min} und %{max} liegen"
data/lib/locales/dz.yml CHANGED
@@ -26,6 +26,7 @@ dz:
26
26
  symbol: "མཚན་མ།"
27
27
  time: "དུས་ཚིགས།"
28
28
  validators:
29
+ absence: "སྟོང་པོ་ཆོག་པ་ཆེད་དགོས།"
29
30
  exclusion:
30
31
  of: "འདི་ཚོའི་ནང་ནས་གཅིག་མི་ཆོག %{values}"
31
32
  within: "%{min} དང་ %{max} ཡབ་ཡུམ་ནས་མི་ཆོག"
data/lib/locales/el.yml CHANGED
@@ -26,6 +26,7 @@ el:
26
26
  symbol: "σύμβολο"
27
27
  time: "ώρα"
28
28
  validators:
29
+ absence: "πρέπει να είναι κενό"
29
30
  exclusion:
30
31
  of: "δεν πρέπει να είναι ένα από: %{values}"
31
32
  within: "δεν πρέπει να είναι μεταξύ %{min} και %{max}"
data/lib/locales/en.yml CHANGED
@@ -26,6 +26,7 @@ en:
26
26
  symbol: "symbol"
27
27
  time: "time"
28
28
  validators:
29
+ absence: "must be empty"
29
30
  exclusion:
30
31
  of: "must not be one of: %{values}"
31
32
  within: "must not be within %{min} and %{max}"
data/lib/locales/eo.yml CHANGED
@@ -26,6 +26,7 @@ eo:
26
26
  symbol: "simbolo"
27
27
  time: "tempo"
28
28
  validators:
29
+ absence: "devas esti malplena"
29
30
  exclusion:
30
31
  of: "ne devas esti unu el: %{values}"
31
32
  within: "ne devas esti inter %{min} kaj %{max}"
data/lib/locales/es.yml CHANGED
@@ -26,6 +26,7 @@ es:
26
26
  symbol: "símbolo"
27
27
  time: "tiempo"
28
28
  validators:
29
+ absence: "debe estar vacío"
29
30
  exclusion:
30
31
  of: "no debe ser uno de: %{values}"
31
32
  within: "no debe estar dentro de %{min} y %{max}"
data/lib/locales/et.yml CHANGED
@@ -26,6 +26,7 @@ et:
26
26
  symbol: "sümbol"
27
27
  time: "aeg"
28
28
  validators:
29
+ absence: "peab olema tühi"
29
30
  exclusion:
30
31
  of: "ei tohi olla üks järgmistest: %{values}"
31
32
  within: "ei tohi olla %{min} ja %{max} vahel"
data/lib/locales/eu.yml CHANGED
@@ -26,6 +26,7 @@ eu:
26
26
  symbol: "ikurra"
27
27
  time: "ordua"
28
28
  validators:
29
+ absence: "hutsik izan behar du"
29
30
  exclusion:
30
31
  of: "ezin da honetako bat izan: %{values}"
31
32
  within: "ezin da %{min} eta %{max} artean izan"
data/lib/locales/fa.yml CHANGED
@@ -26,6 +26,7 @@ fa:
26
26
  symbol: "نماد"
27
27
  time: "زمان"
28
28
  validators:
29
+ absence: "باید خالی باشد"
29
30
  exclusion:
30
31
  of: "نباید یکی از اینها باشد: %{values}"
31
32
  within: "نباید بین %{min} و %{max} باشد"
data/lib/locales/fi.yml CHANGED
@@ -26,6 +26,7 @@ fi:
26
26
  symbol: "symboli"
27
27
  time: "aika"
28
28
  validators:
29
+ absence: "täytyy olla tyhjä"
29
30
  exclusion:
30
31
  of: "ei saa olla yksi seuraavista: %{values}"
31
32
  within: "ei saa olla välillä %{min} ja %{max}"
data/lib/locales/fr.yml CHANGED
@@ -26,6 +26,7 @@ fr:
26
26
  symbol: "symbole"
27
27
  time: "heure"
28
28
  validators:
29
+ absence: "doit être vide"
29
30
  exclusion:
30
31
  of: "ne doit pas être l'un de : %{values}"
31
32
  within: "ne doit pas être dans %{min} et %{max}"
data/lib/locales/fy.yml CHANGED
@@ -26,6 +26,7 @@ fy:
26
26
  symbol: "symboal"
27
27
  time: "tiid"
28
28
  validators:
29
+ absence: "moat leech wêze"
29
30
  exclusion:
30
31
  of: "moat net ien fan wêze: %{values}"
31
32
  within: "moat net binnen %{min} en %{max} wêze"
data/lib/locales/gd.yml CHANGED
@@ -26,6 +26,7 @@ gd:
26
26
  symbol: "samhla"
27
27
  time: "àm"
28
28
  validators:
29
+ absence: "feumaidh e a bhith falamh"
29
30
  exclusion:
30
31
  of: "chan fhaod a bhith aon de: %{values}"
31
32
  within: "chan fhaod a bhith taobh a-staigh %{min} agus %{max}"
data/lib/locales/gl.yml CHANGED
@@ -26,6 +26,7 @@ gl:
26
26
  symbol: "símbolo"
27
27
  time: "tempo"
28
28
  validators:
29
+ absence: "debe estar baleiro"
29
30
  exclusion:
30
31
  of: "non debe ser un de: %{values}"
31
32
  within: "non debe estar entre %{min} e %{max}"
data/lib/locales/he.yml CHANGED
@@ -26,6 +26,7 @@ he:
26
26
  symbol: "סמל"
27
27
  time: "זמן"
28
28
  validators:
29
+ absence: "חייב להיות ריק"
29
30
  exclusion:
30
31
  of: "לא יכול להיות אחד מ: %{values}"
31
32
  within: "לא יכול להיות בין %{min} ו-%{max}"
data/lib/locales/hi.yml CHANGED
@@ -26,6 +26,7 @@ hi:
26
26
  symbol: "प्रतीक"
27
27
  time: "समय"
28
28
  validators:
29
+ absence: "खाली होना चाहिए"
29
30
  exclusion:
30
31
  of: "निम्नलिखित में से कोई नहीं होना चाहिए: %{values}"
31
32
  within: "%{min} और %{max} के बीच नहीं होना चाहिए"
data/lib/locales/hr.yml CHANGED
@@ -26,6 +26,7 @@ hr:
26
26
  symbol: "simbol"
27
27
  time: "vrijeme"
28
28
  validators:
29
+ absence: "mora biti prazno"
29
30
  exclusion:
30
31
  of: "ne smije biti jedan od: %{values}"
31
32
  within: "ne smije biti između %{min} i %{max}"
data/lib/locales/hu.yml CHANGED
@@ -26,6 +26,7 @@ hu:
26
26
  symbol: "szimbólum"
27
27
  time: "idő"
28
28
  validators:
29
+ absence: "üresnek kell lennie"
29
30
  exclusion:
30
31
  of: "nem lehet egyike a következőknek: %{values}"
31
32
  within: "nem lehet %{min} és %{max} között"
data/lib/locales/hy.yml CHANGED
@@ -26,6 +26,7 @@ hy:
26
26
  symbol: "սիմվոլ"
27
27
  time: "ժամանակ"
28
28
  validators:
29
+ absence: "պdelays delays delays delays delays է delays delaysdelays delays delays delays"
29
30
  exclusion:
30
31
  of: "չի կարող լինել հետևյալներից մեկը: %{values}"
31
32
  within: "չի կարող լինել %{min} և %{max} միջև"
data/lib/locales/id.yml CHANGED
@@ -26,6 +26,7 @@ id:
26
26
  symbol: "simbol"
27
27
  time: "waktu"
28
28
  validators:
29
+ absence: "harus kosong"
29
30
  exclusion:
30
31
  of: "tidak boleh salah satu dari: %{values}"
31
32
  within: "tidak boleh di antara %{min} dan %{max}"
data/lib/locales/is.yml CHANGED
@@ -26,6 +26,7 @@ is:
26
26
  symbol: "tákn"
27
27
  time: "tími"
28
28
  validators:
29
+ absence: "verður að vera tómt"
29
30
  exclusion:
30
31
  of: "má ekki vera einn af: %{values}"
31
32
  within: "má ekki vera á milli %{min} og %{max}"
data/lib/locales/it.yml CHANGED
@@ -26,6 +26,7 @@ it:
26
26
  symbol: "simbolo"
27
27
  time: "tempo"
28
28
  validators:
29
+ absence: "deve essere vuoto"
29
30
  exclusion:
30
31
  of: "non deve essere uno di: %{values}"
31
32
  within: "non deve essere tra %{min} e %{max}"
data/lib/locales/ja.yml CHANGED
@@ -26,6 +26,7 @@ ja:
26
26
  symbol: "シンボル"
27
27
  time: "時刻"
28
28
  validators:
29
+ absence: "空でなければなりません"
29
30
  exclusion:
30
31
  of: "次のいずれかであってはなりません: %{values}"
31
32
  within: "%{min} と %{max} の間であってはなりません"
data/lib/locales/ka.yml CHANGED
@@ -26,6 +26,7 @@ ka:
26
26
  symbol: "სიმბოლო"
27
27
  time: "დრო"
28
28
  validators:
29
+ absence: "უნდა იყოს ცარიელი"
29
30
  exclusion:
30
31
  of: "არ უნდა იყოს ერთ-ერთი: %{values}"
31
32
  within: "არ უნდა იყოს %{min} და %{max} შორის"
data/lib/locales/kk.yml CHANGED
@@ -26,6 +26,7 @@ kk:
26
26
  symbol: "символ"
27
27
  time: "уақыт"
28
28
  validators:
29
+ absence: "бос болуы керек"
29
30
  exclusion:
30
31
  of: "бұлардың бірі болмасын: %{values}"
31
32
  within: "%{min} және %{max} арасында болмасын"
data/lib/locales/km.yml CHANGED
@@ -26,6 +26,7 @@ km:
26
26
  symbol: "និមិត្តសញ្ញា"
27
27
  time: "ពេលវេលា"
28
28
  validators:
29
+ absence: "ត្រូវតែទទេរ"
29
30
  exclusion:
30
31
  of: "មិនត្រូវតែជាមួយក្នុងចំណោម: %{values} ទេ"
31
32
  within: "មិនត្រូវតែនៅចន្លោះ %{min} និង %{max} ទេ"
data/lib/locales/kn.yml CHANGED
@@ -26,6 +26,7 @@ kn:
26
26
  symbol: "ಚಿಹ್ನೆ"
27
27
  time: "ಸಮಯ"
28
28
  validators:
29
+ absence: "ಖಾಲಿಯಾಗಿರಬೇಕು"
29
30
  exclusion:
30
31
  of: "ಈ ಕೆಳಗಿನವುಗಳಲ್ಲಿ ಒಂದಾಗಿರಬಾರದು: %{values}"
31
32
  within: "%{min} ಮತ್ತು %{max} ನಡುವೆ ಇರಬಾರದು"
data/lib/locales/ko.yml CHANGED
@@ -26,6 +26,7 @@ ko:
26
26
  symbol: "심볼"
27
27
  time: "시간"
28
28
  validators:
29
+ absence: "비어있어야 합니다"
29
30
  exclusion:
30
31
  of: "다음 중 하나가 아니어야 합니다: %{values}"
31
32
  within: "%{min}과 %{max} 사이에 있으면 안 됩니다"
data/lib/locales/lb.yml CHANGED
@@ -26,6 +26,7 @@ lb:
26
26
  symbol: "Symbol"
27
27
  time: "Zäit"
28
28
  validators:
29
+ absence: "muss eidel sinn"
29
30
  exclusion:
30
31
  of: "däerf net ee vun dësen sinn: %{values}"
31
32
  within: "däerf net tëscht %{min} an %{max} sinn"
data/lib/locales/lo.yml CHANGED
@@ -26,6 +26,7 @@ lo:
26
26
  symbol: "ສັນຍະລັກ"
27
27
  time: "ເວລາ"
28
28
  validators:
29
+ absence: "ຕ້ອງເປັນຄ່າວ່າງ"
29
30
  exclusion:
30
31
  of: "ບໍ່ຕ້ອງເປັນອັນໃດອັນໜຶ່ງໃນ: %{values}"
31
32
  within: "ບໍ່ຕ້ອງຢູ່ໃນຊ່ວງ %{min} ແລະ %{max}"
data/lib/locales/lt.yml CHANGED
@@ -26,6 +26,7 @@ lt:
26
26
  symbol: "simbolis"
27
27
  time: "laikas"
28
28
  validators:
29
+ absence: "turi būti tuščias"
29
30
  exclusion:
30
31
  of: "neturi būti vienas iš: %{values}"
31
32
  within: "neturi būti tarp %{min} ir %{max}"
data/lib/locales/lv.yml CHANGED
@@ -26,6 +26,7 @@ lv:
26
26
  symbol: "simbols"
27
27
  time: "laiks"
28
28
  validators:
29
+ absence: "jābūt tukšam"
29
30
  exclusion:
30
31
  of: "nedrīkst būt viens no: %{values}"
31
32
  within: "nedrīkst būt starp %{min} un %{max}"
data/lib/locales/mg.yml CHANGED
@@ -26,6 +26,7 @@ mg:
26
26
  symbol: "mariky"
27
27
  time: "ora"
28
28
  validators:
29
+ absence: "tsy maintsy ho banga"
29
30
  exclusion:
30
31
  of: "tsy maintsy ho iray amin'ireo: %{values}"
31
32
  within: "tsy maintsy ho eo anelanelan'ny %{min} sy %{max}"
data/lib/locales/mk.yml CHANGED
@@ -26,6 +26,7 @@ mk:
26
26
  symbol: "симбол"
27
27
  time: "време"
28
28
  validators:
29
+ absence: "мора да биде празно"
29
30
  exclusion:
30
31
  of: "не смее да биде еден од: %{values}"
31
32
  within: "не смее да биде помеѓу %{min} и %{max}"
data/lib/locales/ml.yml CHANGED
@@ -26,6 +26,7 @@ ml:
26
26
  symbol: "ചിഹ്നം"
27
27
  time: "സമയം"
28
28
  validators:
29
+ absence: "ശൂന്യമായിരിക്കണം"
29
30
  exclusion:
30
31
  of: "ഇനിപ്പറയുന്നവയിൽ ഒന്നാകാൻ പാടില്ല: %{values}"
31
32
  within: "%{min} ഉം %{max} ഉം തമ്മിൽ ആകാൻ പാടില്ല"
data/lib/locales/mn.yml CHANGED
@@ -26,6 +26,7 @@ mn:
26
26
  symbol: "тэмдэг"
27
27
  time: "цаг"
28
28
  validators:
29
+ absence: "хоосон байх ёстой"
29
30
  exclusion:
30
31
  of: "дараах зүйлсийн аль нэг байж болохгүй: %{values}"
31
32
  within: "%{min} ба %{max} хооронд байж болохгүй"
@@ -26,6 +26,7 @@ mr-IN:
26
26
  symbol: "चिन्ह"
27
27
  time: "वेळ"
28
28
  validators:
29
+ absence: "रिक्त असणे आवश्यक आहे"
29
30
  exclusion:
30
31
  of: "खालीलपैकी एक असू शकत नाही: %{values}"
31
32
  within: "%{min} आणि %{max} दरम्यान असू शकत नाही"
data/lib/locales/ms.yml CHANGED
@@ -26,6 +26,7 @@ ms:
26
26
  symbol: "simbol"
27
27
  time: "masa"
28
28
  validators:
29
+ absence: "mesti kosong"
29
30
  exclusion:
30
31
  of: "tidak boleh menjadi salah satu daripada: %{values}"
31
32
  within: "tidak boleh berada di antara %{min} dan %{max}"
data/lib/locales/nb.yml CHANGED
@@ -26,6 +26,7 @@ nb:
26
26
  symbol: "symbol"
27
27
  time: "tid"
28
28
  validators:
29
+ absence: "må være tom"
29
30
  exclusion:
30
31
  of: "må ikke være en av: %{values}"
31
32
  within: "må ikke være mellom %{min} og %{max}"
data/lib/locales/ne.yml CHANGED
@@ -26,6 +26,7 @@ ne:
26
26
  symbol: "प्रतीक"
27
27
  time: "समय"
28
28
  validators:
29
+ absence: "खाली हुनुपर्छ"
29
30
  exclusion:
30
31
  of: "निम्न मध्ये एउटा हुन सक्दैन: %{values}"
31
32
  within: "%{min} र %{max} बीचमा हुन सक्दैन"
data/lib/locales/nl.yml CHANGED
@@ -26,6 +26,7 @@ nl:
26
26
  symbol: "symbool"
27
27
  time: "tijd"
28
28
  validators:
29
+ absence: "moet leeg zijn"
29
30
  exclusion:
30
31
  of: "mag niet een van zijn: %{values}"
31
32
  within: "mag niet tussen %{min} en %{max} liggen"
data/lib/locales/nn.yml CHANGED
@@ -26,6 +26,7 @@ nn:
26
26
  symbol: "symbol"
27
27
  time: "tid"
28
28
  validators:
29
+ absence: "må vere tom"
29
30
  exclusion:
30
31
  of: "må ikkje vere ein av: %{values}"
31
32
  within: "må ikkje vere innanfor %{min} og %{max}"
data/lib/locales/oc.yml CHANGED
@@ -26,6 +26,7 @@ oc:
26
26
  symbol: "simbol"
27
27
  time: "ora"
28
28
  validators:
29
+ absence: "deu èsser void"
29
30
  exclusion:
30
31
  of: "deu pas èsser un de: %{values}"
31
32
  within: "deu pas èsser entre %{min} e %{max}"
data/lib/locales/or.yml CHANGED
@@ -26,6 +26,7 @@ or:
26
26
  symbol: "ପ୍ରତୀକ"
27
27
  time: "ସମୟ"
28
28
  validators:
29
+ absence: "ଖାଲି ହୋଇଥିବା ଆବଶ୍ୟକ"
29
30
  exclusion:
30
31
  of: "ନିମ୍ନଲିଖିତ ମଧ୍ୟରୁ ଗୋଟିଏ ହୋଇପାରିବ ନାହିଁ: %{values}"
31
32
  within: "%{min} ଏବଂ %{max} ମଧ୍ୟରେ ହୋଇପାରିବ ନାହିଁ"
data/lib/locales/pa.yml CHANGED
@@ -26,6 +26,7 @@ pa:
26
26
  symbol: "ਚਿੰਨ੍ਹ"
27
27
  time: "ਸਮਾਂ"
28
28
  validators:
29
+ absence: "ਖਾਲੀ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ"
29
30
  exclusion:
30
31
  of: "ਹੇਠਾਂ ਦਿੱਤੇ ਗਏ ਵਿੱਚੋਂ ਕੋਈ ਇੱਕ ਨਹੀਂ ਹੋ ਸਕਦਾ: %{values}"
31
32
  within: "%{min} ਅਤੇ %{max} ਦੇ ਵਿਚਕਾਰ ਨਹੀਂ ਹੋ ਸਕਦਾ"
data/lib/locales/pl.yml CHANGED
@@ -26,6 +26,7 @@ pl:
26
26
  symbol: "symbol"
27
27
  time: "czas"
28
28
  validators:
29
+ absence: "musi być puste"
29
30
  exclusion:
30
31
  of: "nie może być jednym z: %{values}"
31
32
  within: "nie może być między %{min} a %{max}"
data/lib/locales/pt.yml CHANGED
@@ -26,6 +26,7 @@ pt:
26
26
  symbol: "símbolo"
27
27
  time: "tempo"
28
28
  validators:
29
+ absence: "deve estar vazio"
29
30
  exclusion:
30
31
  of: "não deve ser um de: %{values}"
31
32
  within: "não deve estar entre %{min} e %{max}"
data/lib/locales/rm.yml CHANGED
@@ -26,6 +26,7 @@ rm:
26
26
  symbol: "simbol"
27
27
  time: "ura"
28
28
  validators:
29
+ absence: "stoscha esser vid"
29
30
  exclusion:
30
31
  of: "na dastga betg esser in da: %{values}"
31
32
  within: "na dastga betg esser tranter %{min} e %{max}"
data/lib/locales/ro.yml CHANGED
@@ -26,6 +26,7 @@ ro:
26
26
  symbol: "simbol"
27
27
  time: "timp"
28
28
  validators:
29
+ absence: "trebuie să fie gol"
29
30
  exclusion:
30
31
  of: "nu trebuie să fie unul din: %{values}"
31
32
  within: "nu trebuie să fie între %{min} și %{max}"
data/lib/locales/ru.yml CHANGED
@@ -26,6 +26,7 @@ ru:
26
26
  symbol: "символ"
27
27
  time: "время"
28
28
  validators:
29
+ absence: "должен быть пустым"
29
30
  exclusion:
30
31
  of: "не должен быть одним из: %{values}"
31
32
  within: "не должен быть между %{min} и %{max}"
data/lib/locales/sc.yml CHANGED
@@ -26,6 +26,7 @@ sc:
26
26
  symbol: "sìmbulu"
27
27
  time: "ora"
28
28
  validators:
29
+ absence: "deve èssere bòidu"
29
30
  exclusion:
30
31
  of: "non deve èssere unu de: %{values}"
31
32
  within: "non deve èssere intre %{min} e %{max}"
data/lib/locales/sk.yml CHANGED
@@ -26,6 +26,7 @@ sk:
26
26
  symbol: "symbol"
27
27
  time: "čas"
28
28
  validators:
29
+ absence: "musí byť prázdne"
29
30
  exclusion:
30
31
  of: "nesmie byť jedným z: %{values}"
31
32
  within: "nesmie byť medzi %{min} a %{max}"
data/lib/locales/sl.yml CHANGED
@@ -26,6 +26,7 @@ sl:
26
26
  symbol: "simbol"
27
27
  time: "čas"
28
28
  validators:
29
+ absence: "mora biti prazno"
29
30
  exclusion:
30
31
  of: "ne sme biti eden od: %{values}"
31
32
  within: "ne sme biti med %{min} in %{max}"
data/lib/locales/sq.yml CHANGED
@@ -26,6 +26,7 @@ sq:
26
26
  symbol: "simbol"
27
27
  time: "koha"
28
28
  validators:
29
+ absence: "duhet të jetë bosh"
29
30
  exclusion:
30
31
  of: "nuk duhet të jetë një nga: %{values}"
31
32
  within: "nuk duhet të jetë mes %{min} dhe %{max}"
data/lib/locales/sr.yml CHANGED
@@ -26,6 +26,7 @@ sr:
26
26
  symbol: "симбол"
27
27
  time: "време"
28
28
  validators:
29
+ absence: "мора бити празно"
29
30
  exclusion:
30
31
  of: "не сме бити један од: %{values}"
31
32
  within: "не сме бити између %{min} и %{max}"
data/lib/locales/st.yml CHANGED
@@ -26,6 +26,7 @@ st:
26
26
  symbol: "mokhoa"
27
27
  time: "nako"
28
28
  validators:
29
+ absence: "e tlameha ho ba e se na letho"
29
30
  exclusion:
30
31
  of: "ha e tlameha ho ba e mong oa: %{values}"
31
32
  within: "ha e tlameha ho ba pakeng tsa %{min} le %{max}"
data/lib/locales/sv.yml CHANGED
@@ -26,6 +26,7 @@ sv:
26
26
  symbol: "symbol"
27
27
  time: "tid"
28
28
  validators:
29
+ absence: "måste vara tom"
29
30
  exclusion:
30
31
  of: "får inte vara en av: %{values}"
31
32
  within: "får inte vara mellan %{min} och %{max}"
data/lib/locales/sw.yml CHANGED
@@ -26,6 +26,7 @@ sw:
26
26
  symbol: "ishara"
27
27
  time: "wakati"
28
28
  validators:
29
+ absence: "lazima iwe tupu"
29
30
  exclusion:
30
31
  of: "haipaswi kuwa moja ya: %{values}"
31
32
  within: "haipaswi kuwa kati ya %{min} na %{max}"
data/lib/locales/ta.yml CHANGED
@@ -26,6 +26,7 @@ ta:
26
26
  symbol: "குறியீடு"
27
27
  time: "நேரம்"
28
28
  validators:
29
+ absence: "வெறுமையாக இருக்க வேண்டும்"
29
30
  exclusion:
30
31
  of: "பின்வருவனவற்றில் ஒன்றாக இருக்கக்கூடாது: %{values}"
31
32
  within: "%{min} மற்றும் %{max} இடையே இருக்கக்கூடாது"
data/lib/locales/te.yml CHANGED
@@ -26,6 +26,7 @@ te:
26
26
  symbol: "చిహ్నం"
27
27
  time: "సమయం"
28
28
  validators:
29
+ absence: "ఖాళీగా ఉండాలి"
29
30
  exclusion:
30
31
  of: "ఈ క్రింది వాటిలో ఒకటి కాకూడదు: %{values}"
31
32
  within: "%{min} మరియు %{max} మధ్య ఉండకూడదు"
data/lib/locales/th.yml CHANGED
@@ -26,6 +26,7 @@ th:
26
26
  symbol: "สัญลักษณ์"
27
27
  time: "เวลา"
28
28
  validators:
29
+ absence: "ต้องเป็นค่าว่าง"
29
30
  exclusion:
30
31
  of: "ต้องไม่ใช่หนึ่งใน: %{values}"
31
32
  within: "ต้องไม่อยู่ระหว่าง %{min} และ %{max}"
data/lib/locales/tl.yml CHANGED
@@ -26,6 +26,7 @@ tl:
26
26
  symbol: "symbol"
27
27
  time: "oras"
28
28
  validators:
29
+ absence: "dapat na walang laman"
29
30
  exclusion:
30
31
  of: "hindi dapat na isa sa: %{values}"
31
32
  within: "hindi dapat na nasa pagitan ng %{min} at %{max}"
data/lib/locales/tr.yml CHANGED
@@ -26,6 +26,7 @@ tr:
26
26
  symbol: "sembol"
27
27
  time: "zaman"
28
28
  validators:
29
+ absence: "boş olmalıdır"
29
30
  exclusion:
30
31
  of: "şunlardan biri olmamalıdır: %{values}"
31
32
  within: "%{min} ve %{max} arasında olmamalıdır"
data/lib/locales/tt.yml CHANGED
@@ -26,6 +26,7 @@ tt:
26
26
  symbol: "символ"
27
27
  time: "вакыт"
28
28
  validators:
29
+ absence: "буш булырга тиеш"
29
30
  exclusion:
30
31
  of: "боларның берсе булмасын: %{values}"
31
32
  within: "%{min} һәм %{max} арасында булмасын"
data/lib/locales/ug.yml CHANGED
@@ -26,6 +26,7 @@ ug:
26
26
  symbol: "بەلگە"
27
27
  time: "ۋاقىت"
28
28
  validators:
29
+ absence: "بوش بولۇشى كېرەك"
29
30
  exclusion:
30
31
  of: "بۇلارنىڭ بىرى بولماسلىقى كېرەك: %{values}"
31
32
  within: "%{min} ۋە %{max} ئارىسىدا بولماسلىقى كېرەك"
data/lib/locales/uk.yml CHANGED
@@ -26,6 +26,7 @@ uk:
26
26
  symbol: "символ"
27
27
  time: "час"
28
28
  validators:
29
+ absence: "має бути порожнім"
29
30
  exclusion:
30
31
  of: "не може бути одним з: %{values}"
31
32
  within: "не може бути між %{min} та %{max}"
data/lib/locales/ur.yml CHANGED
@@ -26,6 +26,7 @@ ur:
26
26
  symbol: "علامت"
27
27
  time: "وقت"
28
28
  validators:
29
+ absence: "خالی ہونا ضروری ہے"
29
30
  exclusion:
30
31
  of: "ان میں سے کوئی ایک نہیں ہونا چاہیے: %{values}"
31
32
  within: "%{min} اور %{max} کے درمیان نہیں ہونا چاہیے"
data/lib/locales/uz.yml CHANGED
@@ -26,6 +26,7 @@ uz:
26
26
  symbol: "belgi"
27
27
  time: "vaqt"
28
28
  validators:
29
+ absence: "bo'sh bo'lishi kerak"
29
30
  exclusion:
30
31
  of: "bularning biri bo'lmasligi kerak: %{values}"
31
32
  within: "%{min} va %{max} oralig'ida bo'lmasligi kerak"
data/lib/locales/vi.yml CHANGED
@@ -26,6 +26,7 @@ vi:
26
26
  symbol: "ký hiệu"
27
27
  time: "thời gian"
28
28
  validators:
29
+ absence: "phải để trống"
29
30
  exclusion:
30
31
  of: "không được là một trong: %{values}"
31
32
  within: "không được nằm giữa %{min} và %{max}"
data/lib/locales/wo.yml CHANGED
@@ -26,6 +26,7 @@ wo:
26
26
  symbol: "simbol"
27
27
  time: "jamono"
28
28
  validators:
29
+ absence: "dafa war a nekk lu nekk"
29
30
  exclusion:
30
31
  of: "duñu war a nekk benn ci: %{values}"
31
32
  within: "duñu war a nekk ci digg %{min} ak %{max}"
@@ -26,6 +26,7 @@ zh-CN:
26
26
  symbol: "符号"
27
27
  time: "时间"
28
28
  validators:
29
+ absence: "必须为空"
29
30
  exclusion:
30
31
  of: "不能是以下之一: %{values}"
31
32
  within: "不能在 %{min} 和 %{max} 之间"
@@ -26,6 +26,7 @@ zh-HK:
26
26
  symbol: "符號"
27
27
  time: "時間"
28
28
  validators:
29
+ absence: "必須是空白"
29
30
  exclusion:
30
31
  of: "不可以是其中一個:%{values}"
31
32
  within: "不可以在 %{min} 和 %{max} 之間"
@@ -26,6 +26,7 @@ zh-TW:
26
26
  symbol: "符號"
27
27
  time: "時間"
28
28
  validators:
29
+ absence: "必須是空白"
29
30
  exclusion:
30
31
  of: "不可以是其中一個:%{values}"
31
32
  within: "不可以在 %{min} 和 %{max} 之間"
@@ -26,6 +26,7 @@ zh-YUE:
26
26
  symbol: "符號"
27
27
  time: "時間"
28
28
  validators:
29
+ absence: "必須係空白"
29
30
  exclusion:
30
31
  of: "唔可以係其中一個:%{values}"
31
32
  within: "唔可以喺 %{min} 同 %{max} 之間"
data/mkdocs.yml CHANGED
@@ -99,6 +99,7 @@ plugins:
99
99
  post_date_format: long
100
100
  post_url_format: "{slug}"
101
101
  archive_date_format: MMMM yyyy
102
+ draft_if_future_date: true
102
103
  categories_allowed:
103
104
  - Tutorials
104
105
  - Updates
@@ -142,6 +143,7 @@ plugins:
142
143
  - workflows.md: Composing multiple tasks into sequential pipelines with conditional execution
143
144
  More:
144
145
  - tips_and_tricks.md: Best practices, patterns, and techniques for maintainable CMDx applications
146
+ - comparison.md: Comparison with other command/service object frameworks
145
147
  Ecosystem:
146
148
  - cmdx-rspec: RSpec test matchers (https://github.com/drexed/cmdx-rspec)
147
149
 
@@ -180,6 +182,7 @@ nav:
180
182
  - Workflows: workflows.md
181
183
  - More:
182
184
  - Tips and Tricks: tips_and_tricks.md
185
+ - Comparison: comparison.md
183
186
  - References:
184
187
  - API Documentation: https://drexed.github.io/cmdx/api/index.html
185
188
  - llms.txt: https://drexed.github.io/cmdx/llms.txt
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cmdx
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.14.0
4
+ version: 1.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Gomez
@@ -279,6 +279,7 @@ files:
279
279
  - lib/cmdx/utils/condition.rb
280
280
  - lib/cmdx/utils/format.rb
281
281
  - lib/cmdx/validator_registry.rb
282
+ - lib/cmdx/validators/absence.rb
282
283
  - lib/cmdx/validators/exclusion.rb
283
284
  - lib/cmdx/validators/format.rb
284
285
  - lib/cmdx/validators/inclusion.rb