Sha256: cecf77154503710c35ff1cbb6da0d2b1208731e0798962803da23a56d7cb231e

Contents?: true

Size: 614 Bytes

Versions: 1

Compression:

Stored size: 614 Bytes

Contents

# frozen_string_literal: true

require_relative 'query_builder/exclude_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].present?
        ExcludeTagsQuery.new(taggable_model, tag_model, tagging_model, tag_list, options).build
      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

1 entries across 1 versions & 1 rubygems

Version Path
metka-0.1.2 lib/metka/query_builder.rb