Sha256: 19f28bb862252b9c0d8869ef77e9fc9c4caae03c5748eb0376f79ac35624f91d
Contents?: true
Size: 1.62 KB
Versions: 1
Compression:
Stored size: 1.62 KB
Contents
require 'cassanity/argument_generators/where_clause' require 'cassanity/argument_generators/using_clause' module Cassanity module ArgumentGenerators class ColumnFamilyDelete # Internal def initialize(args = {}) @using_clause = args.fetch(:using_clause) { UsingClause.new } @where_clause = args.fetch(:where_clause) { WhereClause.new } end # Internal def call(args = {}) name = args.fetch(:column_family_name) where = args.fetch(:where) columns = args.fetch(:columns) { [] } using = args[:using] if (keyspace_name = args[:keyspace_name]) name = "#{keyspace_name}.#{name}" end column_clause, variables = '', [] columns ||= [] cols = [] [columns].flatten.each do |c| if Hash === c column_name = c.keys.first keys = c.values.first [keys].flatten.each do |k| cols << "#{column_name}[?]" variables << k end elsif Cassanity::CollectionItem === c cols << "#{c.value}[?]" variables << c.key else cols << c end end column_clause = " #{cols.join(', ')}".rstrip cql = "DELETE#{column_clause} FROM #{name}" using_cql, *using_variables = @using_clause.call(using: using) cql << using_cql variables.concat(using_variables) 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cassanity-0.6.0 | lib/cassanity/argument_generators/column_family_delete.rb |