module GrapeEntityMatchers::Exposures

Private Instance Methods

exposures() click to toggle source
# File lib/grape_entity_matchers/exposures.rb, line 5
def exposures
  @exposures ||= extract_exposures(@subject.root_exposures)
end
extract_exposures(exposures, hash = {}, prefix = nil) click to toggle source
# File lib/grape_entity_matchers/exposures.rb, line 9
def extract_exposures(exposures, hash = {}, prefix = nil)
  exposures.each_with_object(hash) do |exposure, hash|
    key = "#{prefix}#{exposure.attribute}"
    if exposure.is_a?(Grape::Entity::Exposure::NestingExposure)
      hash[key.to_sym] = Hash.new
      extract_exposures(exposure.nested_exposures.to_a, hash, "#{key}__")
    else
      hash[key.to_sym] = exposure
    end
  end
end