ruby on rails - active support超便利メソッド10選
TRANSCRIPT
![Page 1: Ruby on Rails - Active support超便利メソッド10選](https://reader034.vdocuments.mx/reader034/viewer/2022051122/58ee625f1a28ab9a0b8b4589/html5/thumbnails/1.jpg)
Ruby / Ruby on Railsビギナーズ倶楽部
Active Support 超便利メソッド10選!!
2015.10.24
![Page 2: Ruby on Rails - Active support超便利メソッド10選](https://reader034.vdocuments.mx/reader034/viewer/2022051122/58ee625f1a28ab9a0b8b4589/html5/thumbnails/2.jpg)
Self-Intoroduction徳島県出身です
(o∀`o) 一緒に勉強しましょう( ▽ ` )ノ 勉強会やってます!
アプリケーションエンジニア(Rails/LAMP/Java/Oracle)
アウトプットを主軸においた、勉強会を運営しています:)
Click
![Page 3: Ruby on Rails - Active support超便利メソッド10選](https://reader034.vdocuments.mx/reader034/viewer/2022051122/58ee625f1a28ab9a0b8b4589/html5/thumbnails/3.jpg)
1)Railsの全体像を知ろう!
Today's Agenda
2)ActiveSupportの基本
3)超便利メソッド10選!!
![Page 4: Ruby on Rails - Active support超便利メソッド10選](https://reader034.vdocuments.mx/reader034/viewer/2022051122/58ee625f1a28ab9a0b8b4589/html5/thumbnails/4.jpg)
1)Railsの全体像を知ろう!
Ruby on Railsは、機能毎のコンポーネントを 組み合わせて構成されています。
Ruby on Railsの構成要素を 確認していきましょう。
![Page 5: Ruby on Rails - Active support超便利メソッド10選](https://reader034.vdocuments.mx/reader034/viewer/2022051122/58ee625f1a28ab9a0b8b4589/html5/thumbnails/5.jpg)
1)Railsの全体像を知ろう!
Railtie (中核)
コントローラ層AbstractControllerActionControllerActionMailer
ActiveModelモデル層
ActiveRecord
ビュー層:ActionViewルーティング:ActionDispatch
ユーティリティ:ActiveSupport
Webサービス:ActiveResource
国際化:I18n
テスト:test/unit
ライブラリ管理:Bundler
![Page 6: Ruby on Rails - Active support超便利メソッド10選](https://reader034.vdocuments.mx/reader034/viewer/2022051122/58ee625f1a28ab9a0b8b4589/html5/thumbnails/6.jpg)
1)Railsの全体像を知ろう!
Railtie (中核)
コントローラ層AbstractControllerActionControllerActionMailer
ActiveModelモデル層
ActiveRecord
ビュー層:ActionViewルーティング:あ
ユーティリティ:ActiveSupport
Webサービス:ActiveResource
国際化:I18n
テスト:test/unit
ライブラリ管理:Bundler
今日は、ActiveSupportを 勉強します!
![Page 7: Ruby on Rails - Active support超便利メソッド10選](https://reader034.vdocuments.mx/reader034/viewer/2022051122/58ee625f1a28ab9a0b8b4589/html5/thumbnails/7.jpg)
2)ActiveSupportの基本
Rubyに便利な機能が追加されたライブラリ
・Rubyの機能だと思っていても、 ActiveSupportの機能だったりもします。
・ActiveSupportへの理解を深めることが、 Railsの理解に繋がります。
・Railsでは、基本的に全ての Active Supportが読み込まれます。
![Page 8: Ruby on Rails - Active support超便利メソッド10選](https://reader034.vdocuments.mx/reader034/viewer/2022051122/58ee625f1a28ab9a0b8b4589/html5/thumbnails/8.jpg)
2)ActiveSupportの基本
Sinatra等では、コア拡張機能を読み込んで利用します。
require 'active_support' require 'active_support/core_ext/object/blank'
require 'active_support' require 'active_support/core_ext'
必要な定義だけを選ぶ場合
すべてのコア拡張機能を読み込む
![Page 9: Ruby on Rails - Active support超便利メソッド10選](https://reader034.vdocuments.mx/reader034/viewer/2022051122/58ee625f1a28ab9a0b8b4589/html5/thumbnails/9.jpg)
3)超便利メソッド10選!!
blank?
・nilとfalse ・空白文字 (whitespace) だけで構成された文字列 ・空欄の配列とハッシュ
以下の値を、空白(blank)とみなします。
present?
「!blank?」メソッドと同じ意味です。
![Page 10: Ruby on Rails - Active support超便利メソッド10選](https://reader034.vdocuments.mx/reader034/viewer/2022051122/58ee625f1a28ab9a0b8b4589/html5/thumbnails/10.jpg)
3)超便利メソッド10選!!
presence
present?がtrueの場合は自身のレシーバを返し、 falseの場合はnilを返します。
value.present? ? value : nil ↓ value.presence # シンプルに書けます。
![Page 11: Ruby on Rails - Active support超便利メソッド10選](https://reader034.vdocuments.mx/reader034/viewer/2022051122/58ee625f1a28ab9a0b8b4589/html5/thumbnails/11.jpg)
3)超便利メソッド10選!!
in?
1.in?([1,2]) # => true "lo".in?("hello") # => true 25.in?(30..50) # => false
あるオブジェクトが他のオブジェクトに含まれているか どうかをテストします。
![Page 12: Ruby on Rails - Active support超便利メソッド10選](https://reader034.vdocuments.mx/reader034/viewer/2022051122/58ee625f1a28ab9a0b8b4589/html5/thumbnails/12.jpg)
3)超便利メソッド10選!!
to_query
current_user = "kanako" current_user.to_query(‘user’) ↓ "user=kanako"
URLのクエリストリングを生成してくれます。
![Page 13: Ruby on Rails - Active support超便利メソッド10選](https://reader034.vdocuments.mx/reader034/viewer/2022051122/58ee625f1a28ab9a0b8b4589/html5/thumbnails/13.jpg)
3)超便利メソッド10選!!try
# tryメソッドを使用しない場合 unless @number.nil? @number.next end
# tryメソッドを使用した場合 @number.try(:next)
nilでない場合にのみオブジェクトのメソッドを呼び出します。
![Page 14: Ruby on Rails - Active support超便利メソッド10選](https://reader034.vdocuments.mx/reader034/viewer/2022051122/58ee625f1a28ab9a0b8b4589/html5/thumbnails/14.jpg)
3)超便利メソッド10選!!
sum
[1, 2, 3].sum # => 6 (1..100).sum # => 5050
sumメソッドはenumerableの要素を合計します。
Enumerableの 拡張
![Page 15: Ruby on Rails - Active support超便利メソッド10選](https://reader034.vdocuments.mx/reader034/viewer/2022051122/58ee625f1a28ab9a0b8b4589/html5/thumbnails/15.jpg)
3)超便利メソッド10選!!
remove
"Hello World".remove(/Hello /) ↓ "World"
removeメソッドを実行すると、 すべての該当パターンが削除されます。
Stringの拡張
![Page 16: Ruby on Rails - Active support超便利メソッド10選](https://reader034.vdocuments.mx/reader034/viewer/2022051122/58ee625f1a28ab9a0b8b4589/html5/thumbnails/16.jpg)
3)超便利メソッド10選!!
to_date、to_time、to_datetime
"2010-07-27".to_date # => Tue, 27 Jul 2010 "2010-07-27 23:37:00".to_time # => Tue Jul 27 23:37:00 UTC 2010 "2010-07-27 23:37:00".to_datetime # => Tue, 27 Jul 2010 23:37:00 +0000
Stringの拡張
![Page 17: Ruby on Rails - Active support超便利メソッド10選](https://reader034.vdocuments.mx/reader034/viewer/2022051122/58ee625f1a28ab9a0b8b4589/html5/thumbnails/17.jpg)
3)超便利メソッド10選!!Time
Time.now #=> 2015-10-24 07:30:09 +0900 Time.now.all_day, Time.now.all_week, Time.now.all_month Time.now.all_quarter, Time.now.all_year # 過去を返す Time.now.weeks_ago(1) #=> 2015-10-17 07:35:38 +0900 #未来を返す Time.now.months_since(1) #=> 2015-11-24 07:37:07 +0900 # 指定されたはじめの時刻を返す Time.now.beginning_of_hour #=> 2015-10-24 07:00:00 +0900 # 指定された終わりの時刻を返す Time.now.end_of_hour #=> 2015-10-24 07:59:59 +0900
Numericの拡張
![Page 18: Ruby on Rails - Active support超便利メソッド10選](https://reader034.vdocuments.mx/reader034/viewer/2022051122/58ee625f1a28ab9a0b8b4589/html5/thumbnails/18.jpg)
ま と め
Active Supportには、その他たくさんの 便利な機能があります。
Array、Hash、Date、DateTimeの拡張、 ラッピング、複製・・・
紹介させていただいた以外でも強力な 機能が、たくさんあるので試してみてください。
![Page 19: Ruby on Rails - Active support超便利メソッド10選](https://reader034.vdocuments.mx/reader034/viewer/2022051122/58ee625f1a28ab9a0b8b4589/html5/thumbnails/19.jpg)
参 照 情 報
http://railsguides.jp/active_support_core_extensions.html
・RailsGuides ー Active Support コア拡張機能 ー
![Page 20: Ruby on Rails - Active support超便利メソッド10選](https://reader034.vdocuments.mx/reader034/viewer/2022051122/58ee625f1a28ab9a0b8b4589/html5/thumbnails/20.jpg)
Let's study together!
Thank you :)