Module: Quandl::Cassandra::Base::Schema::ClassMethods

Defined in:
lib/quandl/cassandra/base/schema.rb

Instance Method Summary collapse

Instance Method Details

#column_aliasesObject



46
47
48
49
50
51
# File 'lib/quandl/cassandra/base/schema.rb', line 46

def column_aliases
  return [] if system_schema.blank?
  @column_aliases ||= JSON.parse(system_schema['column_aliases']).collect(&:to_sym)
rescue JSON::ParserError
  []
end

#column_namesObject



34
35
36
# File 'lib/quandl/cassandra/base/schema.rb', line 34

def column_names
  @column_names ||= columns.collect(&:column_name)
end

#column_type(type) ⇒ Object



21
22
23
# File 'lib/quandl/cassandra/base/schema.rb', line 21

def column_type(type)
  column_types[type.to_sym]
end

#column_typesObject



25
26
27
28
29
30
31
32
# File 'lib/quandl/cassandra/base/schema.rb', line 25

def column_types
  return @column_types if @column_types
  @column_types = {}
  columns.each do |c|
    @column_types[c.column_name.to_sym] = Quandl::Cassandra::Types.type( c.type )
  end
  @column_types
end

#columnsObject



38
39
40
# File 'lib/quandl/cassandra/base/schema.rb', line 38

def columns
  @columns ||= execute("SELECT * FROM #{table_name} LIMIT 1").
end

#initialize_class_onceObject



15
16
17
18
19
# File 'lib/quandl/cassandra/base/schema.rb', line 15

def initialize_class_once
  return if defined?(@initialize_class_once)
  define_schema_attributes
  @initialize_class_once = true
end

#key_aliasesObject



53
54
55
56
57
58
# File 'lib/quandl/cassandra/base/schema.rb', line 53

def key_aliases
  return [] if system_schema.blank?
  @key_aliases ||= JSON.parse(system_schema['key_aliases']).collect(&:to_sym)
rescue JSON::ParserError
  []
end

#primary_keyObject



42
43
44
# File 'lib/quandl/cassandra/base/schema.rb', line 42

def primary_key
  @primary_key ||= key_aliases + column_aliases
end

#system_schemaObject



64
65
66
67
68
69
70
71
# File 'lib/quandl/cassandra/base/schema.rb', line 64

def system_schema
  return @system_schema if defined?(@system_schema)
  @system_schema = execute(%Q{
    SELECT * FROM system.schema_columnfamilies WHERE 
    keyspace_name='#{Quandl::Cassandra.configuration.keyspace}' 
    AND columnfamily_name = '#{table_name}'
    }).first
end

#table_exists?Boolean

Returns:

  • (Boolean)


60
61
62
# File 'lib/quandl/cassandra/base/schema.rb', line 60

def table_exists?
  system_schema.present?
end