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

Class Method Details

.ensure_array!(value) ⇒ Object

Raises:



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)

Raises:



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

Returns:

  • (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