Module: Dry::Logic::Predicates::Methods
- Included in:
- Dry::Logic::Predicates
- Defined in:
- lib/dry/logic/predicates.rb
Instance Method Summary collapse
- #[](name) ⇒ Object
- #array?(input) ⇒ Boolean
- #attr?(name, input) ⇒ Boolean
- #bool?(input) ⇒ Boolean
- #bytesize?(size, input) ⇒ Boolean
- #case?(pattern, input) ⇒ Boolean
- #date?(input) ⇒ Boolean
- #date_time?(input) ⇒ Boolean
- #decimal?(input) ⇒ Boolean
- #empty?(input) ⇒ Boolean
- #eql?(left, right) ⇒ Boolean
- #even?(input) ⇒ Boolean
- #excluded_from?(list, input) ⇒ Boolean
- #excludes?(value, input) ⇒ Boolean
- #exclusion?(list, input) ⇒ Boolean
- #false?(value) ⇒ Boolean
- #filled?(input) ⇒ Boolean
- #float?(input) ⇒ Boolean
- #format?(regex, input) ⇒ Boolean
- #gt?(num, input) ⇒ Boolean
- #gteq?(num, input) ⇒ Boolean
- #hash?(input) ⇒ Boolean
- #included_in?(list, input) ⇒ Boolean
- #includes?(value, input) ⇒ Boolean
- #inclusion?(list, input) ⇒ Boolean
- #int?(input) ⇒ Boolean
- #is?(left, right) ⇒ Boolean
- #key?(name, input) ⇒ Boolean
- #lt?(num, input) ⇒ Boolean
- #lteq?(num, input) ⇒ Boolean
- #max_bytesize?(num, input) ⇒ Boolean
- #max_size?(num, input) ⇒ Boolean
- #min_bytesize?(num, input) ⇒ Boolean
- #min_size?(num, input) ⇒ Boolean
- #nil?(input) ⇒ Boolean (also: #none?)
- #not_eql?(left, right) ⇒ Boolean
- #number?(input) ⇒ Boolean
- #odd?(input) ⇒ Boolean
- #predicate(name, &block) ⇒ Object
- #respond_to?(method, input) ⇒ Boolean
- #size?(size, input) ⇒ Boolean
- #str?(input) ⇒ Boolean
- #time?(input) ⇒ Boolean
- #true?(value) ⇒ Boolean
- #type?(type, input) ⇒ Boolean
- #uuid_v4?(input) ⇒ Boolean
Instance Method Details
#[](name) ⇒ Object
11 12 13 |
# File 'lib/dry/logic/predicates.rb', line 11 def [](name) method(name) end |
#array?(input) ⇒ Boolean
87 88 89 |
# File 'lib/dry/logic/predicates.rb', line 87 def array?(input) input.is_a?(Array) end |
#attr?(name, input) ⇒ Boolean
28 29 30 |
# File 'lib/dry/logic/predicates.rb', line 28 def attr?(name, input) input.respond_to?(name) end |
#bool?(input) ⇒ Boolean
45 46 47 |
# File 'lib/dry/logic/predicates.rb', line 45 def bool?(input) input.is_a?(TrueClass) || input.is_a?(FalseClass) end |
#bytesize?(size, input) ⇒ Boolean
132 133 134 135 136 137 138 139 |
# File 'lib/dry/logic/predicates.rb', line 132 def bytesize?(size, input) case size when Integer then size.equal?(input.bytesize) when Range, Array then size.include?(input.bytesize) else raise ArgumentError, "+#{size}+ is not supported type for bytesize? predicate." end end |
#case?(pattern, input) ⇒ Boolean
205 206 207 |
# File 'lib/dry/logic/predicates.rb', line 205 def case?(pattern, input) pattern === input end |
#date?(input) ⇒ Boolean
49 50 51 |
# File 'lib/dry/logic/predicates.rb', line 49 def date?(input) input.is_a?(Date) end |
#date_time?(input) ⇒ Boolean
53 54 55 |
# File 'lib/dry/logic/predicates.rb', line 53 def date_time?(input) input.is_a?(DateTime) end |
#decimal?(input) ⇒ Boolean
75 76 77 |
# File 'lib/dry/logic/predicates.rb', line 75 def decimal?(input) input.is_a?(BigDecimal) end |
#empty?(input) ⇒ Boolean
32 33 34 35 36 37 38 39 |
# File 'lib/dry/logic/predicates.rb', line 32 def empty?(input) case input when String, Array, Hash then input.empty? when nil then true else false end end |
#eql?(left, right) ⇒ Boolean
181 182 183 |
# File 'lib/dry/logic/predicates.rb', line 181 def eql?(left, right) left.eql?(right) end |
#even?(input) ⇒ Boolean
95 96 97 |
# File 'lib/dry/logic/predicates.rb', line 95 def even?(input) input.even? end |
#excluded_from?(list, input) ⇒ Boolean
163 164 165 |
# File 'lib/dry/logic/predicates.rb', line 163 def excluded_from?(list, input) !list.include?(input) end |
#excludes?(value, input) ⇒ Boolean
177 178 179 |
# File 'lib/dry/logic/predicates.rb', line 177 def excludes?(value, input) !includes?(value, input) end |
#exclusion?(list, input) ⇒ Boolean
154 155 156 157 |
# File 'lib/dry/logic/predicates.rb', line 154 def exclusion?(list, input) ::Kernel.warn 'exclusion is deprecated - use excluded_from instead.' excluded_from?(list, input) end |
#false?(value) ⇒ Boolean
197 198 199 |
# File 'lib/dry/logic/predicates.rb', line 197 def false?(value) value.equal?(false) end |
#filled?(input) ⇒ Boolean
41 42 43 |
# File 'lib/dry/logic/predicates.rb', line 41 def filled?(input) !empty?(input) end |
#float?(input) ⇒ Boolean
71 72 73 |
# File 'lib/dry/logic/predicates.rb', line 71 def float?(input) input.is_a?(Float) end |
#format?(regex, input) ⇒ Boolean
201 202 203 |
# File 'lib/dry/logic/predicates.rb', line 201 def format?(regex, input) regex.match?(input) end |
#gt?(num, input) ⇒ Boolean
103 104 105 |
# File 'lib/dry/logic/predicates.rb', line 103 def gt?(num, input) input > num end |
#gteq?(num, input) ⇒ Boolean
111 112 113 |
# File 'lib/dry/logic/predicates.rb', line 111 def gteq?(num, input) !lt?(num, input) end |
#hash?(input) ⇒ Boolean
83 84 85 |
# File 'lib/dry/logic/predicates.rb', line 83 def hash?(input) input.is_a?(Hash) end |
#included_in?(list, input) ⇒ Boolean
159 160 161 |
# File 'lib/dry/logic/predicates.rb', line 159 def included_in?(list, input) list.include?(input) end |
#includes?(value, input) ⇒ Boolean
167 168 169 170 171 172 173 174 175 |
# File 'lib/dry/logic/predicates.rb', line 167 def includes?(value, input) if input.respond_to?(:include?) input.include?(value) else false end rescue TypeError false end |
#inclusion?(list, input) ⇒ Boolean
149 150 151 152 |
# File 'lib/dry/logic/predicates.rb', line 149 def inclusion?(list, input) ::Kernel.warn 'inclusion is deprecated - use included_in instead.' included_in?(list, input) end |
#int?(input) ⇒ Boolean
67 68 69 |
# File 'lib/dry/logic/predicates.rb', line 67 def int?(input) input.is_a?(Integer) end |
#is?(left, right) ⇒ Boolean
185 186 187 |
# File 'lib/dry/logic/predicates.rb', line 185 def is?(left, right) left.equal?(right) end |
#key?(name, input) ⇒ Boolean
24 25 26 |
# File 'lib/dry/logic/predicates.rb', line 24 def key?(name, input) input.key?(name) end |
#lt?(num, input) ⇒ Boolean
99 100 101 |
# File 'lib/dry/logic/predicates.rb', line 99 def lt?(num, input) input < num end |
#lteq?(num, input) ⇒ Boolean
107 108 109 |
# File 'lib/dry/logic/predicates.rb', line 107 def lteq?(num, input) !gt?(num, input) end |
#max_bytesize?(num, input) ⇒ Boolean
145 146 147 |
# File 'lib/dry/logic/predicates.rb', line 145 def max_bytesize?(num, input) input.bytesize <= num end |
#max_size?(num, input) ⇒ Boolean
128 129 130 |
# File 'lib/dry/logic/predicates.rb', line 128 def max_size?(num, input) input.size <= num end |
#min_bytesize?(num, input) ⇒ Boolean
141 142 143 |
# File 'lib/dry/logic/predicates.rb', line 141 def min_bytesize?(num, input) input.bytesize >= num end |
#min_size?(num, input) ⇒ Boolean
124 125 126 |
# File 'lib/dry/logic/predicates.rb', line 124 def min_size?(num, input) input.size >= num end |
#nil?(input) ⇒ Boolean Also known as: none?
19 20 21 |
# File 'lib/dry/logic/predicates.rb', line 19 def nil?(input) input.nil? end |
#not_eql?(left, right) ⇒ Boolean
189 190 191 |
# File 'lib/dry/logic/predicates.rb', line 189 def not_eql?(left, right) !left.eql?(right) end |
#number?(input) ⇒ Boolean
61 62 63 64 65 |
# File 'lib/dry/logic/predicates.rb', line 61 def number?(input) true if Float(input) rescue ArgumentError, TypeError false end |
#odd?(input) ⇒ Boolean
91 92 93 |
# File 'lib/dry/logic/predicates.rb', line 91 def odd?(input) input.odd? end |
#predicate(name, &block) ⇒ Object
218 219 220 |
# File 'lib/dry/logic/predicates.rb', line 218 def predicate(name, &block) define_singleton_method(name, &block) end |
#respond_to?(method, input) ⇒ Boolean
214 215 216 |
# File 'lib/dry/logic/predicates.rb', line 214 def respond_to?(method, input) input.respond_to?(method) end |
#size?(size, input) ⇒ Boolean
115 116 117 118 119 120 121 122 |
# File 'lib/dry/logic/predicates.rb', line 115 def size?(size, input) case size when Integer then size.equal?(input.size) when Range, Array then size.include?(input.size) else raise ArgumentError, "+#{size}+ is not supported type for size? predicate." end end |
#str?(input) ⇒ Boolean
79 80 81 |
# File 'lib/dry/logic/predicates.rb', line 79 def str?(input) input.is_a?(String) end |
#time?(input) ⇒ Boolean
57 58 59 |
# File 'lib/dry/logic/predicates.rb', line 57 def time?(input) input.is_a?(Time) end |
#true?(value) ⇒ Boolean
193 194 195 |
# File 'lib/dry/logic/predicates.rb', line 193 def true?(value) value.equal?(true) end |
#type?(type, input) ⇒ Boolean
15 16 17 |
# File 'lib/dry/logic/predicates.rb', line 15 def type?(type, input) input.kind_of?(type) end |
#uuid_v4?(input) ⇒ Boolean
209 210 211 212 |
# File 'lib/dry/logic/predicates.rb', line 209 def uuid_v4?(input) uuid_v4_format = /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i format?(uuid_v4_format, input) end |