class Inferno::Web::Controllers::Controller

Public Class Methods

call(params) click to toggle source

Ensure that each request gets a new instance of the controller.

# File lib/inferno/apps/web/controllers/controller.rb, line 6
def self.call(params)
  new.call(params)
end
inherited(subclass) click to toggle source
Calls superclass method
# File lib/inferno/apps/web/controllers/controller.rb, line 10
def self.inherited(subclass)
  super

  # This does some sort of magic that requires it be included in the
  # subclass rather than superclass.
  subclass.include Hanami::Action

  subclass.include Import[repo: "repositories.#{subclass.resource_name}"]

  subclass.define_method(:serialize) do |*args|
    Inferno::Web::Serializers.const_get(self.class.resource_class).render(*args)
  end
end
resource_class() click to toggle source
# File lib/inferno/apps/web/controllers/controller.rb, line 28
def self.resource_class
  name.split('::')[-2].singularize
end
resource_name() click to toggle source
# File lib/inferno/apps/web/controllers/controller.rb, line 24
def self.resource_name
  name.split('::')[-2].underscore
end