Class: Cequel::Schema::Column Abstract
- Inherits:
-
Object
- Object
- Cequel::Schema::Column
- Defined in:
- lib/cequel/schema/column.rb
Overview
Represents a column definition in a table schema.
Direct Known Subclasses
ClusteringColumn, CollectionColumn, DataColumn, PartitionKey
Instance Attribute Summary collapse
-
#name ⇒ Symbol
readonly
The name of the column.
-
#type ⇒ Type
readonly
The type of the column.
Instance Method Summary collapse
-
#==(other) ⇒ Boolean
True if this column has the same CQL representation as ‘other` column.
-
#cast(value) ⇒ Object
private
The value cast to the appropriate type for this column.
-
#clustering_column? ⇒ Boolean
True if this is a clustering column.
-
#collection_column? ⇒ Boolean
True if this is a collection column.
-
#data_column? ⇒ Boolean
True if this is a data column.
-
#initialize(name, type) ⇒ Column
constructor
A new instance of Column.
-
#inspect ⇒ String
Human-readable representation of this column.
-
#key? ⇒ Boolean
True if this is a key column.
-
#partition_key? ⇒ Boolean
True if this is a partition key column.
-
#to_cql ⇒ String
private
A CQL fragment representing this column in a table definition.
-
#to_s ⇒ String
The column’s name.
-
#type?(type_in) ⇒ Boolean
True if this column has the type given by ‘type_in`.
Constructor Details
#initialize(name, type) ⇒ Column
Returns a new instance of Column.
18 19 20 |
# File 'lib/cequel/schema/column.rb', line 18 def initialize(name, type) @name, @type = name, type end |
Instance Attribute Details
#name ⇒ Symbol (readonly)
Returns the name of the column.
10 11 12 |
# File 'lib/cequel/schema/column.rb', line 10 def name @name end |
#type ⇒ Type (readonly)
Returns the type of the column.
12 13 14 |
# File 'lib/cequel/schema/column.rb', line 12 def type @type end |
Instance Method Details
#==(other) ⇒ Boolean
Returns true if this column has the same CQL representation as ‘other` column.
106 107 108 |
# File 'lib/cequel/schema/column.rb', line 106 def ==(other) to_cql == other.to_cql end |
#cast(value) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns the value cast to the appropriate type for this column.
87 88 89 |
# File 'lib/cequel/schema/column.rb', line 87 def cast(value) @type.cast(value) end |
#clustering_column? ⇒ Boolean
Returns true if this is a clustering column.
53 54 55 |
# File 'lib/cequel/schema/column.rb', line 53 def clustering_column? false end |
#collection_column? ⇒ Boolean
Returns true if this is a collection column.
69 70 71 |
# File 'lib/cequel/schema/column.rb', line 69 def collection_column? false end |
#data_column? ⇒ Boolean
Returns true if this is a data column.
62 63 64 |
# File 'lib/cequel/schema/column.rb', line 62 def data_column? !key? end |
#inspect ⇒ String
Returns human-readable representation of this column.
120 121 122 |
# File 'lib/cequel/schema/column.rb', line 120 def inspect %Q(#<#{self.class.name}: #{to_cql}>) end |
#key? ⇒ Boolean
Returns true if this is a key column.
31 32 33 |
# File 'lib/cequel/schema/column.rb', line 31 def key? partition_key? || clustering_column? end |
#partition_key? ⇒ Boolean
Returns true if this is a partition key column.
42 43 44 |
# File 'lib/cequel/schema/column.rb', line 42 def partition_key? false end |
#to_cql ⇒ String
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a CQL fragment representing this column in a table definition.
97 98 99 |
# File 'lib/cequel/schema/column.rb', line 97 def to_cql "#{@name} #{@type}" end |
#to_s ⇒ String
Returns the column’s name.
113 114 115 |
# File 'lib/cequel/schema/column.rb', line 113 def to_s name end |
#type?(type_in) ⇒ Boolean
Returns true if this column has the type given by ‘type_in`.
77 78 79 |
# File 'lib/cequel/schema/column.rb', line 77 def type?(type_in) type == Type[type_in] end |