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.

Parameters:

  • name (Symbol)

    the name of the column

  • type (Type)

    the type of the 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.

Returns:

  • (Symbol)

    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.

Returns:

  • (Type)

    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.

Parameters:

  • other (Column)

    a column object

Returns:

  • (Boolean)

    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.

Parameters:

  • value

    the value to cast

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.

Returns:

  • (Boolean)

    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.

Returns:

  • (Boolean)

    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.

Returns:

  • (Boolean)

    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.

Returns:

  • (String)

    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.

Returns:

  • (Boolean)

    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.

Returns:

  • (Boolean)

    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.

Returns:

  • (String)

    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.

Returns:

  • (String)

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

Parameters:

  • type_in (Symbol, Type)

    type to check against

Returns:

  • (Boolean)

    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