Sha256: 507b6f2d86fdc13177b235be4a0c254d8e9f9f7b1571c773e342f937ad373600

Contents?: true

Size: 980 Bytes

Versions: 12

Compression:

Stored size: 980 Bytes

Contents

class BazaModels::Query::Not
  def initialize(args)
    @query = args.fetch(:query)
    @model = @query.instance_variable_get(:@model)
    @db = @query.instance_variable_get(:@db)
    @wheres = @query.instance_variable_get(:@wheres)
  end

  def not(args)
    args.each do |key, value|
      if value.is_a?(Hash)
        value.each do |hash_key, hash_value|
          if hash_value.is_a?(Array)
            values = hash_value.map { |hash_value_i| "'#{@db.esc(hash_value_i)}'" }.join(",")

            @wheres << "`#{key}`.`#{hash_key}` NOT IN (#{values})"
          else
            @wheres << "`#{key}`.`#{hash_key}` != '#{@db.esc(hash_value)}'"
          end
        end
      elsif value.is_a?(Array)
        values = value.map { |value_i| "'#{@db.esc(value_i)}'" }.join(",")

        @wheres << "`#{@model.table_name}`.`#{key}` NOT IN (#{values})"
      else
        @wheres << "`#{@model.table_name}`.`#{key}` != '#{@db.esc(value)}'"
      end
    end

    @query
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
baza_models-0.0.15 lib/baza_models/query/not.rb
baza_models-0.0.14 lib/baza_models/query/not.rb
baza_models-0.0.13 lib/baza_models/query/not.rb
baza_models-0.0.12 lib/baza_models/query/not.rb
baza_models-0.0.11 lib/baza_models/query/not.rb
baza_models-0.0.10 lib/baza_models/query/not.rb
baza_models-0.0.9 lib/baza_models/query/not.rb
baza_models-0.0.8 lib/baza_models/query/not.rb
baza_models-0.0.7 lib/baza_models/query/not.rb
baza_models-0.0.6 lib/baza_models/query/not.rb
baza_models-0.0.5 lib/baza_models/query/not.rb
baza_models-0.0.4 lib/baza_models/query/not.rb