Module: Quandl::Cassandra::Base::Schema::ClassMethods
- Defined in:
- lib/quandl/cassandra/base/schema.rb
Instance Method Summary collapse
- #column_aliases ⇒ Object
- #column_names ⇒ Object
- #column_type(type) ⇒ Object
- #column_types ⇒ Object
- #columns ⇒ Object
- #initialize_class_once ⇒ Object
- #key_aliases ⇒ Object
- #primary_key ⇒ Object
- #system_schema ⇒ Object
- #table_exists? ⇒ Boolean
Instance Method Details
#column_aliases ⇒ Object
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_names ⇒ Object
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_types ⇒ Object
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 |
#columns ⇒ Object
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_once ⇒ Object
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_aliases ⇒ Object
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_key ⇒ Object
42 43 44 |
# File 'lib/quandl/cassandra/base/schema.rb', line 42 def primary_key @primary_key ||= key_aliases + column_aliases end |
#system_schema ⇒ Object
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
60 61 62 |
# File 'lib/quandl/cassandra/base/schema.rb', line 60 def table_exists? system_schema.present? end |