# File lib/quandl/cassandra/base/schema.rb, line 50 def primary_key @primary_key ||= key_aliases + column_aliases end
module Quandl::Cassandra::Base::Schema::ClassMethods
Public Instance Methods
column_aliases()
click to toggle source
# File lib/quandl/cassandra/base/schema.rb, line 54 def column_aliases return [] if system_schema.blank? @column_aliases ||= JSON.parse(system_schema['column_aliases']).map(&:to_sym) rescue JSON::ParserError [] end
column_names()
click to toggle source
# File lib/quandl/cassandra/base/schema.rb, line 34 def column_names unless @column_names && @column_names.is_a?(Array) && !@column_names.empty? @column_names = columns.map(&:column_name) Quandl::Logger.info("Column names for #{self.to_s}: #{@column_names.join(', ')}") end @column_names end
column_type(type)
click to toggle source
# File lib/quandl/cassandra/base/schema.rb, line 19 def column_type(type) column_types[type.to_sym] end
column_types()
click to toggle source
# File lib/quandl/cassandra/base/schema.rb, line 23 def column_types unless @column_types && @column_types.is_a?(Hash) && !@column_types.empty? @column_types = {} columns.each do |c| @column_types[c.column_name.to_sym] = Quandl::Cassandra::Types.type(c.type) end Quandl::Logger.info("Column types for #{self.to_s}: #{@column_types}") end @column_types end
columns()
click to toggle source
# File lib/quandl/cassandra/base/schema.rb, line 42 def columns unless @columns && @columns.is_a?(Cql::Client::ResultMetadata) @columns = execute("SELECT * FROM #{table_name} LIMIT 1").metadata Quandl::Logger.info("Columns for #{self.to_s} #{@columns.inspect}") end @columns end
initialize_class_once()
click to toggle source
# File lib/quandl/cassandra/base/schema.rb, line 13 def initialize_class_once return if defined?(@initialize_class_once) define_schema_attributes @initialize_class_once = true end
key_aliases()
click to toggle source
# File lib/quandl/cassandra/base/schema.rb, line 61 def key_aliases return [] if system_schema.blank? @key_aliases ||= JSON.parse(system_schema['key_aliases']).map(&:to_sym) rescue JSON::ParserError [] end
primary_key()
click to toggle source
system_schema()
click to toggle source
# File lib/quandl/cassandra/base/schema.rb, line 72 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}' }, 'ONE').first end
table_exists?()
click to toggle source
# File lib/quandl/cassandra/base/schema.rb, line 68 def table_exists? system_schema.present? end
Private Instance Methods
define_schema_attributes()
click to toggle source
# File lib/quandl/cassandra/base/schema.rb, line 83 def define_schema_attributes self.class_eval do define_attributes *column_names end end