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



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

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



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

def name
  @name
end

#typeType (readonly)

Returns the type of the column.

Returns:

  • (Type)

    the type of the column

Since:

  • 1.0.0



13
14
15
# File 'lib/cequel/schema/column.rb', line 13

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



107
108
109
# File 'lib/cequel/schema/column.rb', line 107

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



88
89
90
# File 'lib/cequel/schema/column.rb', line 88

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



54
55
56
# File 'lib/cequel/schema/column.rb', line 54

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



70
71
72
# File 'lib/cequel/schema/column.rb', line 70

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



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

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



121
122
123
# File 'lib/cequel/schema/column.rb', line 121

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



32
33
34
# File 'lib/cequel/schema/column.rb', line 32

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



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

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



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

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

#to_sString

Returns the column’s name.

Returns:

  • (String)

    the column’s name

Since:

  • 1.0.0



114
115
116
# File 'lib/cequel/schema/column.rb', line 114

def to_s
  name.to_s
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



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

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