カテゴリー : Ruby

[Ruby] 文字列と配列の変換方法

Rubyで、文字列を配列、配列を文字列に変換する方法をそれぞれ調べたのでメモ。

■ 文字列を配列に変換する方法

文字列を配列に変換するには、splitを使います。

"Ruby on Rails".split(" ")
=> ["Ruby", "on", "Rails"]

■ 配列を文字列に変換する方法

配列を文字列に変換するには、joinを使います。

["Ruby", "on", "Rails"].join(",")
=> "Ruby,on,Rails"

以上です。

【参考】

Ruby/文字列を配列に変換する方法(逆も) – TOBY SOFT wiki はてなブックマーク - Ruby/文字列を配列に変換する方法(逆も) - TOBY SOFT wiki

文字列を分割する – 文字列(String)クラス – Ruby入門 はてなブックマーク - 文字列を分割する - 文字列(String)クラス - Ruby入門

[Ruby] RVM環境での sudo は rvmsudo を使う

RVM 上に構築した Ruby on Rails で WEBrick サーバを 443 Port 指定で起動するために sudo で実行したところエラーが発生して、解決した話をご紹介します。

続きを読む

[RVM][Ruby] ERROR: Loading command: install (LoadError) cannot load such file — zlib、ERROR: While executing gem … (NameError) uninitialized constant Gem::Commands::InstallCommand

Mac に RVM で Ruby の開発環境を整えて、いざ gem をインストールしようとしたらエラーが発生しました。

■ エラー内容

$ gem install heroku
ERROR:  Loading command: install (LoadError)
    cannot load such file -- zlib
ERROR:  While executing gem ... (NameError)
    uninitialized constant Gem::Commands::InstallCommand

下記のようなコマンドで Ruby をインストールしたのが原因で zlib への Path が通らなかったみたい。

rvm install 1.9.3 -C \
--with-readline-dir=$rvm_path/usr \
--with-iconv-dir=$rvm_path/usr \
--with-zlib-dir=$rvm_path/usr \
--with-openssl-dir=$rvm_path/usr

-C オプションでPathとか指定せずに、シンプルにインストールすれば上手くいった。

rvm install 1.9.3

原因はちゃんと分かってないけど、とりあえず良しとする。

RVM で インストール可能な Ruby バージョン一覧

Rubyのバージョン管理ツール RVM で インストール可能な Ruby バージョン一覧は、rvm list known コマンドで確認できます。

$ rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.6-head
[ruby-]1.8.7[-p357]
[ruby-]1.8.7-head
[ruby-]1.9.1-p378
[ruby-]1.9.1[-p431]
[ruby-]1.9.1-head
[ruby-]1.9.2-p180
[ruby-]1.9.2[-p290]
[ruby-]1.9.2-head
[ruby-]1.9.3-preview1
[ruby-]1.9.3-rc1
[ruby-]1.9.3[-p0]
[ruby-]1.9.3-head
ruby-head
 
# GoRuby
goruby
 
# JRuby
jruby-1.2.0
jruby-1.3.1
jruby-1.4.0
jruby-1.6.1
jruby-1.6.2
jruby-1.6.3
jruby-1.6.4
jruby-1.6.5
jruby-1.6.5.1
jruby-[1.6.6]
jruby-head
 
# Rubinius
rbx-1.0.1
rbx-1.1.1
rbx-1.2.3
rbx-1.2.4
rbx[-head]
rbx-2.0.testing
 
# Ruby Enterprise Edition
ree-1.8.6
ree[-1.8.7][-2012.01]
ree-1.8.6-head
ree-1.8.7-head
 
# Kiji
kiji
 
# MagLev
maglev[-head]
maglev-1.0.0
 
# Mac OS X Snow Leopard Or Newer
macruby[-0.10]
macruby-nightly
macruby-head
 
# IronRuby -- Not implemented yet.
ironruby-0.9.3
ironruby-1.0-rc2
ironruby-head

(一覧は 2012年2月8日時点のもの)

めっちゃあるなぁ。Rubyすごい。

[RVM] Rubyバージョン管理システムRVMのアンインストール(uninstall)方法

Rubyのバージョン管理システムRVM(Ruby Version Manager) をアンインストールする方法をご紹介します。

アンインストールはコマンドラインで下記のコマンド、

$ rvm implode

もしくは、

$ rvm seppuku

を実行するだけでOKです。

しかし、アンインストールするためのコマンド名に「切腹(seppuku)」を付けるネーミングセンスには脱帽です。
 

【参考】

[rvm]RVM seppuku して再インストールメモ | milligramme 3cc はてなブックマーク - [rvm]RVM seppuku して再インストールメモ | milligramme 3cc

[rvm]Rubyバージョン管理システムRVM再インストールメモ | milligramme 3cc はてなブックマーク - [rvm]Rubyバージョン管理システムRVM再インストールメモ | milligramme 3cc

[Ruby on Rails] フォームの submit ボタンを押した後に、確認用ダイアログを表示させる方法

Ruby on Rails 3.1 にて、form の submit ボタンを押した後に、確認用ダイアログを表示させる処理をご紹介します。

submit_tag に :confirm というパラメータでダイアログに表示させるメッセージを渡すだけでOKです。

submit_tag "Save", :confirm => "Are you sure?"
# => <input name='commit' type='submit' value='Save' data-confirm="Are you sure?" />

これで、submitボタンを押すと下記のようなダイアログが表示されます。

以上です。

参考情報

[Ruby on Rails] ERB 内で URLエンコード(url_encode)

Ruby on Rails の ERB 内にて、URL エンコードする方法をご紹介します。

URL エンコード

ERB で URL エンコードするには ERB::Util.url_encode メソッドを利用します。

<%= "http://search.example.com/?q=" + url_encode(" 日本語") %>
#=> http://search.example.com/?q=%E6%97%A5%E6%9C%AC%E8%AA%9E

url_encodeメソッドの短縮形として、uメソッドも用意されています。

<%= "http://search.example.com/?q=" + u(" 日本語") %>
#=> http://search.example.com/?q=%E6%97%A5%E6%9C%AC%E8%AA%9E

以上です。

【参考】

Module: ERB::Util はてなブックマーク - Module: ERB::Util

Ruby on RailsでURLエンコード・デコードする はてなブックマーク - Ruby on RailsでURLエンコード・デコードする

RailsでURIエンコードする方法 – OneRingToFind はてなブックマーク - RailsでURIエンコードする方法 - OneRingToFind

Ruby Advent Calendar jp: 2011 から読みたい記事だけまとめ

Ruby Advent Calendar jp: 2011 から個人的に読みたい記事だけまとめてみました。

まとめたのが良記事とかではなく、個人的なフィルタが掛かっているだけです。

全部読みたい方は下記のATNDからリンクを辿って下さい。

・参考:Ruby Advent Calendar jp: 2011 : ATND はてなブックマーク - Ruby Advent Calendar jp: 2011 : ATND

RubySpec を走らせる — Gist はてなブックマーク - RubySpec を走らせる — Gist

32nd Blogger: いまこそ Ruby の力じゃ! Capybara を使え!!! はてなブックマーク - 32nd Blogger: いまこそ Ruby の力じゃ! Capybara を使え!!!

RubyデーモンでTwitterバルス! – TrinityT’s LABO はてなブックマーク - RubyデーモンでTwitterバルス! - TrinityT’s LABO

text.ssig33.com – Rails の Ajax は過渡的なもので注意が必要だ はてなブックマーク - text.ssig33.com - Rails の Ajax は過渡的なもので注意が必要だ

RubyGemsはrequireの裏で何をやっているのか? – おんがえしの日記 はてなブックマーク - RubyGemsはrequireの裏で何をやっているのか? - おんがえしの日記

ActiveSupportを読んでみよう & テストコードに感謝する – joker1007の日記 はてなブックマーク - ActiveSupportを読んでみよう & テストコードに感謝する - joker1007の日記

2011-12-15 – 日々是鍛練 はてなブックマーク - 2011-12-15 - 日々是鍛練

Rubyの拡張ライブラリを作ってみよう! – ser1zw::diary はてなブックマーク - Rubyの拡張ライブラリを作ってみよう! - ser1zw::diary

Rubyのnilはおともだち – ゆとRubyist日記 はてなブックマーク - Rubyのnilはおともだち - ゆとRubyist日記

Happy Hacking RubyGems – fix A moment はてなブックマーク - Happy Hacking RubyGems - fix A moment

おまいらもMacRubyでMacアプリ作ろう – @sugamasao.blog.title # => ”コードで世界を変えたい” はてなブックマーク - おまいらもMacRubyでMacアプリ作ろう

Sinatraを使って、RESTFulなWeb-APIを作ってみたい – tackun note はてなブックマーク - Sinatraを使って、RESTFulなWeb-APIを作ってみたい - tackun note

EvernoteのAPIをRubyから叩きたい – kk_Atakaの日記 はてなブックマーク - EvernoteのAPIをRubyから叩きたい - kk_Atakaの日記

Enum_forは怖くなんかないよ – a newcomer! はてなブックマーク - Enum_forは怖くなんかないよ - a newcomer!

以上です。

[DataMapper] datamapper undefined method `include?’ for nil:NilClass

Sinatra + DataMapper で DB にデータを保存するときに、下記のようなエラーが発生しました。

datamapper undefined method `include?' for nil:NilClass

書いたコードは、Model の new, create などで、元々あるはずのメソッドを使うと、定義されていないというエラーが発生していました。

原因は、モデルの宣言後にファイナライズ処理をしていなかったせいだったみたいです。

調べてみると、DataMapperの公式ドキュメントにちゃんと書いてありました。

Finalize Models

After declaring all of the models, you should finalize them:

DataMapper.finalize

・引用元:DataMapper – Getting started with DataMapper はてなブックマーク - DataMapper - Getting started with DataMapper

使い始める前に、ちゃんとドキュメントに目を通しておくべきですね。。。

以上です。

【参考】

#159: undefined method `include?’ for nil:NilClass in 1.2.0 but not 1.1.0 – Issues – datamapper/dm-core – GitHub はてなブックマーク - #159: undefined method `include?' for nil:NilClass in 1.2.0 but not 1.1.0 - Issues - datamapper/dm-core - GitHub

The Future is Now: DataMapper.finalize はてなブックマーク - The Future is Now: DataMapper.finalize

[Redmine] Encoding::CompatibilityError (incompatible character encodings: UTF-8 and ASCII-8BIT):

Redmine 1.2.3 にて、下記のようなエラーが発生しました。

Encoding::CompatibilityError (incompatible character encodings: UTF-8 and ASCII-8BIT):

エラーの原因は、Rubyのバージョンが 1.8.7 を使わなければいけないのに、1.9.2 を使っていたせいでした。

Redmineの各バージョンに対応する Ruby, Rails, Rack を正しく指定してインストールしてあげる必要があります。

Redmine をインストールするときに必要な Ruby, Rails, Rack のバージョンを確認できるサイト | CodeNote.net はてなブックマーク - Redmine をインストールするときに必要な Ruby, Rails, Rack のバージョンを確認できるサイト | CodeNote.net

また、Herokuで使うRubyのバージョンを変更するときはこちらの記事を参考にして下さい。

[Heroku] Rubyのバージョンを変更する | CodeNote.net はてなブックマーク - [Heroku] Rubyのバージョンを変更する | CodeNote.net

以上です。

【参考】

Encoding:CompatibilityError When editing Wiki – Redmine はてなブックマーク - Encoding:CompatibilityError When editing Wiki - Redmine