ruby on rails - active support超便利メソッド10選

20
Ruby / Ruby on Railsビギナーズ倶楽部 Active Support 超便利メソッド10選!! 2015.10.24

Upload: kanako-kobayashi

Post on 13-Apr-2017

687 views

Category:

Engineering


3 download

TRANSCRIPT

Page 1: Ruby on Rails - Active support超便利メソッド10選

Ruby / Ruby on Railsビギナーズ倶楽部

Active Support 超便利メソッド10選!!

2015.10.24

Page 2: Ruby on Rails - Active support超便利メソッド10選

Self-Intoroduction徳島県出身です

(o∀`o) 一緒に勉強しましょう( ▽ ` )ノ 勉強会やってます!

アプリケーションエンジニア(Rails/LAMP/Java/Oracle)

アウトプットを主軸においた、勉強会を運営しています:)

Click

Page 3: Ruby on Rails - Active support超便利メソッド10選

1)Railsの全体像を知ろう!

Today's Agenda

2)ActiveSupportの基本

3)超便利メソッド10選!!

Page 4: Ruby on Rails - Active support超便利メソッド10選

1)Railsの全体像を知ろう!

Ruby on Railsは、機能毎のコンポーネントを 組み合わせて構成されています。

Ruby on Railsの構成要素を 確認していきましょう。

Page 5: Ruby on Rails - Active support超便利メソッド10選

1)Railsの全体像を知ろう!

Railtie (中核)

コントローラ層AbstractControllerActionControllerActionMailer

ActiveModelモデル層

ActiveRecord

ビュー層:ActionViewルーティング:ActionDispatch

ユーティリティ:ActiveSupport

Webサービス:ActiveResource

国際化:I18n

テスト:test/unit

ライブラリ管理:Bundler

Page 6: Ruby on Rails - Active support超便利メソッド10選

1)Railsの全体像を知ろう!

Railtie (中核)

コントローラ層AbstractControllerActionControllerActionMailer

ActiveModelモデル層

ActiveRecord

ビュー層:ActionViewルーティング:あ

ユーティリティ:ActiveSupport

Webサービス:ActiveResource

国際化:I18n

テスト:test/unit

ライブラリ管理:Bundler

今日は、ActiveSupportを 勉強します!

Page 7: Ruby on Rails - Active support超便利メソッド10選

2)ActiveSupportの基本

Rubyに便利な機能が追加されたライブラリ

・Rubyの機能だと思っていても、 ActiveSupportの機能だったりもします。

・ActiveSupportへの理解を深めることが、 Railsの理解に繋がります。

・Railsでは、基本的に全ての  Active Supportが読み込まれます。

Page 8: Ruby on Rails - Active support超便利メソッド10選

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選

3)超便利メソッド10選!!

blank?

・nilとfalse ・空白文字 (whitespace) だけで構成された文字列 ・空欄の配列とハッシュ

以下の値を、空白(blank)とみなします。

present?

「!blank?」メソッドと同じ意味です。

Page 10: Ruby on Rails - Active support超便利メソッド10選

3)超便利メソッド10選!!

presence

present?がtrueの場合は自身のレシーバを返し、 falseの場合はnilを返します。

value.present? ? value : nil   ↓ value.presence # シンプルに書けます。

Page 11: Ruby on Rails - Active support超便利メソッド10選

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選

3)超便利メソッド10選!!

to_query

current_user = "kanako" current_user.to_query(‘user’) ↓ "user=kanako"

URLのクエリストリングを生成してくれます。

Page 13: Ruby on Rails - Active support超便利メソッド10選

3)超便利メソッド10選!!try

# tryメソッドを使用しない場合 unless @number.nil? @number.next end

# tryメソッドを使用した場合 @number.try(:next)

nilでない場合にのみオブジェクトのメソッドを呼び出します。

Page 14: Ruby on Rails - Active support超便利メソッド10選

3)超便利メソッド10選!!

sum

[1, 2, 3].sum # => 6 (1..100).sum # => 5050

sumメソッドはenumerableの要素を合計します。

Enumerableの 拡張

Page 15: Ruby on Rails - Active support超便利メソッド10選

3)超便利メソッド10選!!

remove

"Hello World".remove(/Hello /)  ↓ "World"

removeメソッドを実行すると、 すべての該当パターンが削除されます。

Stringの拡張

Page 16: Ruby on Rails - Active support超便利メソッド10選

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選

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選

ま と め

Active Supportには、その他たくさんの 便利な機能があります。

Array、Hash、Date、DateTimeの拡張、 ラッピング、複製・・・

紹介させていただいた以外でも強力な 機能が、たくさんあるので試してみてください。

Page 19: Ruby on Rails - Active support超便利メソッド10選

参 照 情 報

http://railsguides.jp/active_support_core_extensions.html

・RailsGuides ー Active Support コア拡張機能 ー

Page 20: Ruby on Rails - Active support超便利メソッド10選

Let's study together!

Thank you :)