Sha256: e2094868cf87eb951a611645d26fd55e51790ad64ce0b7e31e68c0cf7de258c6

Contents?: true

Size: 361 Bytes

Versions: 5

Compression:

Stored size: 361 Bytes

Contents

class FindPointsWithMultipleTagsStrategy < QueryStrategy
  def initialize(model, tags)
    super()
    @model = model
    @tags = tags
  end

  def execute
    @model.joins(:haystack_tags)
          .where(haystack_tags: { id: @tags.map(&:id) })
          .group("#{@model.table_name}.id")
          .having("COUNT(haystack_tags.id) = ?", @tags.size)
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
needle_in_a_haystack-1.1.0 lib/needle_in_a_haystack/strategies/find_points_with_multiple_tags_strategy.rb
needle_in_a_haystack-1.0.8 lib/needle_in_a_haystack/strategies/find_points_with_multiple_tags_strategy.rb
needle_in_a_haystack-1.0.7 lib/needle_in_a_haystack/strategies/find_points_with_multiple_tags_strategy.rb
needle_in_a_haystack-1.0.6 lib/needle_in_a_haystack/strategies/find_points_with_multiple_tags_strategy.rb
needle_in_a_haystack-1.0.5 lib/needle_in_a_haystack/strategies/find_points_with_multiple_tags_strategy.rb