カテゴリー : RubyGems

[RubyGems] Could not find xxx in any of the sources

Rails で Gemfile に ransack を 0.7.3 で指定して bundle install したら「Could not find xxx in any of the sources」というエラーが出てしまいました。

# Gemfile

# meta search
gem 'ransack', '0.7.3' #MIT
% cap deploy:cold
...
  * 2013-03-07 21:27:57 executing `bundle:install'
  * executing "cd /srv/myapp/releases/20130307122736 && bundle install --gemfile /srv/myapp/releases/20130307122736/Gemfile --path /srv/myapp/shared/bundle --deployment --quiet --without development test"
    servers: ["example.com"]
    [example.com] executing command
 ** [out :: example.com] Could not find ransack-0.7.3 in any of the sources

ransack-0.7.3 がない?

開発環境ではインストールできているし、ステージング環境でもインストールできていたのに、本番環境の構築時には 0.7.3 はなく、0.7.2 が最新のようでした。

% gem search --remote ransack
 
*** REMOTE GEMS ***
 
ransack (0.7.2)
ransack_abbreviator (0.0.8)
ransack_chronic (1.1.0)
ransack_ffcrm (0.7.1)
ransack_ui (1.1.0)

動作上、問題なかったので ransack のバージョンを下げることで対応しました。

[Ruby] Github に公開している gem を直接インストールする方法

Github に公開している gem を直接インストールする方法をメモ。

■ Gemfile

gem 'sunspot_rails', :git => 'git@github.com:bakorer/sunspot.git', :branch => "solr-3.6.1"

参考情報

rubygems – Install Gem from Github Branch? – Stack Overflow

[Ruby on Rails] Devise のログイン処理のエラーメッセージを表示する方法

Ruby on Rails にて、Devise のログイン処理のエラーメッセージを表示させるように、下記のコードを追加しました。

■ app/views/devise/sessions/new.html.haml

  -if alert
    #error_explanation
      %h2 Please check messages below:
      %ul
        %li=alert

以上です。

【参考】

Rails – Devise – Error messages when signing in? – Stack Overflow はてなブックマーク - Rails - Devise - Error messages when signing in? - Stack Overflow

[Ruby on Rails] Devise で 保存失敗時に例外を発生させる update_without_password! メソッドを作成しました

Ruby on Rails の Devise にて、保存失敗時に例外を発生させる update_without_password! メソッドを作成しました。

Devise で定義されている update_without_password メソッドでは、保存処理の成功・失敗によって true, false が帰ってきます。

例外を投げる update_without_password! メソッドも定義されているのかと思いきや、無かったので作成しました。

class User < ActiveRecord::Base
  def update_without_password!(params, *options)
 
    if params[:password].blank?
      params.delete(:password)
      params.delete(:password_confirmation) if params[:password_confirmation].blank? 
    end
 
    clean_up_passwords
    update_attributes!(params, *options)
  end
end

以上です。

・参考:
deviseで現在のパスワード無しでuserを更新する – komagata
はてなブックマーク - komagata

[Ruby on Rails] 権限管理・認可を扱う「cancan」が便利

Ruby on Rails にて、権限管理や認可を扱う「cancan」という gem を使ってみました。

ryanb/cancan

カンタンに導入できて、かなり便利です。

使い方は、下記の記事を参考にしました。ありがとうございます。

cancan でモテカワ♥愛され権限管理 « blog.udzura.jp

Rails3.0 で Devise と CanCan を動かす – dimrosの日記

ASCIIcasts – “Episode 192 – Authorization with CanCan”

以上です。

[Ruby][Rails] 厳選ライブラリ・ツールまとめ by WEB+DB PRESS Vol.67

「WEB+DB PRESS Vol.67」に掲載されている「Ruby わくわくナビ」で紹介されていた「厳選!用途別Ruby/Railsライブラリ・ツール」の一覧をメモ。

「機能の実装」「テスト」「作業の効率化」「運用」をテーマに色々と紹介されていました。

機能の実装編

ユーザ認証

plataformatec/devise はてなブックマーク - plataformatec/devise

NoamB/sorcery はてなブックマーク - NoamB/sorcery

ページネーション処理

amatsuda/kaminari はてなブックマーク - amatsuda/kaminari

パンくずリストの表示

zachinglis/crummy はてなブックマーク - zachinglis/crummy

アクセス権限の一括管理

ryanb/cancan はてなブックマーク - ryanb/cancan

画像のアップロード処理

thoughtbot/paperclip はてなブックマーク - thoughtbot/paperclip

markevans/dragonfly はてなブックマーク - markevans/dragonfly

レコードの削除を「論理削除」にする

radar/paranoia はてなブックマーク - radar/paranoia
 

テスト編

現在時刻に関係するテスト

jtrupiano/timecop はてなブックマーク - jtrupiano/timecop

bebanjo/delorean はてなブックマーク - bebanjo/delorean

メール送信処理のテスト

bmabey/email-spec はてなブックマーク - bmabey/email-spec

More Test!!

guard/guard はてなブックマーク - guard/guard

guard/guard-rspec はてなブックマーク - guard/guard-rspec

Growl はてなブックマーク - Growl
 

開発作業の効率を上げる

モデルの「表示に関する処理」を上手に扱う

amatsuda/active_decorator はてなブックマーク - amatsuda/active_decorator

オブジェクトの中身をきれいに表示する

michaeldv/awesome_print はてなブックマーク - michaeldv/awesome_print

処理途中のオブジェクトの中身を表示する

esminc/tapp はてなブックマーク - esminc/tapp

快適なREPL環境

pry/pry はてなブックマーク - pry/pry

Pry – an IRB alternative and runtime developer console はてなブックマーク - Pry - an IRB alternative and runtime developer console

Rubyistよ、irbを捨ててPryを使おう – TIM Labs はてなブックマーク - Rubyistよ、irbを捨ててPryを使おう - TIM Labs

モデルの属性に列挙型を使う

twinslash/enumerize はてなブックマーク - twinslash/enumerize

Twiwt:Blog / jugyo : enumerize 便利♡ – Enumerated attributes with I18n and ActiveRecord/Mongoid support はてなブックマーク - Twiwt:Blog / jugyo : enumerize 便利♡ - Enumerated attributes with I18n and ActiveRecord/Mongoid support
 

運用する

アプリケーションの設定を上手に管理する

binarylogic/settingslogic はてなブックマーク - binarylogic/settingslogic

アプリケーションのパフォーマンスを把握する

Web Application Performance Management (APM) : New Relic はてなブックマーク - Web Application Performance Management (APM) : New Relic

newrelic/rpm はてなブックマーク - newrelic/rpm

複数のアプリケーションを並行して開発する

Pow: Zero-configuration Rack server for Mac OS X はてなブックマーク - Pow: Zero-configuration Rack server for Mac OS X

rodreegez/powder はてなブックマーク - rodreegez/powder

Pow使うならPowder入れておくだァーッ! – Meltdown Countdown はてなブックマーク - Pow使うならPowder入れておくだァーッ! - Meltdown Countdown
 

以上です。

[Ruby] ユーザー認証エンジン「Devise」で現在ログイン中のユーザーIDを取得する方法

Ruby のユーザー認証まわりの処理をしてくれる Gem 「Devise」で現在ログイン中のユーザーIDを取得する方法を調べたのでメモ。

現在ログイン中のユーザーのモデルは current_user で取得できます。

なので、ログイン中のユーザーIDは下記のように書けば取得できます。

current_user.id

以上です。

[Ruby on Rails] ユーザー認証エンジン「Devise」の参考記事まとめ

Ruby on Rails アプリケーションに、ユーザー認証の仕組みを導入できる「Devise」を使うときに参考になりそうな記事をまとめてみました。
 

■ 公式

まずは、公式というか、github。

・github:plataformatec/devise はてなブックマーク - plataformatec/devise
 

■ Devise の便利サイト(全て日本語)

日本語で一番詳しい Devise のドキュメント。

Railsの第4世代認証エンジンDeviseのREADMEを翻訳してみた – LazyLoadLife はてなブックマーク - Railsの第4世代認証エンジンDeviseのREADMEを翻訳してみた - LazyLoadLife
 

ASCIIcasts さんの Devise 特集。これも分かりやすい。

ASCIIcasts – “Episode 209 – Deviseの導入” はてなブックマーク - ASCIIcasts - “Episode 209 - Deviseの導入”

ASCIIcasts – “Episode 210 – Deviseのカスタマイズ” はてなブックマーク - ASCIIcasts - “Episode 210 - Deviseのカスタマイズ”
 

おなじみ「Ruby on Rails with OIAX」のチュートリアル形式の記事。

第12回: ユーザー認証(1) – Ruby on Rails 3.0 日記 – Ruby on Rails with OIAX はてなブックマーク - 第12回: ユーザー認証(1) - Ruby on Rails 3.0 日記 - Ruby on Rails with OIAX

第13回: ユーザー認証(2) – Ruby on Rails 3.0 日記 – Ruby on Rails with OIAX はてなブックマーク - 第13回: ユーザー認証(2) - Ruby on Rails 3.0 日記 - Ruby on Rails with OIAX
 

実際に、Deviseを使ってみたというエントリ。

Deep valley まとめ版 – RailsでDeviseを使ってみた はてなブックマーク - Deep valley まとめ版 - RailsでDeviseを使ってみた

Rails3.0 で Devise と CanCan を動かす – dimrosの日記 はてなブックマーク - Rails3.0 で Devise と CanCan を動かす - dimrosの日記

Rails 3.0用にrestful_authentication から deviseに移行してみる – 発声練習 はてなブックマーク - Rails 3.0用にrestful_authentication から deviseに移行してみる - 発声練習

[Ruby] Rails 3, Devise 使い方のまとめ(2011年8月版) | お風呂だいすきぶろぐ。 はてなブックマーク - [Ruby] Rails 3, Devise 使い方のまとめ(2011年8月版) | お風呂だいすきぶろぐ。

eitoballの練習帳: Devise: Rails向けの柔軟性のある認証ソリューション はてなブックマーク - eitoballの練習帳: Devise: Rails向けの柔軟性のある認証ソリューション
 

■ Devise でハマった

Deviseでメールアドレス変更直後にアカウントをロックさせない方法 | Geekの逆襲 はてなブックマーク - Deviseでメールアドレス変更直後にアカウントをロックさせない方法 | Geekの逆襲

手順を間違えたらハマったという記事。手順は大事。

rails3.2でdeviseのインストール手順を間違えたら面倒だった話 | Fusic Developers’ Weblog はてなブックマーク - rails3.2でdeviseのインストール手順を間違えたら面倒だった話 | Fusic Developers' Weblog
 

以上です。(随時更新予定)

[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 が見つからないエラーが発生しました。

エラー内容

$ bundle install --no-deploymentFetching source index for https://rubygems.org/
...
 
Installing nokogiri (1.5.2) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
 
        /Users/bakorer/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb 
checking for libxml/parser.h... yes
checking for libxslt/xslt.h... yes
checking for libexslt/exslt.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
-----
libiconv is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
-----
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.
 
Provided configuration options:
	--with-opt-dir
	--with-opt-include
	--without-opt-include=${opt-dir}/include
	--with-opt-lib
	--without-opt-lib=${opt-dir}/lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/Users/bakorer/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
	--with-zlib-dir
	--without-zlib-dir
	--with-zlib-include
	--without-zlib-include=${zlib-dir}/include
	--with-zlib-lib
	--without-zlib-lib=${zlib-dir}/lib
	--with-iconv-dir
	--without-iconv-dir
	--with-iconv-include
	--without-iconv-include=${iconv-dir}/include
	--with-iconv-lib
	--without-iconv-lib=${iconv-dir}/lib
	--with-xml2-dir
	--without-xml2-dir
	--with-xml2-include
	--without-xml2-include=${xml2-dir}/include
	--with-xml2-lib
	--without-xml2-lib=${xml2-dir}/lib
	--with-xslt-dir
	--without-xslt-dir
	--with-xslt-include
	--without-xslt-include=${xslt-dir}/include
	--with-xslt-lib
	--without-xslt-lib=${xslt-dir}/lib
	--with-iconvlib
	--without-iconvlib
 
 
Gem files will remain installed in /Users/bakorer/.rvm/gems/ruby-1.9.2-p290@tomcms/gems/nokogiri-1.5.2 for inspection.
Results logged to /Users/bakorer/.rvm/gems/ruby-1.9.2-p290@tomcms/gems/nokogiri-1.5.2/ext/nokogiri/gem_make.out
An error occured while installing nokogiri (1.5.2), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.5.2'` succeeds before bundling.

解決方法

以下のコマンドを Railsアプリのルートディレクトリで実行して、bundler に nokogiri をコンパイルするとき使う libiconv などを指定してやればOKです。

$ bundle config build.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

以上です。


参考情報

Mac | CreativeStyle

[Ruby] Nokogiri のインストール方法 [Mac版] | CodeNote.net