Sha256: 6c8972ba8a49a5ae067e9f7388d9f4b5a3d6950813d06a9a7691bdb7d523e4a4

Contents?: true

Size: 622 Bytes

Versions: 3

Compression:

Stored size: 622 Bytes

Contents

require 'smart_properties'

module ActionWidget
  class Base
    include SmartProperties

    def initialize(view, *args)
      @view = view
      super(*args)
    end

    def render
      raise NotImplementedError, "#{self.class} must implement #render"
    end

    protected

      attr_reader :view

      undef :capture if method_defined?(:capture)

      def method_missing(method, *args, &block)
        view.send(method, *args, &block)
      rescue NoMethodError
        # Double check - the NoMethodError might have occurred somewhere else.
        view.respond_to?(method) ? raise : super
      end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
action_widget-0.5.1 lib/action_widget/base.rb
action_widget-0.5.0 lib/action_widget/base.rb
action_widget-0.4.0 lib/action_widget/base.rb