module Hanami::Action::Exposable

Exposures API

@since 0.1.0

@see Hanami::Action::Exposable::ClassMethods#expose

Public Class Methods

included(base) click to toggle source

Override Ruby's hook for modules. It includes exposures logic

@param base [Class] the target action

@since 0.1.0 @api private

@see www.ruby-doc.org/core-2.1.2/Module.html#method-i-included

# File lib/hanami/action/exposable.rb, line 20
def self.included(base)
  base.class_eval do
    extend ClassMethods
    include Guard

    _expose :params
  end
end

Public Instance Methods

exposures() click to toggle source

Set of exposures

@return [Hash] the exposures

@since 0.1.0

@see Hanami::Action::Exposable::ClassMethods.expose

# File lib/hanami/action/exposable.rb, line 106
def exposures
  @exposures ||= {}.tap do |result|
    self.class.exposures.each do |name|
      result[name] = send(name)
    end
  end
end
finish() click to toggle source

Finalize the response

@since 0.3.0 @api private

@see Hanami::Action#finish

Calls superclass method
# File lib/hanami/action/exposable.rb, line 120
def finish
  super
  exposures
end