Module: Natsuzora::Value
- Defined in:
- lib/natsuzora/value.rb
Constant Summary collapse
- INTEGER_MIN =
-9_007_199_254_740_991
- INTEGER_MAX =
9_007_199_254_740_991
Class Method Summary collapse
- .ensure_array!(value) ⇒ Object
-
.stringify(value) ⇒ Object
Stringify value (v4.0: null is an error).
-
.stringify_nullable(value) ⇒ Object
Stringify with nullable modifier (null -> empty string).
-
.stringify_required(value) ⇒ Object
Stringify with required modifier (null and empty string are errors).
- .truthy?(value) ⇒ Boolean
Class Method Details
.ensure_array!(value) ⇒ Object
58 59 60 61 62 |
# File 'lib/natsuzora/value.rb', line 58 def ensure_array!(value) raise TypeError, "Expected array, got #{value.class}" unless value.is_a?(Array) value end |
.stringify(value) ⇒ Object
Stringify value (v4.0: null is an error)
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/natsuzora/value.rb', line 10 def stringify(value) case value when String value when Integer validate_integer_range!(value) value.to_s when NilClass raise TypeError, "Cannot stringify null value without '?' modifier" when TrueClass, FalseClass raise TypeError, 'Cannot stringify boolean value' when Array raise TypeError, 'Cannot stringify array' when Hash raise TypeError, 'Cannot stringify object' else raise TypeError, "Cannot stringify value of type #{value.class}" end end |
.stringify_nullable(value) ⇒ Object
Stringify with nullable modifier (null -> empty string)
31 32 33 34 35 |
# File 'lib/natsuzora/value.rb', line 31 def stringify_nullable(value) return '' if value.nil? stringify(value) end |
.stringify_required(value) ⇒ Object
Stringify with required modifier (null and empty string are errors)
38 39 40 41 42 43 |
# File 'lib/natsuzora/value.rb', line 38 def stringify_required(value) raise TypeError, "Cannot stringify null value with '!' modifier" if value.nil? raise TypeError, "Cannot stringify empty string with '!' modifier" if value == '' stringify(value) end |
.truthy?(value) ⇒ Boolean
45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/natsuzora/value.rb', line 45 def truthy?(value) case value when false, nil false when Integer value != 0 when String, Array, Hash !value.empty? else true end end |