moser/foxtrot_mike

View on GitHub
app/models/affiliation_flight_filter.rb

Summary

Maintainability
A
25 mins
Test Coverage
class AffiliationFlightFilter < FlightFilter
  def initialize(parent, model_class, id)
    @parent, @model_class, @id = [parent, model_class, id]
  end

  def flights
    if @model_class && @id
      filter_by = @model_class.singularize.camelcase
      raise ActiveRecord::RecordNotFound.new unless %w(Airfield License Group Plane Person).include?(filter_by)
      filter_by.constantize.find(@id).flights
    else
      parent_flights
    end
  end
end