Module: Crystalline::Utils

Defined in:
lib/crystalline/utils.rb

Class Method Summary collapse

Class Method Details

.arr?(t) ⇒ Boolean

Returns:



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

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

.arr_of(t) ⇒ Object



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

def self.arr_of(t)
  t.inner_type
end

.boolean?(t) ⇒ Boolean

Returns:



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

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

.get_union_types(t) ⇒ Object



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

def self.get_union_types(t)
  t.types
end

.hash?(t) ⇒ Boolean

Returns:



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

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

.hash_of(t) ⇒ Object



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

def self.hash_of(t)
  t.value_type
end

.nilable?(t) ⇒ Boolean

Returns:



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

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



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

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

.to_boolean(value) ⇒ Object



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

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:



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

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