このRuby on Rails helperには、次のメソッドがあります。
# Convert an 8-bit or 16-bit string to an array of big-endian words
# In 8-bit function, characters >255 have their hi-byte silently ignored.
def str2binb(str)
bin = []
mask = (1 << $chrsz) - 1
#for(var i = 0; i < str.length * $chrsz; i += $chrsz)
i = 0
while(i < str.length * $chrsz)
bin[i>>5] ||= 0
p 'i'
p i
p '$chrsz'
p $chrsz
p 'str[i / $chrsz]'
p str[i / $chrsz]
p 'mask'
p mask
bin[i>>5] |= (str[i / $chrsz] & mask) << (32 - $chrsz - i%32)
i += $chrsz
end
return bin
end
bin[i>>5] |= (str[i / $chrsz] & mask) << (32 - $chrsz - i%32)
実行すると、次の行でこのエラーが発生します。
ActionView::Template::Error (undefined method `&' for "J":String)
この例で がどのように使用されているかわかりません&
。このエラーを解決するにはどうすればよいですか? Rails 3.2.0 と Ruby 1.9.2 を使用しています。
ログ出力は次のとおりです。
"i"
0
"$chrsz"
8
"str[i / $chrsz]"
"J"
"mask"
255