Module: Crystalline::Utils
- Defined in:
- lib/crystalline/utils.rb
Class Method Summary collapse
- .arr?(t) ⇒ Boolean
- .arr_of(t) ⇒ Object
- .boolean?(t) ⇒ Boolean
- .get_union_types(t) ⇒ Object
- .hash?(t) ⇒ Boolean
- .hash_of(t) ⇒ Object
- .nilable?(t) ⇒ Boolean
- .nilable_of(t) ⇒ Object
- .to_boolean(value) ⇒ Object
- .union?(t) ⇒ Boolean
Class Method Details
.arr?(t) ⇒ Boolean
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
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
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
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
50 51 52 |
# File 'lib/crystalline/utils.rb', line 50 def self.union?(t) return t.instance_of? Crystalline::Union end |