Class: PHPSession::Encoder

Inherits:
Object
  • Object
show all
Defined in:
lib/php_session/encoder.rb

Defined Under Namespace

Classes: ArraySerializer, BooleanSerializer, FloatSerializer, HashSerializer, IntegerSerializer, NilSerializer, Serializer, StringSerializer, StructSerializer

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(encoding, encoding_option) ⇒ Encoder

Returns a new instance of Encoder.



10
11
12
13
# File 'lib/php_session/encoder.rb', line 10

def initialize(encoding, encoding_option)
  @encoding = encoding
  @encoding_option = encoding_option
end

Instance Attribute Details

#encodingObject (readonly)

Returns the value of attribute encoding.



4
5
6
# File 'lib/php_session/encoder.rb', line 4

def encoding
  @encoding
end

#encoding_optionObject (readonly)

Returns the value of attribute encoding_option.



4
5
6
# File 'lib/php_session/encoder.rb', line 4

def encoding_option
  @encoding_option
end

Class Method Details

.encode(hash, encoding = nil, encoding_option = {}) ⇒ Object



5
6
7
8
# File 'lib/php_session/encoder.rb', line 5

def self.encode(hash, encoding = nil, encoding_option = {})
  encoding = Encoding.default_external if encoding.nil?
  self.new(encoding, encoding_option).encode(hash)
end

Instance Method Details

#encode(hash) ⇒ Object



15
16
17
18
19
20
# File 'lib/php_session/encoder.rb', line 15

def encode(hash)
  serialized = hash.map do|k,v|
    "#{k.to_s}|#{serialize(v)}"
  end
  serialized.join
end

#serialize(value) ⇒ Object



22
23
24
# File 'lib/php_session/encoder.rb', line 22

def serialize(value)
  get_serializer(value.class).serialize(value)
end