Sha256: f57798931f60e35e25867457fe19d259a974b582a899688034efb43db324ca44

Contents?: true

Size: 803 Bytes

Versions: 6

Compression:

Stored size: 803 Bytes

Contents

require 'cassanity/argument_generators/where_clause'

module Cassanity
  module ArgumentGenerators
    class Columns

      def initialize(args = {})
        @where_clause = args.fetch(:where_clause) { WhereClause.new }
      end

      # Internal
      def call(args = {})
        where = {}
        variables = []
        cql = 'SELECT * FROM system.schema_columns'

        if (keyspace_name = args[:keyspace_name])
          where[:keyspace_name] = keyspace_name
        end

        if (column_family_name = args[:column_family_name])
          where[:columnfamily_name] = column_family_name
        end

        where_cql, *where_variables = @where_clause.call(where: where)
        cql << where_cql
        variables.concat(where_variables)

        [cql, *variables]
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
cassanity-0.6.0 lib/cassanity/argument_generators/columns.rb
cassanity-0.6.0.beta5 lib/cassanity/argument_generators/columns.rb
cassanity-0.6.0.beta4 lib/cassanity/argument_generators/columns.rb
cassanity-0.6.0.beta3 lib/cassanity/argument_generators/columns.rb
cassanity-0.6.0.beta2 lib/cassanity/argument_generators/columns.rb
cassanity-0.6.0.beta1 lib/cassanity/argument_generators/columns.rb