おすすめ gem の紹介       @cho_co  2012/05/22 開発 LT
gem とは?• Ruby のライブラリをパッケージ化した もの• PHP でいう pear みたいなもの• パッケージ管理システム自体は RubyGems と呼ぶ
インストール$ gem install rails
検索$ gem search -r mysql
*** REMOTE GEMS ***activerecord-jdbcmysql-adapter (1.2.2, 1.0.3 java)activerecord-mysql-adapter-flags (0.0.3)activerecord-m...
ローカル gem 一覧$ gem list
*** LOCAL GEMS ***abstract (1.0.0)actionmailer (3.2.1)actionpack (3.2.1)activemodel (3.2.1)activerecord (3.2.1)activeresou...
rubygems.org
rubygems.org とは?• http://rubygems.org/• gem のホスティングサービス• PHP でいう pear みたいなもの• 38,948 gems• 59,752 users• gem install はデフォル...
bundler• rubygems より上位レイヤーのパッケージ管 理システム• 必要となる gem を Gemfile に書いておく
# Gemfilesource https://rubygems.orggem rails’gem mysql2...
インストール# Gemfile に記述された gem をインストールする$ bundle install
何がいいの?• あの gem は開発環境には入っているけど、本 番環境に入っていないのでアプリが動かな い!という問題を解消できる• インストールするバージョンを固定できる• gem 間の依存関係を解決してくれる
要は、Bundler は環境毎の差異をなくしてくれる   イカしたヤツ
おすすめ gems...• curry-bu や今やっているプロジェクト で使用している主に Rails 向けの gem• ここからが本題なはずなのですが時間 がないので駆け足でいきます...
認証周り
Devise
• 多機能な認証用ライブラリ• OmniAuth と組み合わせることで  Facebook や Twitter などと OAuth 認証  することができる• ちょっと規模が大きい気もする• https://github.com/platafo...
Database Authenticatable• 一般的な(?)認証をしてくれる• RESTful な URL ルーティングを生成
Registerable• ユーザー登録、編集• Database Authenticatable と組み合わ せて使用
Rememberable• ログイン状態を保持
Confirmable• ユーザー登録→送信されたメールの URL を踏んでもらって登録完了
Recoverable• パスワードを忘れましたか?→送信さ れたメールによってパスワードをリ セット
CanCan
CanCan
AneCan
Shi-Ba
• 権限周りを色々やってくれる• 管理者ユーザーの特権とか• 「この投稿を作成したユーザーのみ削除ができ  る」といったチェックをスマートに行える• 認証は担当外なので Devise などと併用する必要  がある• https://github...
# app/models/ability.rbclass Ability include CanCan::Ability def initialize(user)  user ||= User.new  can :destroy, Post, ...
データベース周り
enum_column
• migration で enum 型を使用可能に• これを使わなくても無理やり書けるが、  schema.rb が varchar(0) とかになるので  よろしくない• https://github.com/electronick/  e...
foreigner
• migrate ファイルに簡単に外部キー制約を記  述• add_foreign_key(:comments, :posts)• execute メソッドを使用すれば SQL でも書  けるがこちらのほうが楽• https://github...
rails3_acts_as_paranoid
• 論理削除• カラムに deleted_at を追加し、モデルに  acts_as_paranoid と書くだけ• https://github.com/goncalossilva/  rails3_acts_as_paranoid
テスト周り
RSpec
• Test::Unit に代わるテスティングフレーム  ワーク• rspec-rails と一緒に使うと幸せになれる• https://github.com/rspec/rspec
Capybara
• 統合テスト用テスティングフレームワーク• フォームに値を入れて submit を押して、  みたいなことを DSL で書ける• https://github.com/jnicklas/capybara
Guard
• ファイルを編集したら自動でテストを実行• https://github.com/guard/guard
Spork
• rake spec の起動遅すぎワロタ...• DRb と呼ばれる分散オブジェクトプログ  ラミング用のサーバーに Rails をロードし  ておく• 起動速すぎワロタ• https://github.com/sporkrb/spork
便利なヤツら周り
CarrierWave
• 画像のアップロード(画像じゃなくても良い)• 多機能(画像のリサイズやクロップなど)• fog と一緒に使用することで、AWS S3、  Google Storage などのストレージに簡単に  画像を保存することができる• https:/...
Capistrano
• デプロイツール• DSL で書ける• ...が、慣れないと設定がだるい• リモートサーバーでコマンドをたたける為、  デプロイ以外でも使用可能(何かをインストー  ルするとか)• https://github.com/capistrano/...
awesome_print
• p や pp よりオブジェクトを見やすく  console に表示してくれる• カスタマイズ可能• https://github.com/michaeldv/  awesome_print
良い感じな gem があったら教えて下さい。お願いします。
ご清聴ありがとうご ざいました。
おすすめ gem
Upcoming SlideShare
Loading in …5
×

おすすめ gem

6,567 views

Published on

社内 LT 大会で発表したスライドです。
スライドの日付が 2012/05/22 になっていますが、正しくは 2012/05/21 です。

0 Comments
15 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,567
On SlideShare
0
From Embeds
0
Number of Embeds
1,018
Actions
Shares
0
Downloads
15
Comments
0
Likes
15
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • おすすめ gem

    1. 1. おすすめ gem の紹介 @cho_co 2012/05/22 開発 LT
    2. 2. gem とは?• Ruby のライブラリをパッケージ化した もの• PHP でいう pear みたいなもの• パッケージ管理システム自体は RubyGems と呼ぶ
    3. 3. インストール$ gem install rails
    4. 4. 検索$ gem search -r mysql
    5. 5. *** REMOTE GEMS ***activerecord-jdbcmysql-adapter (1.2.2, 1.0.3 java)activerecord-mysql-adapter-flags (0.0.3)activerecord-mysql2-retry-ext (0.1.0)activerecord-mysql2legacydb-adapter (0.2.0)activerecord-mysql2spatial-adapter (0.4.2)activerecord-mysqlspatial-adapter (0.4.1)airblade-mysql_s3_backup (0.0.4)aqueduct-mysql (0.1.0)capistrano-mysqldump (1.06)create_rails_mysql_db (0.2.3)...
    6. 6. ローカル gem 一覧$ gem list
    7. 7. *** LOCAL GEMS ***abstract (1.0.0)actionmailer (3.2.1)actionpack (3.2.1)activemodel (3.2.1)activerecord (3.2.1)activeresource (3.2.1)activesupport (3.2.1)addressable (2.2.8)arel (3.0.0)awesome_print (1.0.2)...
    8. 8. rubygems.org
    9. 9. rubygems.org とは?• http://rubygems.org/• gem のホスティングサービス• PHP でいう pear みたいなもの• 38,948 gems• 59,752 users• gem install はデフォルトで rubygems を見に行く
    10. 10. bundler• rubygems より上位レイヤーのパッケージ管 理システム• 必要となる gem を Gemfile に書いておく
    11. 11. # Gemfilesource https://rubygems.orggem rails’gem mysql2...
    12. 12. インストール# Gemfile に記述された gem をインストールする$ bundle install
    13. 13. 何がいいの?• あの gem は開発環境には入っているけど、本 番環境に入っていないのでアプリが動かな い!という問題を解消できる• インストールするバージョンを固定できる• gem 間の依存関係を解決してくれる
    14. 14. 要は、Bundler は環境毎の差異をなくしてくれる イカしたヤツ
    15. 15. おすすめ gems...• curry-bu や今やっているプロジェクト で使用している主に Rails 向けの gem• ここからが本題なはずなのですが時間 がないので駆け足でいきます...
    16. 16. 認証周り
    17. 17. Devise
    18. 18. • 多機能な認証用ライブラリ• OmniAuth と組み合わせることで Facebook や Twitter などと OAuth 認証 することができる• ちょっと規模が大きい気もする• https://github.com/plataformatec/ devise
    19. 19. Database Authenticatable• 一般的な(?)認証をしてくれる• RESTful な URL ルーティングを生成
    20. 20. Registerable• ユーザー登録、編集• Database Authenticatable と組み合わ せて使用
    21. 21. Rememberable• ログイン状態を保持
    22. 22. Confirmable• ユーザー登録→送信されたメールの URL を踏んでもらって登録完了
    23. 23. Recoverable• パスワードを忘れましたか?→送信さ れたメールによってパスワードをリ セット
    24. 24. CanCan
    25. 25. CanCan
    26. 26. AneCan
    27. 27. Shi-Ba
    28. 28. • 権限周りを色々やってくれる• 管理者ユーザーの特権とか• 「この投稿を作成したユーザーのみ削除ができ る」といったチェックをスマートに行える• 認証は担当外なので Devise などと併用する必要 がある• https://github.com/ryanb/cancan
    29. 29. # app/models/ability.rbclass Ability include CanCan::Ability def initialize(user) user ||= User.new can :destroy, Post, user_id: user.id endend# app/controllers/posts_controller.rbclass PostsController < ApplicationController before_filter :authenticate_user! load_and_authorize_resource# app/views/posts/edit.erb<% if can? :destroy, @user %> <%= link_to 削除, posts, method: :delete %><% end %>
    30. 30. データベース周り
    31. 31. enum_column
    32. 32. • migration で enum 型を使用可能に• これを使わなくても無理やり書けるが、 schema.rb が varchar(0) とかになるので よろしくない• https://github.com/electronick/ enum_column
    33. 33. foreigner
    34. 34. • migrate ファイルに簡単に外部キー制約を記 述• add_foreign_key(:comments, :posts)• execute メソッドを使用すれば SQL でも書 けるがこちらのほうが楽• https://github.com/matthuhiggins/ foreigner
    35. 35. rails3_acts_as_paranoid
    36. 36. • 論理削除• カラムに deleted_at を追加し、モデルに acts_as_paranoid と書くだけ• https://github.com/goncalossilva/ rails3_acts_as_paranoid
    37. 37. テスト周り
    38. 38. RSpec
    39. 39. • Test::Unit に代わるテスティングフレーム ワーク• rspec-rails と一緒に使うと幸せになれる• https://github.com/rspec/rspec
    40. 40. Capybara
    41. 41. • 統合テスト用テスティングフレームワーク• フォームに値を入れて submit を押して、 みたいなことを DSL で書ける• https://github.com/jnicklas/capybara
    42. 42. Guard
    43. 43. • ファイルを編集したら自動でテストを実行• https://github.com/guard/guard
    44. 44. Spork
    45. 45. • rake spec の起動遅すぎワロタ...• DRb と呼ばれる分散オブジェクトプログ ラミング用のサーバーに Rails をロードし ておく• 起動速すぎワロタ• https://github.com/sporkrb/spork
    46. 46. 便利なヤツら周り
    47. 47. CarrierWave
    48. 48. • 画像のアップロード(画像じゃなくても良い)• 多機能(画像のリサイズやクロップなど)• fog と一緒に使用することで、AWS S3、 Google Storage などのストレージに簡単に 画像を保存することができる• https://github.com/jnicklas/carrierwave
    49. 49. Capistrano
    50. 50. • デプロイツール• DSL で書ける• ...が、慣れないと設定がだるい• リモートサーバーでコマンドをたたける為、 デプロイ以外でも使用可能(何かをインストー ルするとか)• https://github.com/capistrano/capistrano
    51. 51. awesome_print
    52. 52. • p や pp よりオブジェクトを見やすく console に表示してくれる• カスタマイズ可能• https://github.com/michaeldv/ awesome_print
    53. 53. 良い感じな gem があったら教えて下さい。お願いします。
    54. 54. ご清聴ありがとうご ざいました。

    ×