Sha256: 13971572ba58afdb38904cda4843bb0862f8c8f581147a67a39ded465cebb894
Contents?: true
Size: 981 Bytes
Versions: 3
Compression:
Stored size: 981 Bytes
Contents
require 'jellyfish' require 'rack/request' module Jellyfish class Sinatra < Controller attr_reader :request, :params def block_call argument, block @request = Rack::Request.new(env) @params = indifferent_params(if argument.kind_of?(MatchData) then # merge captured data from matcher into params as sinatra request.params.merge(Hash[argument.names.zip(argument.captures)]) else request.params end) super end private # stolen from sinatra # Enable string or symbol key access to the nested params hash. def indifferent_params(params) params = indifferent_hash.merge(params) params.each do |key, value| next unless value.is_a?(Hash) params[key] = indifferent_params(value) end end # stolen from sinatra # Creates a Hash with indifferent access. def indifferent_hash Hash.new {|hash,key| hash[key.to_s] if Symbol === key } end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
jellyfish-0.5.1 | lib/jellyfish/sinatra.rb |
jellyfish-0.5.0 | lib/jellyfish/sinatra.rb |
jellyfish-0.4.0 | lib/jellyfish/sinatra.rb |