Что противоположно `unpack (" m ")`? - PullRequest
0 голосов
/ 06 февраля 2011

Я пытаюсь выяснить, как закодировать cookie-файл сеанса аналогично подписанному запросу Facebook .

Образец runwithfriends Facebook реализует base64_url_decode и base64_url_decode в Python .

Я нашел простую реализацию base64_url_decode:

def base64_url_decode(string)
  "#{string}==".tr("-_", "+/").unpack("m")[0]
end

Как реализовать base64_url_encode без require 'base64'. (Я полагаю, что лучше сделать это без require 'base64', верно?)

По сути, что является противоположностью unpack("m")?

ruby-1.9.2-p0 > "aGVsbG8sIG1ycyB0ZWFs\012".unpack("m")
 => ["hello, mrs teal"] 

Ответы [ 2 ]

3 голосов
/ 06 февраля 2011

Просмотр источника Base64.encode64 из документации выход:

# File base64.rb, line 37
def encode64(bin)
  [bin].pack("m")
end

Да, противоположность unpack равна pack.

1 голос
/ 06 февраля 2011

что противоположно распаковке ("м")?

Конечно, это pack("m")? Или это вопрос с подвохом?

["hello, mrs teal"].pack("m") # => "aGVsbG8sIG1ycyB0ZWFs\n"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...