Sha256: 3eaf39749a373889c9fb675bf0af6f3adde8490ae215274316799b9343a08c4a

Contents?: true

Size: 738 Bytes

Versions: 4

Compression:

Stored size: 738 Bytes

Contents

module StrongPresenter
  # Provides access to helper methods - both Rails built-in helpers, and those
  # defined in your application.

  # Copied from Draper::HelperProxy
  class HelperProxy

    # @overload initialize(view_context)
    def initialize(view_context)
      @view_context = view_context
    end

    # Sends helper methods to the view context.
    def method_missing(method, *args, &block)
      self.class.define_proxy method
      send(method, *args, &block)
    end

    delegate :capture, to: :view_context

    protected

    attr_reader :view_context

    private

    def self.define_proxy(name)
      define_method name do |*args, &block|
        view_context.send(name, *args, &block)
      end
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
strong_presenter-0.2.2 lib/strong_presenter/helper_proxy.rb
strong_presenter-0.2.1 lib/strong_presenter/helper_proxy.rb
strong_presenter-0.2.0 lib/strong_presenter/helper_proxy.rb
strong_presenter-0.1.0 lib/strong_presenter/helper_proxy.rb