Sha256: 5532bfb459a7c8ecbd153f577c833867170db0aeecd628193b8d6f1a67d78e69

Contents?: true

Size: 821 Bytes

Versions: 4

Compression:

Stored size: 821 Bytes

Contents

# frozen_string_literal: true

require_relative 'query_builder/base_query'
require_relative 'query_builder/exclude_all_tags_query'
require_relative 'query_builder/exclude_any_tags_query'
require_relative 'query_builder/any_tags_query'
require_relative 'query_builder/all_tags_query'

module Metka
  class QueryBuilder
    def call(taggable_model, column, tag_list, options)
      if options[:exclude_all].present?
        ExcludeAllTagsQuery.instance.call(taggable_model, column, tag_list)
      elsif options[:exclude_any].present?
        ExcludeAnyTagsQuery.instance.call(taggable_model, column, tag_list)
      elsif options[:any].present?
        AnyTagsQuery.instance.call(taggable_model, column, tag_list)
      else
        AllTagsQuery.instance.call(taggable_model, column, tag_list)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
metka-1.0.3 lib/metka/query_builder.rb
metka-1.0.2 lib/metka/query_builder.rb
metka-1.0.1 lib/metka/query_builder.rb
metka-1.0.0 lib/metka/query_builder.rb