Sha256: c975fa19659b03dbbe089a0ee891d83c40c874f389cef552bf158aea2bb0e1b5

Contents?: true

Size: 614 Bytes

Versions: 2

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

2 entries across 2 versions & 1 rubygems

Version Path
metka-0.1.1 lib/metka/query_builder.rb
metka-0.1.0 lib/metka/query_builder.rb