Module: Crystalline::Utils

Defined in:
lib/crystalline/utils.rb

Class Method Summary collapse

Class Method Details

.arr?(t) ⇒ Boolean

Returns:



9
10
11
12
13
14
# File 'lib/crystalline/utils.rb', line 9

def self.arr?(t)
  if t.instance_of? Crystalline::Array
    return true
  end
  false
end

.arr_of(t) ⇒ Object



16
17
18
# File 'lib/crystalline/utils.rb', line 16

def self.arr_of(t)
  t.inner_type
end

.boolean?(t) ⇒ Boolean

Returns:



57
58
59
# File 'lib/crystalline/utils.rb', line 57

def self.boolean?(t)
  t.instance_of? Crystalline::Boolean
end

.get_union_types(t) ⇒ Object



53
54
55
# File 'lib/crystalline/utils.rb', line 53

def self.get_union_types(t)
  t.types
end

.hash?(t) ⇒ Boolean

Returns:



20
21
22
23
24
25
# File 'lib/crystalline/utils.rb', line 20

def self.hash?(t)
  if t.instance_of? Crystalline::Hash
    return true
  end
  false
end

.hash_of(t) ⇒ Object



27
28
29
# File 'lib/crystalline/utils.rb', line 27

def self.hash_of(t)
  t.value_type
end

.nilable?(t) ⇒ Boolean

Returns:



31
32
33
34
35
36
37
38
39
# File 'lib/crystalline/utils.rb', line 31

def self.nilable?(t)
  if t.instance_of? Crystalline::Nilable
    return true
  end
  if t.instance_of? Crystalline::Union
    return t.types.any? { |tt| tt.instance_of? Crystalline::Nilable }
  end
  false
end

.nilable_of(t) ⇒ Object



41
42
43
44
45
46
47
# File 'lib/crystalline/utils.rb', line 41

def self.nilable_of(t)
  
  if nilable? t
    return t.inner_type
  end
  nil
end

.to_boolean(value) ⇒ Object



61
62
63
64
65
66
67
68
# File 'lib/crystalline/utils.rb', line 61

def self.to_boolean(value)
  case value
  when true, false
    value
  else
    raise TypeError, "Cannot convert #{value.inspect} to boolean. The value is of type #{value.class}"
  end
end

.union?(t) ⇒ Boolean

Returns:



49
50
51
# File 'lib/crystalline/utils.rb', line 49

def self.union?(t)
  return t.instance_of? Crystalline::Union
end