Method: Reflexive::Application#method_lookup_action

Defined in:
lib/reflexive/application.rb

#method_lookup_action(klass, level, name) ⇒ Object



138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# File 'lib/reflexive/application.rb', line 138

def method_lookup_action(klass, level, name)
  lookup = MethodLookup.new(klass: klass, level: level, name: name)
  if definitions = lookup.definitions
    if definitions.size == 1
      redirect(new_method_definition_path(*definitions[0]) + "#highlighted")
    else
      @definitions, @klass, @level, @name, @last_resort_lookup_used =
              definitions, klass, level, name, lookup.last_resort_lookup_used?
      erb :methods_choose
    end
  elsif documentations = lookup.documentations
    if documentations.size == 1
      redirect(method_documentation_path(*documentations[0]))
    else
      raise ArgumentError, "don't know how to handle multiple documentations"
    end
  else
    e "failed to find `#{ name }' #{ level } method for #{ klass }"
  end
  #
  # e "failed to find `#{ method }' instance method for #{ klass }"
end