class Garage::NestedFieldQuery::Selector

Public Class Methods

build(fields) click to toggle source

includes eager loading

# File lib/garage/nested_field_query.rb, line 142
def self.build(fields)
  if fields.present?
    build_parsed(Parser.parse(fields))
  else
    NestedFieldQuery::DefaultSelector.new
  end
end
build_parsed(fields) click to toggle source
# File lib/garage/nested_field_query.rb, line 150
def self.build_parsed(fields)
  if fields.key? '*'
    FullSelector.new
  else
    self.new(fields)
  end
end
new(fields = {}) click to toggle source
# File lib/garage/nested_field_query.rb, line 158
def initialize(fields = {})
  @fields = fields
end

Public Instance Methods

[](name) click to toggle source
# File lib/garage/nested_field_query.rb, line 162
def [](name)
  if @fields[name].nil?
    DefaultSelector.new
  else
    Selector.build_parsed(@fields[name])
  end
end
canonical() click to toggle source
# File lib/garage/nested_field_query.rb, line 170
def canonical
  Builder.build(@fields)
end
excludes?(field) click to toggle source
# File lib/garage/nested_field_query.rb, line 178
def excludes?(field)
  !@fields.has_key?('__default__') && !@fields.has_key?(field)
end
includes?(field) click to toggle source
# File lib/garage/nested_field_query.rb, line 174
def includes?(field)
  @fields.has_key?(field)
end