module Wagn::Response
methods for managing wagn responses
Private Instance Methods
card_redirect(url)
click to toggle source
# File lib/wagn/response.rb, line 6 def card_redirect url url = card_url url # make sure we have absolute url if Card::Env.ajax? # lets client reset window location # (not just receive redirected response) # formerly used 303 response, but that gave IE the fits render json: { redirect: url } else redirect_to url end end
deliver(format, result, status)
click to toggle source
# File lib/wagn/response.rb, line 18 def deliver format, result, status if format == :file && status == 200 send_file(*result) elsif status == 302 card_redirect result else args = { text: result, status: status } args[:content_type] = "text/text" if format == :file render args end end
determine_id()
click to toggle source
# File lib/wagn/response.rb, line 70 def determine_id case when prompt_setup? prepare_setup_card! when params[:card] && params[:card][:name] params[:card][:name] when Card::Format.tagged(params[:view], :unknown_ok) "" else Card.global_setting(:home) || "Home" end end
format_from_params()
click to toggle source
# File lib/wagn/response.rb, line 54 def format_from_params return :file if params[:explicit_file] format = request.parameters[:format] # unknown format return :file unless Card::Format.registered.member?(format) format.to_sym end
interpret_id(id)
click to toggle source
# File lib/wagn/response.rb, line 62 def interpret_id id case id when "*previous" then return card_redirect(Card::Env.previous_location) when nil then determine_id else validate_id_encoding id end end
prepare_setup_card!()
click to toggle source
# File lib/wagn/response.rb, line 87 def prepare_setup_card! params[:card] = { type_id: Card.default_accounted_type_id } params[:view] = "setup" "" end
prompt_setup?()
click to toggle source
# File lib/wagn/response.rb, line 83 def prompt_setup? Card::Auth.needs_setup? && Card::Env.html? end
reset_card(new_card)
click to toggle source
# File lib/wagn/response.rb, line 30 def reset_card new_card @card = new_card update_params_for_success @card.select_action_by_params params end
send_deprecated_asset()
click to toggle source
# File lib/wagn/response.rb, line 46 def send_deprecated_asset filename = [params[:filename], params[:format]].join(".") # for security, block relative paths raise Wagn::BadAddress if filename.include? "../" path = Decko::Engine.paths["gem-assets"].existent.first send_file File.join(path, filename), x_sendfile: true end
update_params_for_success()
click to toggle source
# File lib/wagn/response.rb, line 36 def update_params_for_success success = Card::Env.success if success.soft_redirect? self.params = success.params else # need tests. insure we get slot, main... params.merge! success.params end end
use_draft?()
click to toggle source
# File lib/wagn/response.rb, line 98 def use_draft? params[:edit_draft] && card.drafts.present? end
validate_id_encoding(id)
click to toggle source
# File lib/wagn/response.rb, line 93 def validate_id_encoding id # we should find the place where we produce these bad urls id.valid_encoding? ? id : id.force_encoding("ISO-8859-1").encode("UTF-8") end