class Sinatra::Cookies::Jar
Attributes
options[R]
Public Class Methods
new(app)
click to toggle source
# File lib/sinatra/cookies.rb, line 61 def initialize(app) @response_string = nil @response_hash = {} @response = app.response @request = app.request @deleted = [] @options = { :path => @request.script_name.to_s.empty? ? '/' : @request.script_name, :domain => @request.host == 'localhost' ? nil : @request.host, :secure => @request.secure?, :httponly => true } if app.settings.respond_to? :cookie_options @options.merge! app.settings.cookie_options end end
Public Instance Methods
==(other)
click to toggle source
# File lib/sinatra/cookies.rb, line 80 def ==(other) other.respond_to? :to_hash and to_hash == other.to_hash end
[](key)
click to toggle source
# File lib/sinatra/cookies.rb, line 84 def [](key) response_cookies[key.to_s] || request_cookies[key.to_s] end
[]=(key, value)
click to toggle source
# File lib/sinatra/cookies.rb, line 88 def []=(key, value) @response.set_cookie key.to_s, @options.merge(:value => value) end
Also aliased as: store
assoc(key)
click to toggle source
# File lib/sinatra/cookies.rb, line 92 def assoc(key) to_hash.assoc(key.to_s) end
clear()
click to toggle source
# File lib/sinatra/cookies.rb, line 96 def clear each_key { |k| delete(k) } end
compare_by_identity?()
click to toggle source
# File lib/sinatra/cookies.rb, line 100 def compare_by_identity? false end
default()
click to toggle source
# File lib/sinatra/cookies.rb, line 104 def default nil end
Also aliased as: default_proc
delete(key)
click to toggle source
# File lib/sinatra/cookies.rb, line 110 def delete(key) result = self[key] @response.delete_cookie(key.to_s, @options) result end
delete_if() { |k, v| ... }
click to toggle source
# File lib/sinatra/cookies.rb, line 116 def delete_if return enum_for(__method__) unless block_given? each { |k, v| delete(k) if yield(k, v) } self end
Also aliased as: reject!
each(&block)
click to toggle source
# File lib/sinatra/cookies.rb, line 122 def each(&block) return enum_for(__method__) unless block_given? to_hash.each(&block) end
Also aliased as: each_pair
each_key(&block)
click to toggle source
# File lib/sinatra/cookies.rb, line 127 def each_key(&block) return enum_for(__method__) unless block_given? to_hash.each_key(&block) end
each_value(&block)
click to toggle source
# File lib/sinatra/cookies.rb, line 134 def each_value(&block) return enum_for(__method__) unless block_given? to_hash.each_value(&block) end
empty?()
click to toggle source
# File lib/sinatra/cookies.rb, line 139 def empty? to_hash.empty? end
fetch(key, &block)
click to toggle source
# File lib/sinatra/cookies.rb, line 143 def fetch(key, &block) response_cookies.fetch(key.to_s) do request_cookies.fetch(key.to_s, &block) end end
flatten()
click to toggle source
# File lib/sinatra/cookies.rb, line 149 def flatten to_hash.flatten end
has_key?(key)
click to toggle source
# File lib/sinatra/cookies.rb, line 153 def has_key?(key) response_cookies.has_key? key.to_s or request_cookies.has_key? key.to_s end
has_value?(value)
click to toggle source
# File lib/sinatra/cookies.rb, line 157 def has_value?(value) response_cookies.has_value? value or request_cookies.has_value? value end
Also aliased as: value?
hash()
click to toggle source
# File lib/sinatra/cookies.rb, line 161 def hash to_hash.hash end
index(value)
click to toggle source
# File lib/sinatra/cookies.rb, line 168 def index(value) warn "Hash#index is deprecated; use Hash#key" if RUBY_VERSION > '1.9' key(value) end
inspect()
click to toggle source
# File lib/sinatra/cookies.rb, line 173 def inspect "<##{self.class}: #{to_hash.inspect[1..-2]}>" end
invert()
click to toggle source
# File lib/sinatra/cookies.rb, line 177 def invert to_hash.invert end
keep_if() { |*a| ... }
click to toggle source
# File lib/sinatra/cookies.rb, line 181 def keep_if return enum_for(__method__) unless block_given? delete_if { |*a| not yield(*a) } end
Also aliased as: select!
key(value)
click to toggle source
# File lib/sinatra/cookies.rb, line 186 def key(value) to_hash.key(value) end
keys()
click to toggle source
# File lib/sinatra/cookies.rb, line 192 def keys to_hash.keys end
length()
click to toggle source
# File lib/sinatra/cookies.rb, line 196 def length to_hash.length end
Also aliased as: size
merge(other, &block)
click to toggle source
# File lib/sinatra/cookies.rb, line 200 def merge(other, &block) to_hash.merge(other, &block) end
merge!(other) { |key, self, value| ... }
click to toggle source
# File lib/sinatra/cookies.rb, line 204 def merge!(other) other.each_pair do |key, value| if block_given? and include? key self[key] = yield(key.to_s, self[key], value) else self[key] = value end end end
Also aliased as: update
rassoc(value)
click to toggle source
# File lib/sinatra/cookies.rb, line 214 def rassoc(value) to_hash.rassoc(value) end
rehash()
click to toggle source
# File lib/sinatra/cookies.rb, line 218 def rehash response_cookies.rehash request_cookies.rehash self end
reject(&block)
click to toggle source
# File lib/sinatra/cookies.rb, line 224 def reject(&block) return enum_for(__method__) unless block_given? to_hash.reject(&block) end
replace(other)
click to toggle source
# File lib/sinatra/cookies.rb, line 231 def replace(other) select! { |k, v| other.include?(k) or other.include?(k.to_s) } merge! other end
select(&block)
click to toggle source
# File lib/sinatra/cookies.rb, line 236 def select(&block) return enum_for(__method__) unless block_given? to_hash.select(&block) end
shift()
click to toggle source
# File lib/sinatra/cookies.rb, line 243 def shift key, value = to_hash.shift delete(key) [key, value] end
sort(&block)
click to toggle source
# File lib/sinatra/cookies.rb, line 251 def sort(&block) to_hash.sort(&block) end
to_a()
click to toggle source
# File lib/sinatra/cookies.rb, line 261 def to_a to_hash.to_a end
to_hash()
click to toggle source
# File lib/sinatra/cookies.rb, line 257 def to_hash request_cookies.merge(response_cookies) end
to_s()
click to toggle source
# File lib/sinatra/cookies.rb, line 265 def to_s to_hash.to_s end
values()
click to toggle source
# File lib/sinatra/cookies.rb, line 272 def values to_hash.values end
values_at(*list)
click to toggle source
# File lib/sinatra/cookies.rb, line 276 def values_at(*list) list.map { |k| self[k] } end
Private Instance Methods
deleted()
click to toggle source
# File lib/sinatra/cookies.rb, line 286 def deleted parse_response @deleted end
parse_response()
click to toggle source
# File lib/sinatra/cookies.rb, line 296 def parse_response string = @response['Set-Cookie'] return if @response_string == string hash = {} string.each_line do |line| key, value = line.split(';', 2).first.to_s.split('=', 2) next if key.nil? key = Rack::Utils.unescape(key) if line =~ /expires=Thu, 01[-\s]Jan[-\s]1970/ @deleted << key else @deleted.delete key hash[key] = value end end @response_hash.replace hash @response_string = string end
warn(message)
click to toggle source
Calls superclass method
# File lib/sinatra/cookies.rb, line 282 def warn(message) super "#{caller.first[/^[^:]:\d+:/]} warning: #{message}" end