カテゴリー : Ruby

[Ruby on Rails] erb を haml に変換する「erb2haml」

Ruby on Rails にて、erb ファイルから haml ファイルに変換するなら erb2haml という Gem が便利なので、オススメです。

# Gemfile:
group :development do
  gem 'erb2haml'
end

下記のコマンドで、erb ファイルを全て haml ファイルに変換してくれます。

$ rake haml:convert_erbs
Looking for ERB files to convert to Haml...
Converting: app/views/layouts/application.html.erb... Done!

ちなみに、変換後も元の erb ファイルは残ったままなので、必要なくなったら削除しておきましょう。

以上です。

【参考】

Railsでerbをhamlに変換する – komagata はてなブックマーク - Railsでerbをhamlに変換する - komagata

[Ruby] bundle install で nokogiri のインストール中に “libiconv is missing” エラー発生

bundle install で nokogiri のインストール中に “libiconv is missing” という、libiconv が見つからないエラーが発生しました。

続きを読む

[Ruby on Rails] アプリ作成時に Test::Unit のファイルを作成しない方法

Ruby on Rails 3.2 にて、アプリケーション作成時に Test::Unit のファイルを作成しない場合は -T オプションを付ければOKです。

$ rails --help
Usage:
  rails new APP_PATH [options]
 
Options:
  -T, [--skip-test-unit]         # Skip Test::Unit files

使いどころは、RSpec を使う場合などの Test::Unit が要らないときぐらいですかね。

■ (例)アプリ名 codenote を Test::Unit 無しで、作成するコマンド

$ rails new codenote -T

以上です。

【参考】

Rails3でTDD環境を整えたメモ | ひげろぐ はてなブックマーク - Rails3でTDD環境を整えたメモ | ひげろぐ

[Ruby] Nokogiri でスクレイピングするときに参考になった記事まとめ

Nokogiri でスクレイピングするときに参考になった記事をまとめてみました。

・公式:Nokogiri はてなブックマーク - Nokogiri

Module: Nokogiri はてなブックマーク - Module: Nokogiri

・インストール方法:Nokogiri はてなブックマーク - Nokogiri

・チュートリアル:Nokogiri はてなブックマーク - Nokogiri
 

■ Nokogiri の Tips

スクレイピングのためのNokogiri利用メモ – それはそれ。これはこれ。 はてなブックマーク - スクレイピングのためのNokogiri利用メモ - それはそれ。これはこれ。

document/ruby nokogiri スクレイピング – weiki (作業ログやそのまとめ) はてなブックマーク - document/ruby nokogiri スクレイピング - weiki (作業ログやそのまとめ)
 

■ 実際にスクレイピングしてるエントリ

Ruby + Nokogiri で 気象庁スクレイピング | cockscomb.info はてなブックマーク - Ruby + Nokogiri で 気象庁スクレイピング | cockscomb.info

[悪徳商法?支店]: [Ruby] Nokogiriで、Wikipediaの記事をパースする はてなブックマーク - [悪徳商法?支店]: [Ruby] Nokogiriで、Wikipediaの記事をパースする
 

以上です。

[Ruby] Nokogiri のインストール方法 [Mac版]

Ruby でスクレイピング(scraping) するために Nokogiri を Mac にインストールしました。

・公式:Nokogiri はてなブックマーク - Nokogiri

インストールの手順は、公式サイトの「Installing Nokogiri」を参考にしました。

・インストール方法:Installing Nokogiri – Nokogiri はてなブックマーク - Nokogiri

Nokogiri のインストール手順

■ 環境

・Mac OS X Lion
・homebrew 0.9

brew install libxml2 libxslt
brew link libxml2 libxslt
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
tar xvfz libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure --prefix=/usr/local/Cellar/libiconv/1.13.1
make
sudo make install
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 
                        --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib 
                        --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 
                        --with-iconv-include=/usr/local/Cellar/libiconv/1.13.1/include 
                        --with-iconv-lib=/usr/local/Cellar/libiconv/1.13.1/lib

以上です。

[Ruby] Shinjuku.rb #3 忘備録

Ruby の勉強会、Shinjuku.rb #3 に行ってきたので、メモ。

Shinjuku.rb #3 on Zusaar はてなブックマーク - Shinjuku.rb #3 on Zusaar

(3)Shinjuku.rb – Google グループ はてなブックマーク - (3)Shinjuku.rb - Google グループ
 

■ 近藤さん @udzura https://twitter.com/#!/udzura 「Padrino framework が簡単というのは嘘」

Padrino という、Sinatraベースのフレームワークのお話。

Padrino で素敵なウェブ開発を – Padrino Ruby Web Framework はてなブックマーク - Padrino で素敵なウェブ開発を - Padrino Ruby Web Framework
 

Spork 0.7.3 はてなブックマーク - Spork 0.7.3

■ 岡部さん @foggs2 https://twitter.com/#!/foggs2

VisualuRuby計画(仮称) はてなブックマーク - VisualuRuby計画(仮称)

YAMLの発音は?

YAML はヤムルって発音するのか – foldrrの日記 はてなブックマーク - YAML はヤムルって発音するのか - foldrrの日記

YAMLの読みはヤメル? : mwSoft blog はてなブックマーク - YAMLの読みはヤメル? : mwSoft blog
 

■ 珍田さん @ckazu https://twitter.com/#!/ckazu

・「コードレビューを支える技術」という本が欲しい!

・遺伝的アルゴリズムを使って、FizzBuzz問題を解くというお話

■ @joker1007 https://twitter.com/#!/joker1007 「ジョジョで分かる頭じゃなく精神で理解するアジャイル」

■ 河野さん @jugyo https://twitter.com/#!/jugyo 「mocktra 等の紹介」

webmock + sinatra な mocktra の紹介。

jugyo/mocktra はてなブックマーク - jugyo/mocktra

webmock

bblimke/webmock はてなブックマーク - bblimke/webmock

POST可能なRubyのNet::HTTP偽装テストライブラリWebMock+ – きたももんががきたん。 はてなブックマーク - POST可能なRubyのNet::HTTP偽装テストライブラリWebMock+ - きたももんががきたん。

Rails3 レシピブック の読書会

■「第1 章 Rails の基本」の「004 DB 接続を設定する」

database.yml の中にERBを書ける。

Knockin’on TechLog » Blog Archive » Railsのdatabase.ymlはERBを通される はてなブックマーク - Knockin'on TechLog » Blog Archive » Railsのdatabase.ymlはERBを通される

database.ymlにERBが使えます&alias_method_chain はてなブックマーク - database.ymlにERBが使えます&alias_method_chain

パスワードをdatabase.ymlの外に追い出す方法 – こせきの技術日記 はてなブックマーク - パスワードをdatabase.ymlの外に追い出す方法 - こせきの技術日記

YAML の アンカーとエイリアス について。

Rubyist Magazine – プログラマーのための YAML 入門 (初級編) はてなブックマーク - Rubyist Magazine - プログラマーのための YAML 入門 (初級編)

■「005 モデル・ビュー・コントローラを自動生成する」

・rails g scaffold や rails g model でモデル作成するとき、コマンド上ではテーブル名やカラム名ぐらいを最低限定義して、あとで migration ファイルを修正する

・初回のDB作成は rake db:setup でサクっとやっちゃう

・scaffold を使うとき/使わないときの違いは?

→CRUDならscaffoldを使う。その際、Viewは全て捨てる。

以上です。

[Ruby on Rails] Facebook外でのアクセスをFacebookページ内のアプリヘリダイレクトさせる方法

Ruby on Rails にて、Facebookアプリ外でのアクセスをFacebookページ内のアプリヘリダイレクトさせる処理を書いてみました。

before_filter :check_access_from_facebook
 
def check_access_from_facebook
  redirect_to MyRailsApp::Application.config.facebook_app_url if params[:signed_request].nil?
end

Facebookアプリは、Facebookのサイト内でアクセスがあった場合、必ずリクエストパラメータに signed_request が存在します。

なので、これがない場合はFacebook外でのアクセスというように判断して、Facebookページ内のアプリへリダイレクトさせるようにしました。

signed_request から取得したパラメータに依存した実装になっていると、Facebook外で単独のWebアプリとして正常に動作しないので、今回はリダイレクトさせることで解決しました。

以上です。

【参考】

Railsのcontrollerやviewの中で現在処理中のURLを知る方法: request.url – memo.yomukaku.net はてなブックマーク - Railsのcontrollerやviewの中で現在処理中のURLを知る方法: request.url - memo.yomukaku.net

[Ruby] User Agent(ユーザーエージェント)を取得する方法

Ruby にて、User Agent(ユーザーエージェント)を取得する方法を調べたのでメモ。

User Agent自体は、リクエストパラメータの中に含まれています。

iPhone のユーザーエージェントの例

request.env["HTTP_USER_AGENT"]
#=> Mozilla/5.0 (iPod; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3

User Agent を調べることにより、例えば iPhone や Android などのスマートフォンからのアクセスを、スマフォ専用のページにリダイレクトすることができたりします。

スマフォ専用サイトに転送するフィルターのサンプル (Ruby on Rails)

before_filter :check_user_agent_for_mobile
 
def check_user_agent_for_mobile
  ua = request.env["HTTP_USER_AGENT"]
  if(ua.include?('Mobile') || ua.include?('Android'))
    redirect_to  :controller => "mobile", :action  => "index"
  end
end

iPhone/iPad/iPod Touch には全て ‘Mobile’ という文字列が、Android端末には ‘Android’ の文字列がユーザーエージェントに含まれているので、このように書いてみました。

User Agent については下記のサイトに詳しくまとめられています。

userAgent一覧/ユーザーエージェント一覧

以上です。


参考情報

Android携帯、タブレットをUser Agentで区別するRubyの正規表現|WEBデザイン Tips

Mac OS X Lion に Homebrew で Vim をインストールする方法

Mac OS X Lion に Homebrew で vim を再インストールする方法をご紹介します。

続きを読む

[Ruby on Rails 3.1] lib ディレクトリ以下に自作ライブラリを置いて autoload を有効にする設定方法

Ruby on Rails 3.1 にて、lib ディレクトリ以下に自作ライブラリを置いて、オートロードする設定方法を調べたのでメモ。

Rails3 で autoload はデフォルトで無効になっているので、config/application.rb でオートロードを有効にしてやる必要があります。

■ config/application.rb:

# Custom directories with classes and modules you want to be autoloadable.
# config.autoload_paths += %W(#{config.root}/extras)
config.autoload_paths += %W(#{config.root}/lib)  # 追加
config.autoload_paths += Dir["#{config.root}/lib/**/"] # 追加

僕はこの設定で autoload が有効になりましたが、これでもダメな場合は、ここを参考にしてみるといいかも。

自作ライブラリをrequireするためにやったこと – 喉鳴らす未来に達し はてなブックマーク - 自作ライブラリをrequireするためにやったこと - 喉鳴らす未来に達し

以上です。

【参考】

Rails3でautoloadはデフォルトで無効になっている – INOHILOG はてなブックマーク - Rails3でautoloadはデフォルトで無効になっている - INOHILOG

Rails 3 Quicktip: Autoload lib directory including all subdirectories, avoid lazy loading はてなブックマーク - Rails 3 Quicktip: Autoload lib directory including all subdirectories, avoid lazy loading

Rails 3 autoload – Stack Overflow はてなブックマーク - Rails 3 autoload - Stack Overflow

Ruby/Ruby on Rails/libディレクトリとオートロードと自作ライブラリ – TOBY SOFT wiki はてなブックマーク - Ruby/Ruby on Rails/libディレクトリとオートロードと自作ライブラリ - TOBY SOFT wiki