class Card::Env::Success

Success objects

Attributes

card[W]
id[R]
name[RW]
name_context[RW]
params[W]
redirect[W]
reload[RW]

Public Class Methods

new(name_context=nil, success_args=nil) click to toggle source
# File lib/card/env/success.rb, line 12
def initialize name_context=nil, success_args=nil
  @name_context = name_context
  @new_args = {}
  @params = OpenStruct.new
  self << normalize_success_args(success_args)
end

Public Instance Methods

<<(value) click to toggle source
# File lib/card/env/success.rb, line 29
def << value
  if value.is_a? Hash
    apply value
  else
    self.mark = value
  end
end
[](key) click to toggle source
# File lib/card/env/success.rb, line 53
def [] key
  if respond_to? key.to_sym
    send key.to_sym
  else
    @params.send key.to_sym
  end
end
[]=(key, value) click to toggle source
# File lib/card/env/success.rb, line 45
def []= key, value
  if respond_to? "#{key}="
    send "#{key}=", value
  else
    @params.send "#{key}=", value
  end
end
flash(message=nil) click to toggle source
# File lib/card/env/success.rb, line 61
def flash message=nil
  @params[:flash] ||= []
  @params[:flash] << message if message
  @params[:flash]
end
in_context(name_context) click to toggle source
# File lib/card/env/success.rb, line 24
def in_context name_context
  self.name_context = name_context
  self
end
params() click to toggle source
# File lib/card/env/success.rb, line 67
def params
  @params.marshal_dump
end
redirect() click to toggle source
# File lib/card/env/success.rb, line 37
def redirect
  @redirect.present? ? @redirect : false
end
reload?() click to toggle source
# File lib/card/env/success.rb, line 41
def reload?
  @reload.to_s == "true"
end
session() click to toggle source
# File lib/card/env/success.rb, line 71
def session
  Card::Env.session
end
to_url(name_context=@name_context) click to toggle source
# File lib/card/env/success.rb, line 19
def to_url name_context=@name_context
  target = target name_context
  target.is_a?(Card) ? target.format.path(params) : target
end

Private Instance Methods

apply(hash) click to toggle source
# File lib/card/env/success.rb, line 93
def apply hash
  hash.each_pair do |key, value|
    next unless value.present?

    self[key] = value
  end
end
infer_bracket(method, assign, val) click to toggle source
# File lib/card/env/success.rb, line 87
def infer_bracket method, assign, val
  args = [method]
  args << val if assign
  @params.send(*args)
end
method_missing(method, *args) click to toggle source
Calls superclass method
# File lib/card/env/success.rb, line 81
def method_missing method, *args
  return super unless (m = method.match(/^(\w+(=)?)/))

  infer_bracket m[1].to_sym, m[2], args[0]
end
normalize_success_args(success_args) click to toggle source
# File lib/card/env/success.rb, line 101
def normalize_success_args success_args
  case success_args
  when nil
    self.mark = "_self"
    {}
  when ActionController::Parameters
    success_args.to_unsafe_h
  else
    success_args
  end
end
respond_to_missing?(method, _include_private=false) click to toggle source
Calls superclass method
# File lib/card/env/success.rb, line 77
def respond_to_missing? method, _include_private=false
  method.match?(/^(\w+)=?$/) || super
end