class Frosting::Repository
Public Class Methods
present(resource, options = {})
click to toggle source
# File lib/frosting/repository.rb, line 8 def self.present(resource, options = {}) klass = options.fetch(:presenter) { infer_presenter(resource) } klass = procify(klass).call(resource) klass.to_s.constantize.new(resource, options[:context]) rescue LoadError, NameError raise PresenterMissingError.new("No such presenter: #{klass}") end
present_collection(collection, options = {})
click to toggle source
# File lib/frosting/repository.rb, line 16 def self.present_collection(collection, options = {}) PresentedCollection.new(collection, options) end
Private Class Methods
infer_presenter(resource)
click to toggle source
# File lib/frosting/repository.rb, line 20 def self.infer_presenter(resource) "Presenters::#{resource.class.name}" end
procify(arg)
click to toggle source
# File lib/frosting/repository.rb, line 25 def self.procify(arg) arg.respond_to?(:call) ? arg : lambda { |_| arg } end