Sha256: bb78542ec59a7df01def483dc20b0d42c8f694b7c785098e8c05d39cdaf78aea

Contents?: true

Size: 1.02 KB

Versions: 3

Compression:

Stored size: 1.02 KB

Contents

module Puffer
  module Controller
    module Mutate

      def self.included base
        base.class_eval do
          class_attribute :current_config
          self.current_config = Puffer::Controller::Config.new

          extend ClassMethods

          layout 'puffer'

          helper_method :current_resource, :current_config, :record, :records

          rescue_from ActionView::MissingTemplate do |exception|
            render current_resource.template(exception.path.split('/').last)
          end
        end
      end

      def current_resource
        @current_resource ||= Puffer::Resource.new params, request
      end

      def record
        @record || instance_variable_get("@#{current_resource.model_name}")
      end

      def records
        @records || instance_variable_get("@#{current_resource.model_name.pluralize}")
      end

      module ClassMethods

        def puffer?
          true
        end

        def configure &block
          block.bind(current_config).call
        end

      end

    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
puffer-0.0.3 lib/puffer/controller/mutate.rb
puffer-0.0.2 lib/puffer/controller/mutate.rb
puffer-0.0.1 lib/puffer/controller/mutate.rb