Class: Cequel::Schema::Column Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/cequel/schema/column.rb

Overview

This class is abstract.

Represents a column definition in a table schema.

Since:

  • 1.0.0

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, type) ⇒ Column

Returns a new instance of Column.

Since:

  • 1.0.0



18
19
20
# File 'lib/cequel/schema/column.rb', line 18

def initialize(name, type)
  @name, @type = name, type
end

Instance Attribute Details

#nameSymbol (readonly)

Returns the name of the column.

Since:

  • 1.0.0



10
11
12
# File 'lib/cequel/schema/column.rb', line 10

def name
  @name
end

#typeType (readonly)

Returns the type of the column.

Since:

  • 1.0.0



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.

Since:

  • 1.0.0



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.

Since:

  • 1.0.0



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.

See Also:

Since:

  • 1.0.0



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.

Since:

  • 1.0.0



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.

Since:

  • 1.0.0



62
63
64
# File 'lib/cequel/schema/column.rb', line 62

def data_column?
  !key?
end

#inspectString

Returns human-readable representation of this column.

Since:

  • 1.0.0



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.

See Also:

Since:

  • 1.0.0



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.

See Also:

Since:

  • 1.0.0



42
43
44
# File 'lib/cequel/schema/column.rb', line 42

def partition_key?
  false
end

#to_cqlString

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.

Since:

  • 1.0.0



97
98
99
# File 'lib/cequel/schema/column.rb', line 97

def to_cql
  "#{@name} #{@type}"
end

#to_sString

Returns the column’s name.

Since:

  • 1.0.0



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`.

Since:

  • 1.0.0



77
78
79
# File 'lib/cequel/schema/column.rb', line 77

def type?(type_in)
  type == Type[type_in]
end