class PHPSession

Constants

VERSION

Attributes

data[R]

Public Class Methods

new(option = {}) click to toggle source
# File lib/php_session.rb, line 22
def initialize(option = {})
  default_option = {
    :store_engine => :file,

    :internal_encoding => Encoding.default_internal,
    :external_encoding => Encoding.default_external,
    :encoding_option => {},
  }
  @option = default_option.merge(option)

  store_engine_class = self.class.store_engine_class_of(@option[:store_engine])

  @store_engine = store_engine_class.new(@option)
end
register_store_engine(engine_name, klass) click to toggle source
# File lib/php_session.rb, line 10
def self.register_store_engine(engine_name, klass)
  @engines ||= {}
  @engines[engine_name] = klass
end
store_engine_class_of(engine_name) click to toggle source
# File lib/php_session.rb, line 15
def self.store_engine_class_of(engine_name)
  store_engine = @engines[engine_name]
  raise PHPSession::Errors, "unknown sotre engine: #{engine_name}" unless store_engine

  store_engine
end

Public Instance Methods

destroy(session_id) click to toggle source
# File lib/php_session.rb, line 42
def destroy(session_id)
  @store_engine.destroy(session_id)
end
exists?(session_id) click to toggle source
# File lib/php_session.rb, line 51
def exists?(session_id)
  @store_engine.exists?(session_id)
end
load(session_id) click to toggle source
# File lib/php_session.rb, line 37
def load(session_id)
  serialized_session = @store_engine.load(session_id)
  Decoder.decode(serialized_session, @option[:internal_encoding], @option[:encoding_option]) || {}
end
save(session_id, data) click to toggle source
# File lib/php_session.rb, line 46
def save(session_id, data)
  serialized_session = Encoder.encode(data, @option[:external_encoding], @option[:encoding_option])
  @store_engine.save(session_id, serialized_session)
end