Skip to content

Instantly share code, notes, and snippets.

@brainopia
Last active December 13, 2015 21:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brainopia/4975839 to your computer and use it in GitHub Desktop.
Save brainopia/4975839 to your computer and use it in GitHub Desktop.
Gem::Specification.new do |s|
s.name = 'cassandra-schema_dsl'
s.version = '0.1'
s.author = 'brainopia'
s.summary = 'Cassandra schema dsl'
s.files = ['cassandra-schema_dsl.rb']
s.require_path = '.'
s.add_dependency 'cassandra'
end
module Cassandra::SchemaDSL
def add_keyspace(options)
system.add_keyspace keyspace_definition options
end
def add_table(options)
keyspace(options[:keyspace]).add_column_family table_definition options
end
def drop_keyspace(name)
system.drop_keyspace name
end
private
def keyspace_definition(options)
Cassandra::Keyspace.new options.merge(cf_defs: [])
end
def table_definition(options)
Cassandra::ColumnFamily.new options
end
def system
keyspace 'system'
end
def keyspace(name)
Cassandra.new name
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment