Module: ScaffoldingExtensions::MetaSinatraController

Included in:
Sinatra::Base
Defined in:
lib/scaffolding_extensions/controller/sinatra.rb

Instance Method Summary collapse

Instance Method Details

#scaffold_setup_helperObject



110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# File 'lib/scaffolding_extensions/controller/sinatra.rb', line 110

def scaffold_setup_helper
  include ScaffoldingExtensions::Controller
  include ScaffoldingExtensions::SinatraController
  include ScaffoldingExtensions::Helper
  include ScaffoldingExtensions::SinatraHelper
  p = 'POST'
  block = lambda do
    captures = params[:captures] || []
    @scaffold_path = request.env['SCRIPT_NAME']
    @scaffold_method = meth = captures[0] || 'index'
    params[:id] ||= captures[1]
    raise(ArgumentError, 'Method Not Allowed') if scaffold_request_method != p && scaffolded_nonidempotent_method?(meth)
    scaffolded_method?(meth) ? send(meth) : pass
  end
  get('/?', &block)
  [:get, :post].each do |req_meth|
    send(req_meth, %r{\A/(\w+)(?:/(\w+))?\z}, &block)
  end
  self
end