Class: ClickhouseRuby::Types::Base Abstract
- Inherits:
-
Object
- Object
- ClickhouseRuby::Types::Base
- Defined in:
- lib/clickhouse_ruby/types/base.rb
Overview
Subclasses should override #cast, #deserialize, and #serialize
Base class for all ClickHouse types
Provides the interface for type conversion between Ruby and ClickHouse. Subclasses implement specific conversion logic.
Direct Known Subclasses
Array, Boolean, DateTime, Float, Integer, LowCardinality, Map, Nullable, String, Tuple, UUID
Instance Attribute Summary collapse
-
#name ⇒ String
readonly
The ClickHouse type name.
Instance Method Summary collapse
-
#==(other) ⇒ Boolean
(also: #eql?)
Equality comparison.
-
#cast(value) ⇒ Object
Converts a Ruby value to the appropriate type for this ClickHouse column.
-
#deserialize(value) ⇒ Object
Converts a value from ClickHouse response format to Ruby.
-
#hash ⇒ Integer
Hash code for use in hash keys.
-
#initialize(name) ⇒ Base
constructor
A new instance of Base.
-
#nullable? ⇒ Boolean
Returns whether NULL values are allowed.
-
#serialize(value) ⇒ String
Converts a Ruby value to ClickHouse SQL literal format.
-
#to_s ⇒ String
Returns the ClickHouse type string.
Constructor Details
#initialize(name) ⇒ Base
Returns a new instance of Base.
17 18 19 |
# File 'lib/clickhouse_ruby/types/base.rb', line 17 def initialize(name) @name = name end |
Instance Attribute Details
#name ⇒ String (readonly)
Returns the ClickHouse type name.
14 15 16 |
# File 'lib/clickhouse_ruby/types/base.rb', line 14 def name @name end |
Instance Method Details
#==(other) ⇒ Boolean Also known as: eql?
Equality comparison
63 64 65 |
# File 'lib/clickhouse_ruby/types/base.rb', line 63 def ==(other) other.is_a?(Base) && other.name == name end |
#cast(value) ⇒ Object
Converts a Ruby value to the appropriate type for this ClickHouse column
25 26 27 |
# File 'lib/clickhouse_ruby/types/base.rb', line 25 def cast(value) value end |
#deserialize(value) ⇒ Object
Converts a value from ClickHouse response format to Ruby
33 34 35 |
# File 'lib/clickhouse_ruby/types/base.rb', line 33 def deserialize(value) value end |
#hash ⇒ Integer
Hash code for use in hash keys
72 73 74 |
# File 'lib/clickhouse_ruby/types/base.rb', line 72 def hash name.hash end |
#nullable? ⇒ Boolean
Returns whether NULL values are allowed
48 49 50 |
# File 'lib/clickhouse_ruby/types/base.rb', line 48 def nullable? false end |
#serialize(value) ⇒ String
Converts a Ruby value to ClickHouse SQL literal format
41 42 43 |
# File 'lib/clickhouse_ruby/types/base.rb', line 41 def serialize(value) value.to_s end |
#to_s ⇒ String
Returns the ClickHouse type string
55 56 57 |
# File 'lib/clickhouse_ruby/types/base.rb', line 55 def to_s name end |