Sha256: 553480c7d136919f07b39c958b682a2e3c9d1d4a4ddd6be9b79072a018210f15

Contents?: true

Size: 789 Bytes

Versions: 40

Compression:

Stored size: 789 Bytes

Contents

module Inferno
  module Web
    module Controllers
      class Controller < Hanami::Action
        def self.call(...)
          new.call(...)
        end

        def self.inherited(subclass)
          super

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

          subclass.config.default_request_format = :json
          subclass.config.default_response_format = :json

          subclass.define_method(:serialize) do |*args|
            Inferno::Web::Serializers.const_get(self.class.resource_class).render(*args)
          end
        end

        def self.resource_name
          name.split('::')[-2].underscore
        end

        def self.resource_class
          name.split('::')[-2].singularize
        end
      end
    end
  end
end

Version data entries

40 entries across 40 versions & 1 rubygems

Version Path
inferno_core-0.4.35 lib/inferno/apps/web/controllers/controller.rb
inferno_core-0.4.34 lib/inferno/apps/web/controllers/controller.rb
inferno_core-0.4.33 lib/inferno/apps/web/controllers/controller.rb
inferno_core-0.4.32 lib/inferno/apps/web/controllers/controller.rb
inferno_core-0.4.31 lib/inferno/apps/web/controllers/controller.rb
inferno_core-0.4.30 lib/inferno/apps/web/controllers/controller.rb
inferno_core-0.4.29 lib/inferno/apps/web/controllers/controller.rb
inferno_core-0.4.28 lib/inferno/apps/web/controllers/controller.rb
inferno_core-0.4.27 lib/inferno/apps/web/controllers/controller.rb
inferno_core-0.4.26 lib/inferno/apps/web/controllers/controller.rb
inferno_core-0.4.25 lib/inferno/apps/web/controllers/controller.rb
inferno_core-0.4.24 lib/inferno/apps/web/controllers/controller.rb
inferno_core-0.4.23 lib/inferno/apps/web/controllers/controller.rb
inferno_core-0.4.22 lib/inferno/apps/web/controllers/controller.rb
inferno_core-0.4.21 lib/inferno/apps/web/controllers/controller.rb
inferno_core-0.4.20 lib/inferno/apps/web/controllers/controller.rb
inferno_core-0.4.19 lib/inferno/apps/web/controllers/controller.rb
inferno_core-0.4.18 lib/inferno/apps/web/controllers/controller.rb
inferno_core-0.4.17 lib/inferno/apps/web/controllers/controller.rb
inferno_core-0.4.16 lib/inferno/apps/web/controllers/controller.rb