abstract class Class

Defined in:

class.cr
primitives.cr

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from struct Value

==(other : JSON::Any)
==(other : YAML::Any)
==(other)
==
, dup dup

Instance methods inherited from class Object

!=(other) !=, !~(other) !~, ==(other) ==, ===(other : JSON::Any)
===(other : YAML::Any)
===(other)
===
, =~(other) =~, class class, dup dup, hash(hasher)
hash
hash
, inspect(io : IO)
inspect
inspect
, itself itself, not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, tap(&block) tap, to_json(io : IO)
to_json
to_json
, to_pretty_json(indent : String = " ")
to_pretty_json(io : IO, indent : String = " ")
to_pretty_json
, to_s
to_s(io : IO)
to_s
, to_yaml(io : IO)
to_yaml
to_yaml
, try(&block) try, unsafe_as(type : T.class) forall T unsafe_as

Constructor methods inherited from class Object

from_json(string_or_io, root : String) : self
from_json(string_or_io) : self
from_json
, from_yaml(string_or_io : String | IO) : self from_yaml

Constructor Detail

def self.cast(other) : self #

Casts other to this class.

This is the same as using as, but allows the class to be passed around as an argument. See the documentation on as for more information.

klass = Int32
number = [99, "str"][0]
typeof(number)             # => (String | Int32)
typeof(klass.cast(number)) # => Int32

[View source]

Class Method Detail

def self.<(other : T.class) : Bool forall T #

Returns whether this class inherits or includes other.

Int32 < Number  # => true
Int32 < Value   # => true
Int32 < Int32   # => false
Int32 <= String # => false

[View source]
def self.<=(other : T.class) : Bool forall T #

Returns whether this class inherits or includes other, or is equal to other.

Int32 < Number  # => true
Int32 < Value   # => true
Int32 <= Int32  # => true
Int32 <= String # => false

[View source]
def self.==(other : Class) : Bool #

Returns whether this class is the same as other.

Int32 == Int32  # => true
Int32 == String # => false

[View source]
def self.===(other) #

[View source]
def self.>(other : T.class) forall T #

Returns whether other inherits or includes self.

Number > Int32  # => true
Number > Number # => false
Number > Object # => false

[View source]
def self.>=(other : T.class) forall T #

Returns whether other inherits or includes self, or is equal to self.

Number >= Int32  # => true
Number >= Number # => true
Number >= Object # => false

[View source]
def self.clone #

[View source]
def self.dup #

[View source]
def self.hash(hasher) #

[View source]
def self.inspect(io) #

[View source]
def self.name : String #

Returns the name of this class.

String.name # => "String"

[View source]
def self.nilable? #

Returns true if this class is Nil.

Int32.nilable? # => false
Nil.nilable?   # => true

[View source]
def self.to_s(io) #

[View source]
def self.|(other : U.class) forall U #

Returns the union type of self and other.

Int32 | Char # => (Int32 | Char)

[View source]

Instance Method Detail

def <(other : T.class) : Bool forall T #

Returns whether this class inherits or includes other.

Int32 < Number  # => true
Int32 < Value   # => true
Int32 < Int32   # => false
Int32 <= String # => false

[View source]
def <=(other : T.class) : Bool forall T #

Returns whether this class inherits or includes other, or is equal to other.

Int32 < Number  # => true
Int32 < Value   # => true
Int32 <= Int32  # => true
Int32 <= String # => false

[View source]
def ==(other : Class) : Bool #

Returns whether this class is the same as other.

Int32 == Int32  # => true
Int32 == String # => false

[View source]
def ===(other) #

[View source]
def >(other : T.class) forall T #

Returns whether other inherits or includes self.

Number > Int32  # => true
Number > Number # => false
Number > Object # => false

[View source]
def >=(other : T.class) forall T #

Returns whether other inherits or includes self, or is equal to self.

Number >= Int32  # => true
Number >= Number # => true
Number >= Object # => false

[View source]
def cast(other) : self #

Casts other to this class.

This is the same as using as, but allows the class to be passed around as an argument. See the documentation on as for more information.

klass = Int32
number = [99, "str"][0]
typeof(number)             # => (String | Int32)
typeof(klass.cast(number)) # => Int32

[View source]
def clone #

[View source]
def dup #

[View source]
def hash(hasher) #

[View source]
def inspect(io) #

[View source]
def name : String #

Returns the name of this class.

String.name # => "String"

[View source]
def nilable? #

Returns true if this class is Nil.

Int32.nilable? # => false
Nil.nilable?   # => true

[View source]
def to_s(io) #

[View source]
def |(other : U.class) forall U #

Returns the union type of self and other.

Int32 | Char # => (Int32 | Char)

[View source]