Sha256: 79c45151a06dd2b66def0c04875456783ae4eedd87dbecffd3417583d4d4f051

Contents?: true

Size: 899 Bytes

Versions: 4

Compression:

Stored size: 899 Bytes

Contents

require 'cell/base'

module Cell
  class Rails < Base
    include ActionController::RequestForgeryProtection
    
    abstract!
    
    module Metal
      delegate :session, :params, :request, :config, :env, :url_options, :to => :parent_controller
    end
    
    include Metal
    
    
    class << self
      def create_cell(controller, *args)
        new(controller)
      end
      
    private
      # Run builder block in controller instance context.
      def run_builder_block(block, controller, *args)
        controller.instance_exec(*args, &block)
      end
      
      def render_cell_state(cell, state, *args)
        args.shift  # remove the controller instance.
        cell.render_state(state, *args)
      end
    end
    
    attr_reader :parent_controller
    
    def initialize(parent_controller)
      super()
      @parent_controller = parent_controller
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
cells-3.8.3 lib/cell/rails.rb
cells-3.8.2 lib/cell/rails.rb
cells-3.8.1 lib/cell/rails.rb
cells-3.8.0 lib/cell/rails.rb