Sha256: 9ede408f1dace4d1eb6d1d4e79369c240374341e9018d6ca753d8c93e052b294
Contents?: true
Size: 1.06 KB
Versions: 5
Compression:
Stored size: 1.06 KB
Contents
require 'cell/base' module Cell # Use Cell::Rack to mount your cell to a rack-route with a working +session+ and +params+ reference # in the cell. This is especially useful when using gems like devise with your cell, without the # entire Cell::Rails overhead. # # The only dependency these kinds of cells have is a rack-compatible request object. # # Example: # # match "/dashboard/comments" => proc { |env| # request = ActionDispatch::Request.new(env) # [ 200, {}, [ Cell::Rack.render_cell_for(:comments, :show, request) ]] # } class Rack < Base attr_reader :request delegate :session, :params, :to => :request class << self # DISCUSS: i don't like these class methods. maybe a RenderingStrategy? def create_cell(request, *args) # defined in Builder. new(request) end def render_cell_state(cell, state, request, *args) # defined in Rendering. super(cell, state, *args) end end def initialize(request) super() @request = request end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
cells-3.8.8 | lib/cell/rack.rb |
cells-3.8.7 | lib/cell/rack.rb |
cells-3.8.6 | lib/cell/rack.rb |
cells-3.8.5 | lib/cell/rack.rb |
cells-3.8.4 | lib/cell/rack.rb |