Ruby 1.8 は本書では対象としてないので、ところどころにある「Ruby 1.9 以降では」という記述は要らないと思う。
p.62 「5番目の要素をつくると」は「6番目の要素をつくると」の誤り?
# -*- coding: utf-8 -*- | |
# Postfix はソースが公開されてはいるもののリポジトリが公開されていない | |
# ので、公開されている tarball から git リポジトリを作るためのスクリプ | |
# トを作ってみました。 | |
# | |
# 次の場所から、postfix-*.tar.gz を持ってきて、どっかに置いておきます。 | |
# * ftp://ftp.porcupine.org/mirrors/project-history/postfix/official/ | |
# * ftp://ftp.porcupine.org/mirrors/postfix-release/official/ | |
# tar.gz ファイルの日付の古い順に処理するので、ファイルの日付までコピー |
default partial alphanumeric_keys modifier_keys | |
xkb_symbols "tmtms" { | |
key <AE00> { [ Escape ] }; | |
key <TLDE> { [ Escape ] }; | |
key <HKTG> { [ Escape ] }; | |
key <AE01> { [ 1, exclam ] }; | |
key <AE02> { [ 2, at ] }; | |
key <AE03> { [ 3, numbersign ] }; | |
key <AE04> { [ 4, dollar ] }; |
require 'rack/utils' | |
require 'rack/protection/path_traversal' | |
module Rack | |
module Utils | |
orig_normalize_params_singleton = method(:normalize_params) | |
define_singleton_method(:normalize_params) do |params, name, *args| | |
return unless name && name.valid_encoding? | |
orig_normalize_params_singleton.call(params, name, *args) | |
end |
#!/usr/local/bin/ruby | |
require 'fileutils' | |
system 'adb pull /system/framework/telephony-common.jar' or raise 'adb pull' | |
FileUtils.cp 'telephony-common.jar', 'telephony-common.jar.orig', :preserve=>true | |
system 'unzip telephony-common.jar classes.dex' or raise 'unzip' | |
system 'java -jar baksmali-1.4.2.jar classes.dex' or raise 'java baksmali' | |
file = 'out/com/android/internal/telephony/gsm/GsmServiceStateTracker.smali' | |
src = <<EOS | |
:pswitch_data_20 |
$><<('%04d'%$*).chars.zip(%w{千 百 十}).join.gsub(/1(.)|0.?|(\d)/){$2?'0一二三四五六七八九'[$2.to_i]:$1} |
% ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [i686-linux]
次のスクリプトを実行すると
# coding: utf-8
Encoding.default_external = 'cp932'
Encoding.default_internal = 'utf-8'
File.open('cp932.txt', 'r').read
# -*- coding: utf-8 -*- | |
class VendingMachine | |
attr_reader :total_money | |
class Drink | |
@hash = {} | |
attr_reader :id, :price | |
def initialize(id, price) | |
@id, @price = id, price |