Actions
Feature #18573
openObject#pack1
Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
Description
概要¶
String#unpack1 の逆の Object#pack1 が欲しい。
背景¶
Array#pack というメソッドがありますが、レシーバーの Array の要素数が 1 つしかないことが良くあります。
[codepoint].pack('U')
[digest].pack('m0')
[mail_body].pack('M')
[ip_address].pack('N')
標準添付ライブラリーなどを眺めてみてもチラホラあるようです。
ですが、このようなケースで変換対象のオブジェクトをわざわざ Array でくるまなくてはいけないというのは面倒な気もします。
提案¶
String#unpack に対して String#unpack1 というメソッドがありますが、
Array#pack に対する Object#pack1 というメソッドを提案します。
イメージとしては以下のコードのような感じです。
class Object
def pack1(template, option = {})
[self].pack(template, **option)
end
end
議論・課題¶
- Object で良いかどうかは議論の余地があろうかと思います
- メソッド名が pack1 で良いかはわかりませんが、他とかぶる可能性は低いかと思います
Actions