Ruby

Rails + ホスティング

つくるぶガイドブログ: 失敗しない Rails が動かせるホスティングサービス選びと環境構築 Amazon EC2でmod_rails環境を構築するサンプル ホスティングサービスでもRailsが利用できるようになるかも、な「Passenger」 いまどきのWebフレームワークを使える海…

gem でバージョンを指定してインストールする

RubyOnRails の場合 % gem install rails --version 1.2.6

ruby で cd コマンドを実行する

ruby スクリプト内で cd コマンドを利用すると、「command not found: cd」とエラーが表示される。 スクリプト内で、cd コマンドを実行するには、「cd hoge;」と記述するとエラーが表示されず、カレントディレクトリから移動ができる。 コマンド実行後は、ru…

時刻を任意のフォーマットで扱う

% irb irb(main):001:0> date = Time.now => Wed Apr 09 17:46:56 +0900 2008 irb(main):002:0> p date.strftime("%Y-%m-%d %H:%M:%S") "2008-04-09 17:46:56" => nil irb(main):003:0>

マッチしたファイル名を変更する

File.fnmatch が思ったように動かない。また、処理対象となるファイル名と数が特定されているので、下記の方法で逃げる。 #!/usr/bin/env ruby original_filename = Dir.glob("./*html") File.rename(original_filename[0], 'new.html') 実行結果。 % ls old…

URL からディレクトリ名だけを取得する

require 'uri' url = URI.parse('http://ja.wikipedia.org/dir/test/wiki/%E5%BD%B9%E6%89%80%E5%BA%83%E5%8F%B8') path = url.path.sub(/^(\/)/, '') p path.scan(/(.*?)\//) url = URI.parse('http://headlines.yahoo.co.jp/hl') path = url.path.sub(/^(\…

Ruby でメールを送る前に POP before SMTP を行う

Google で検索した結果上位をメモしておく。 net/smtp - メールの送信 net/pop - auth_only(address, port = 110, account, password)を確認

Net::SMTP の明示的なセッションの終了

セッションを終了するメールを送ったら Net::SMTP#finish を呼んでセッションを終了しなければいけません。 File のように GC 時に勝手に close されることもありません。いろいろなところで finish がないソースコードの例を見掛けますが、すべて誤りです。…

Net::SMTP でメールを送る

TMail をあきらめて、原始的に Net::SMTP を利用してメールを送る。下記のページを参考にして実装してみる。 RubyでMailを 簡単なMail送信スクリプト メールの送信テストは終えたので、次の課題は、 POP before SMTP の実装 添付ファイルを行う

xargs とパイプの処理

スクリプト内で、コマンドを実行した場合のパフォーマンスについて書かれたブログがあったような気がして探した。 該当するブログが見つかったが、自分の思っていた内容ではなかった。しかし、引数を渡して処理を行うことに参考になるのかもしれないと思い、…

setup.rb の設定を変更してみる

% pwd /home/littlebuddha/local/lib/ruby/gem/gems/tmail-1.2.2 % ruby setup.rb config --prefix=$HOME/local prefix /home/littlebangkok/local bindir /home/littlebangkok/local/bin libdir /home/littlebangkok/local/lib datadir /home/littlebangkok…

さくらインターネットにインストールしたい Tmail の setup.rb の設定を見てみる

show 現在の設定を表示する setup.rb ユーザマニュアル % pwd /home/littlebuddha/local/lib/ruby/gem/gems/tmail-1.2.2 % ruby setup.rb show prefix /usr/local bindir /usr/local/bin libdir /usr/local/lib datadir /usr/local/share mandir /usr/local/…

setup.rb のマニュアルを読んでみる

setup.rb/install.rb は Ruby プログラムのパッケージを対象としたコマンドラインベースのインストーラです。 install.rb は単体パッケージ用のインストーラです。ひとまとまりの Ruby スクリプト、拡張モジュール、コマンド、データをインストールできます…

さくらインターネットに Tmail をインストールすると失敗する

すでにさくらインターネットのサーバーには、$HOME ディレクトリ下に gem をインストールしている。 しかし、gem はシステム側のディレクトリにインストールを試みて失敗しているようだ。 % gem install tmail Need to update 11 gems from http://gems.ruby…

文字列の連結とそのコスト

結論は変数を含む複数の文字列の結合に関しては式展開を使うのがよいです。 文字列の連結 文字列の連結、その2

URL をパースする

参考 : URI (Uniform Resource Identifier) サポートライブラリ % irb irb(main):002:0> require uri => true irb(main):004:0> url = URI.parse("http://www.example.co.jp/dir/test.php?q=3") => #<URI::HTTP:0x155cfc0 URL:http://www.example.co.jp/dir/test.php?q=3> irb(main):006:0> url.scheme => "http" irb(main):007:0></uri::http:0x155cfc0>…

サンプルコード

require 'open-uri' open('http://www.example.com/', { :method => :post, :body => 'a=123&b=456', 'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12', 'Accept' => 'text/xml,application/x…

オリジナルのファイルを取り戻す

% cp open-uri.rb ~/ % sudo patch open-uri.rb ~/diff-1.8 patching file open-uri.rb Reversed (or previously applied) patch detected! Assume -R? [n] y % mv open-uri.rb.orig open-uri-post.rb パッチを戻した後にできた open-uri.rb.orig がパッチを…

open-uri に post メソッドを使えるようにパッチを当てる

参考にしたのは、下記のサイト。 kitajさんの記事で知ったopen-uri-post.rbが素敵です。 ちょっとコードを足せば機能を補充できる動的言語ならではの解決策。 でも、RESTなWeb APIをペシペシ叩きたくなって、PUTやらDELETEやらHEADやらをサポートしようと改…

古いバージョンの Rails でプロジェクトを作成する

いつも忘れてしまうので、備忘録として記録。 % rails _1.2.6_ myproject --database=mysql

? の特殊な使い方

(?= ) 先読み(lookahead)。パターンによる位置指定(幅を持たない) (?=re1)re2 という表現は、re1 と re2 両方にマッチするものにマッチする正規表現です。 re1(?=re2) という表現は、後に re2 とマッチする文字列が続く、正規表現 re1 です。 p /foo(?=bar)/…

全角文字に挟まれた半角スペースを削除するには?

全角文字に挟まれた半角スペースを削除するには? 36618 sinara blade こんな感じでどうかな。 str.gsub!(/([^ ]) +(?=([^ ]))/) { $1.size > 1 && $2.size > 1 ? $1 : $& } 36628 sinara blade おお、なるほど。R 以外の一文字というは (?!R). と書けるとい…

スペースを除く空白にマッチさせる

\s 空白文字。[ \t\n\r\f] と同じ

改行を除く任意の 1 文字にマッチさせる

. 改行を除く任意の 1 文字にマッチします。正規表現オプション m (複数行モード。正規表現リテラルを参照)では、改行を含む任意の 1 文字にマッチします。 多バイト文字に対応した正規表現では、その 1 文字(1 バイトでなく)とマッチします。 よく使う用例 :…

マッチ対象にせずにグループ化させる

(?: ) 後方参照を伴わないグループ化。つまり \1、\2 (あるいは $1、$2)などの対象にはならず、単純なグループ化の用途で使用します。 /(abc)/ =~ "abc" p $1 => "abc" /(?:abc)/ =~ "abc" p $1 => nil

YAMLメモ - 配列とハッシュをお互いにネストさせる

プログラマーのための YAML 入門 (初級編) 基本的な書き方 - 配列とハッシュのネスト 配列とハッシュはお互いにネストさせることができます。 次の例は、配列の中にハッシュをネストさせる例です。 - name: Hanako email: flower@mail.com - name: Sumire em…

Rubyのマニュアルはひどい

Ruby のコミュニティはマニュアルを整備する気はないのかな…。 CSV::Writer - Rubyリファレンスマニュアル 日本で開発がされているのに、英語のマニュアルの方が充実しているのは何故…。 Ruby Standard Library Documentation

Web::Scraper と scrapi をインストールする

% sudo cpan install Web::Scraper % sudo gem install scrapi

scrAPI

scrAPI Cheat Sheet ruby のスクレイピングツールキット scrAPI(参考)