Class: BEncoder

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

Class Method Summary collapse

Class Method Details

.encode(object) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/bencoder.rb', line 2

def self.encode(object)
  case object
  when Symbol
    encode object.to_s
  when String
    "#{object.length}:#{object}"
  when Integer
    "i#{object}e"
  when Array
    encoded_content = object.inject("l") { |result, el| result += encode(el) }
    encoded_content += "e"
  when Hash
    encoded = object.inject("d") { |result, (k,v)| result += "#{encode(k.to_s)}#{encode(v)}" }
    encoded += "e"
  end
end