HTTP でコンテンツを取得する

Ruby で HTTP を使ってコンテンツを取得したいです。open-uri というのが使えそうです。open-uri を使うと Kernel.open メソッド(?) の引数に URI が指定できるようになり、local のファイルと同じようにリモートコンテンツが扱えたりするようです。 #!/usr/…

irb で文法確認

ちょっとした文法を確認したい場合は irb を使うといいみたいです。perl では perlsh というのがありますね。 $ irb irb(main):001:0> include Math => Object irb(main):002:0> sqrt(10000) => 100.0

Ruby で YAML

Ruby で YAML を処理したいです。Ruby で YAML を使うには require 'yaml' としてからコードを書いていけば良いようです。Perl では use YAML、などですね。Ruby では 外部ライブラリの読み込みは require を使うようです。準備のためにワインを表現した Win…

Ruby で grep

#!/usr/local/bin/ruby class Grep def initialize(string) @string = string || '' end def grep(pattern) @string if pattern.match(@string) end end pattern, file = Regexp.new(ARGV[0]), ARGV[1] File.open(file).each do |line| g = Grep.new(line) g…

るびおです。

id:rubyco さんに同じく Ruby を勉強しています。よろしくお願いします。

Template Method パターン

id:hyuki さんのデザインパターン本から Adapter パターンを移植してみます。 #!/usr/local/bin/ruby class AbstractDisplay def display self.open 5.times do self.print end self.close end end class CharDisplay < AbstractDisplay def initialize(ch) …

initialize に渡された値を自動的にインスタンス変数にする

みたいなことは ruby ではどうやるのでしょう。 class Player def initialize(name, age) @name = name @age = age end endというインスタンス変数に引数を丸投げするコンストラクタをよく書くのですが、いつも書くのが面倒です。

Adapter パターン

id:hyuki さんのデザインパターン本から Adapter パターンを移植してみます。まずは継承を使った Adapter です。書籍での interface Print は使いません。 #!/usr/local/bin/ruby class Banner def initialize(string) @string = string end def show_with_p…