Sha256: 59823bd071cb940575daad0727d5b877062a2bc916d63c8f35e66f50a5f2f742
Contents?: true
Size: 1.49 KB
Versions: 1
Compression:
Stored size: 1.49 KB
Contents
# encoding: utf-8 require "rango/mixins/chainable" module Rango module MessageMixin # The rails-style flash messages # @since 0.0.2 # NOTE: it's important to include this mixin after ImplicitRendering mixin def self.included(controller) unless controller.method_defined?(:request) raise "Rango::MessageMixin requires method request to be defined" end if controller.method_defined?(:context) Rango.logger.debug("Extending context by message") controller.class_eval do extend Chainable chainable do def context super.merge!(message: self.message) end def redirect(uri, status = 301, options = Hash.new) status, options = 301, status if status.is_a?(Hash) if options.respond_to?(:inject) # redirect "/post", error: "Try again" # ?msg[error]="Try again" uri = options.inject(uri) do |uri, pair| type, message = pair uri + "?msg[#{type}]=#{message}" end else # redirect "/post", "Try again" # ?msg="Try again" uri.concat("?msg=#{options}") end super(uri, status) end end end else Rango.logger.warn("Context method isn't defined") end end def message @message ||= (request.GET[:msg] || Hash.new) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rango-0.2.1.pre | lib/rango/mixins/message.rb |