module Yaks::Behaviour::OptionalIncludes

Constants

RACK_KEY

Public Instance Methods

associations() click to toggle source
Calls superclass method
# File lib/yaks/behaviour/optional_includes.rb, line 8
def associations
  super.select do |association|
    association.if != Undefined || include_association?(association)
  end
end

Private Instance Methods

include_association?(association) click to toggle source
# File lib/yaks/behaviour/optional_includes.rb, line 16
def include_association?(association)
  includes = env.fetch(RACK_KEY) do
    query_string = env.fetch("QUERY_STRING", nil)
    query = Rack::Utils.parse_query(query_string)
    env[RACK_KEY] = query.fetch("include", "").split(",").map { |r| r.split(".") }
  end

  includes.any? do |relationship|
    relationship[mapper_stack.size].eql?(association.name.to_s)
  end
end