class WCC::Contentful::Middleware::Store::DelegatingQuery

Attributes

middleware[R]
options[R]
wrapped_query[R]

Public Class Methods

new(wrapped_query, middleware:, options: nil, **extra) click to toggle source
# File lib/wcc/contentful/middleware/store.rb, line 151
def initialize(wrapped_query, middleware:, options: nil, **extra)
  @wrapped_query = wrapped_query
  @middleware = middleware
  @options = options
  @extra = extra
end

Public Instance Methods

apply(filter, context = nil) click to toggle source
# File lib/wcc/contentful/middleware/store.rb, line 121
def apply(filter, context = nil)
  self.class.new(
    wrapped_query.apply(filter, context),
    middleware: middleware,
    options: options,
    **@extra
  )
end
apply_operator(operator, field, expected, context = nil) click to toggle source
# File lib/wcc/contentful/middleware/store.rb, line 130
def apply_operator(operator, field, expected, context = nil)
  self.class.new(
    wrapped_query.apply_operator(operator, field, expected, context),
    middleware: middleware,
    options: options,
    **@extra
  )
end
count() click to toggle source
# File lib/wcc/contentful/middleware/store.rb, line 96
def count
  if middleware.has_select?
    raise NameError, "Count cannot be determined because the middleware '#{middleware}'" \
      " implements the #select? method.  Please use '.to_a.count' to count entries that" \
      ' pass the #select? method.'
  end

  # The wrapped query may get count from the "Total" field in the response,
  # or apply a "COUNT(*)" to the query.
  wrapped_query.count
end
to_enum() click to toggle source
# File lib/wcc/contentful/middleware/store.rb, line 110
def to_enum
  result = wrapped_query.to_enum
  result = result.select { |x| middleware.select?(x) } if middleware.has_select?

  if options && options[:include]
    result = result.map { |x| middleware.resolve_includes(x, options[:include]) }
  end

  result.map { |x| middleware.transform(x) }
end