class Brainstem::ApiDocs::Resolver

Attributes

atlas[RW]
presenter_constant_lookup_method[RW]

Public Class Methods

new(atlas, options = {}) click to toggle source
Calls superclass method Brainstem::Concerns::Optional::new
# File lib/brainstem/api_docs/resolver.rb, line 21
def initialize(atlas, options = {})
  self.atlas = atlas
  super options
end

Public Instance Methods

find_by_class(klass) click to toggle source
# File lib/brainstem/api_docs/resolver.rb, line 29
def find_by_class(klass)
  if klass == :polymorphic
    nil
  elsif klass < ActiveRecord::Base
    find_presenter_from_target_class(klass)
  end
end
valid_options() click to toggle source
# File lib/brainstem/api_docs/resolver.rb, line 15
def valid_options
  [
    :presenter_constant_lookup_method,
  ]
end

Private Instance Methods

find_presenter_from_target_class(klass) click to toggle source
# File lib/brainstem/api_docs/resolver.rb, line 41
def find_presenter_from_target_class(klass)
  const = presenter_target_class_to_const(klass)
  atlas.presenters.find {|p| p.const == const }
rescue
  nil
end
presenter_target_class_to_const(target_class) click to toggle source

Converts a class into a presenter constant. Raises an error if not found.

# File lib/brainstem/api_docs/resolver.rb, line 52
def presenter_target_class_to_const(target_class)
  presenter_constant_lookup_method.call(target_class.to_s)
end