Sha256: 2c1613c6b049193e3299401acefc20900bb65c904be2cf2d2e276c3b5bfb6ff2

Contents?: true

Size: 1.05 KB

Versions: 21

Compression:

Stored size: 1.05 KB

Contents

class Card
  module Query
    class CardQuery
      # nest independent query
      module FoundBy
        def found_by val
          found_by_cards(val).compact.each do |card|
            subquery found_by_subquery(card)
          end
        end

        private

        def found_by_subquery card
          found_by_statement(card).merge(fasten: :direct, context: card.name)
        end

        def found_by_statement card
          card&.try(:wql_hash) || invalid_found_by_card!(card)
        end

        def invalid_found_by_card! card
          raise Card::Error::BadQuery, '"found_by" value must be valid Search, ' \
                                       "but #{card.name} is a #{card.type_name}"
        end

        def found_by_cards val
          if val.is_a? Hash
            Query.run val
          else
            fetch_found_by_cards val
          end
        end

        def fetch_found_by_cards val
          Array.wrap(val).map do |v|
            Card.fetch v.to_name.absolute(context), new: {}
          end
        end
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
card-1.100.0 lib/card/query/card_query/found_by.rb
card-1.99.6 lib/card/query/card_query/found_by.rb
card-1.99.5 lib/card/query/card_query/found_by.rb
card-1.99.4 lib/card/query/card_query/found_by.rb
card-1.99.3 lib/card/query/card_query/found_by.rb
card-1.99.2 lib/card/query/card_query/found_by.rb
card-1.99.1 lib/card/query/card_query/found_by.rb
card-1.99.0 lib/card/query/card_query/found_by.rb
card-1.98.3 lib/card/query/card_query/found_by.rb
card-1.98.2 lib/card/query/card_query/found_by.rb
card-1.98.1 lib/card/query/card_query/found_by.rb
card-1.98.0 lib/card/query/card_query/found_by.rb
card-1.97.0.1 lib/card/query/card_query/found_by.rb
card-1.97.0 lib/card/query/card_query/found_by.rb
card-1.96.8 lib/card/query/card_query/found_by.rb
card-1.96.7 lib/card/query/card_query/found_by.rb
card-1.96.6 lib/card/query/card_query/found_by.rb
card-1.96.5 lib/card/query/card_query/found_by.rb
card-1.96.4 lib/card/query/card_query/found_by.rb
card-1.96.3 lib/card/query/card_query/found_by.rb