Sha256: 8d28c15886f54b884d0c6771ef17ba6a762a5d033df0db2d4def1966f7abbcf9

Contents?: true

Size: 1.02 KB

Versions: 22

Compression:

Stored size: 1.02 KB

Contents

module CassandraObject
  class Schema
    module Tasks
      def dump(io)
        column_families.each do |column_family|
          io.puts run_command("DESCRIBE COLUMNFAMILY #{column_family}")
          io.puts
        end
      end

      def load(io)
        current_cql = ''

        io.each_line do |line|
          next if line.blank?

          current_cql << line.rstrip

          if current_cql =~ /;$/
            CassandraObject::Base.execute_cql current_cql
            current_cql = ''
          end
        end
      end

      def column_families
        run_command('DESCRIBE COLUMNFAMILIES').split.sort
      end

      private
        def run_command(command)
          `echo "#{command};" | #{cqlsh} -k #{keyspace} #{server}`.sub(/^(.*)$/, '').strip
        end

        def cqlsh
          ENV['CQLSH'] || 'cqlsh'
        end

        def keyspace
          CassandraObject::Base.config.keyspace
        end

        def server
          CassandraObject::Base.config.servers.first.gsub(/:.*/, '')
        end
    end
  end
end

Version data entries

22 entries across 22 versions & 2 rubygems

Version Path
gotime-cassandra_object-4.11.4 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.11.3 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.11.2 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.11.1 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.11.0 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.10.5 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.10.4 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.10.3 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.10.2 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.10.1 lib/cassandra_object/schema/tasks.rb
cassandra_object_rails-0.0.1 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.10.0 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.9.2 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.9.1 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.9.0 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.8.1 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.8.0 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.7.3 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.7.2 lib/cassandra_object/schema/tasks.rb
gotime-cassandra_object-4.7.1 lib/cassandra_object/schema/tasks.rb