Category Archives: Ruby - Page 2

[Ruby]文字コード変換(革命的?)

なんというか、Javaだと文字コードを変換する時、

new InputStreamReader(InputStream is, “文字コード”);

のようにオブジェクトを作成するが、
Rubyの場合はどうするのか?

そこで調べたところ、Kconvという標準クラスで文字コード変換できるみたいだ。

さぁ、試しにYahooを文字コード変換してみよう。

require ‘net/http’
require ‘kconv’

http = Net::HTTP.start(“www.yahoo.co.jp”, 80)
response = http.get(“/index.html”)
#EUC-JPに変換
puts Kconv.toeuc(response.body)

さぁ、実行!
・・・ん?あれ?文字化けしてる。
なんで?Yahooは、EUC-JPだよね?
そこで、Kconv.tosjisで表示してみたら、表示できた!

ということは?他の文字コードも?
試しにUTF-8のサイトもKconv.tosjisで表示してみたら、日本語で表示された!

どういうことだ?
サイトの文字コードは、どうでもよくてOSの文字コードを指定するってこと?
それ以外に考えられないしなぁ・・・。

まぁ、ひとまず良しとしよう。

[Ruby on Rails]情報整理しよう

さて、いろいろとかなりの速度で勉強してきたので、
そろそろ情報整理が必要になってきた。

・・・まぁ簡単に言うと「訳分からなくなってきた」だ。

では、Ruby on Railsについて整理する。

■インストール
RubyのWindows版インストーラを使用すれば楽勝w

[Ruby]完結!Rubyインストール(Windows版インストーラ)
http://blog.livedoor.jp/mikuriyahiroto/archives/50184129.html

■データベース作成
だいたいのWEBアプリケーションでデータベースを使用する。
それを前提に考えていく。その際に条件が一つ。

全テーブルに「id」というカラムを作成する。

■アプリケーション作成
コマンド一つでアプリケーションを作成することが出来る。

$ rails 作成するアプリ名

■データベース設定ファイル編集
$PROJECT_HOME/config/database.ymlをエディタで開き、
使用するデータベースとかユーザー名などを修正する。

と、ここまで勉強してきて現在引っかかってるのは、「WEBサーバ立ち上げ」だ。
Ruby on Rails独自のWEBサーバ「WEBrick」というのがあるのだが、
起動時にエラーが発生する。

今までの経験からすると、起動ディレクトリが違うか、プロジェクトの配置場所が
違うのだろう。
まぁ、これは今後調べるとして、とりあえず勉強したことが整理できた。

じゃ!また勉強だ!

[Ruby on Rails]どんな感じかな?

Rubyのインストールから、Ruby on Railsのインストールまで、前回紹介した。

[Ruby]完結!Rubyインストール(Windows版インストーラ)
http://blog.livedoor.jp/mikuriyahiroto/archives/50184129.html

では、それをふまえて、ちょっと参考文献を読んでみた。

(PDF)Ruby on RailsによるWebアプリケーションの高速開発
http://www-06.ibm.com/jp/developerworks/linux/050708/j_l-rubyrails.pdf

やはりWebアプリフレームワークというのは、どれもMVCに分かれるものなのか?
Struts(Java)と同じく、モデル、コントロール、ビューが存在する。

ふーん・・・ならイケるべ!

そんで?うーん・・・DB使用するのか。

データベースには、そこで条件が一つ。
全テーブルに「id」というカラムを絶対に作成すること。

ん?・・・・ん!??あれ??なんだ?
それで、コマンド打って終わり?
あ、プロジェクトが出来てるw

なかなか面白そうだな。
しかも、Ruby独自のWEBサーバ「WEBrick」なるものがついてるw

超うけるぅーー!!

[Ruby on Rails]WEBアプリできちゃったw

294c8c7c.pngさすが流行のフレームワークだ、と言いたくなるくらい楽勝に
WEBアプリケーションが作成できる。

これがフレームの基本なわけだから、超すごいっすw
さぁ、どうやって中身を作っていく?

[Ruby on Rails]WEBrick起動した

お、きた。
なんだ、WEBrickの起動コマンドが違ってたんだ。

$ rails sample_project
$ cd sample_project
$ ruby ./script/server
=> Booting WEBrick…
=> Rails application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with –help for options
[2006-02-21 02:13:52] INFO WEBrick 1.3.1
[2006-02-21 02:13:52] INFO ruby 1.8.2 (2004-12-25) [i386-mswin32]
[2006-02-21 02:13:52] INFO WEBrick::HTTPServer#start: pid=2856 port=3000

さぁ、ブラウザを立ち上げ接続だ!

http://localhost:3000

きたぁー!これは簡単だw
まぁ、Apacheとかに組み込む場合もあるだろうが、ひとまずWEBrickで勉強しよう!

[Ruby]HTMLパーサーを作ろう4回目

Aタグ切取りメソッドの引数を全文から1行に修正したバージョン。
これで、他の処理も同時に行なうことが出来る。

def a_tag_cut(line)
# パターンにマッチ(Aタグ)したリンクを切り取り
if /<a\s+.*href+\s*=\s*["']*(\S*)["']*(\s+|>)/i =~ line
href = $1
# 末尾にクォーテーションが存在したら、それを切り取る
if /(\S+)["']+/ =~ href
href = $1
end

if href != nil && href.length > 0
# 切り取ったリンクを配列に格納する
return href
end
end
end

def create_html(html)
book = html

#HTMLを1行1タグに変換
book = book.gsub(/\n/, “”)
book = book.gsub(/>/, “>\n”)
book = book.gsub(/</, “\n<”)

return book.split(“\n”)
end

html_arr = create_html(ARGF.read)
for line in html_arr
line = a_tag_cut(line)
if line != nil
puts line
end
end

[Ruby]完結!Rubyインストール(Windows版インストーラ)

きた!やっと見つかったWindows版インストーラ

満足せる豚。眠たげなポチ。
http://blog.livedoor.jp/zep716/archives/24182409.html

RubyGemsのインストールが面倒だったが、これだと勝手にインストールしてくれる。
全てアンインストールして、再インストールしちゃったw

すばらしい!

[Ruby]HTMLパーサーを作ろう3回目

よし、できた!
Rubyの本を買って、正規表現や配列などを学んだ。
そしたら、それなりのモノが出来たと思う。

とりあえず、前回の処理をメソッド分けした。
・HTMLを1行1タグに変換するメソッド(create_html)
・Aタグを見つけて、リンクを取得するメソッド(a_tag_cut)

問題なのは、「正規表現」だな。
正規表現である程度切り取ることが出来れば、どのプログラム言語でも
簡単に処理可能ってとこ。

a_tag_cutメソッドは、HTML全文を引数として与えているけど、
これからHTMLをパースするメソッドを増やしていくわけだし、
全文より1行与えたほうがいいかな?
よし、修正しよう!

def a_tag_cut(book)
href_arr = Array.new

count = 0

#改行区切りでArrayに格納し、for文で回す
array = book.split(“\n”)
array.each do |line|
# パターンにマッチ(Aタグ)したリンクを切り取り
if /<a\s+.*href+\s*=\s*["']*(\S*)["']*(\s+|>)/i =~ line
href = $1
# 末尾にクォーテーションが存在したら、それを切り取る
if /(\S+)["']+/ =~ href
href = $1
end

if href != nil && href.length > 0
# 切り取ったリンクを配列に格納する
href_arr[count] = href
count += 1
end
end
end

return href_arr
end

def create_html(html)
book = html

#HTMLを1行1タグに変換
book = book.gsub(/\n/, “”)
book = book.gsub(/>/, “>\n”)
book = book.gsub(/</, “\n<”)
end

result_arr = a_tag_cut(create_html(ARGF.read))
for val in result_arr
puts “LINK : ” + val
end

[Ruby]URLに接続してHTML取得

モジュールを使用して、ネットに接続し、HTML取得する
http://www.ruby-lang.org/ja/man/?cmd=view;name=net%2Fhttp

いやー、やっと気づいた。
$RUBY_HOME/lib/の中にデフォルトパッケージがそのまま配置してあるんじゃんw
これで、前進前進♪

[Ruby]HTMLパーサーを作ろう2回目

はい、こんにちは。
前回は、HTMLを1行1タグへ変換しましたが、今回はAタグの切り出しを
行ないたいと思います。

特に変わった点としては、for文をeach doに変更したところ、
正規表現部分を追加したところなどです。

#引数からファイルを受け取って、Stringにする
book = ARGF.read
book = book.gsub(/\n/, “”)
book = book.gsub(/>/, “>\n”)
book = book.gsub(/

#改行区切りでArrayに格納し、for文で回す
array = book.split(“\n”)
array.each do |line|
# puts line
if /<.*?>/i =~ line && /<a/i =~ line
puts line
end
end

正規表現は、「タグであり、かつAタグのみ抽出」です。
これだと、もし「< A href...」とかなっていたら、取得できないなぁ
その辺りは後で考えるとして、とりあえず先へ進むか・・・。