module NullObjectModels::Extension::ClassMethods

Public Instance Methods

find_or_null(id_or_ids, klass = nil) click to toggle source
# File lib/null_object_models/extension.rb, line 6
def find_or_null(id_or_ids, klass = nil)
  klass ||= null_model

  if id_or_ids.is_a?(Array)
    found_collection = where(id: id_or_ids)

    id_or_ids.map do |id|
      found_collection.detect { |found| found.id == id } || klass.new(id, self)
    end
  else
    find_by_id(id_or_ids) || klass.new(id_or_ids, self)
  end
end
null_model() click to toggle source
# File lib/null_object_models/extension.rb, line 20
def null_model
  ('Null' + self.name).constantize
rescue
  NullObjectModels::Default
end