SlideShare a Scribd company logo
1 of 20
Download to read offline
Ruby / Ruby on Railsビギナーズ倶楽部
Active Support
超便利メソッド10選!!
2015.10.24
Self-Intoroduction
徳島県出身です
(ó `o) 一緒に勉強しましょう( ́ ▽ ` )ノ
勉強会やってます!
アプリケーションエンジニア(Rails/LAMP/Java/Oracle)
アウトプットを主軸においた、勉強会を運営しています:)
Click
1)Railsの全体像を知ろう!
Today's Agenda
2)ActiveSupportの基本
3)超便利メソッド10選!!
1)Railsの全体像を知ろう!
Ruby on Railsは、機能毎のコンポーネントを
組み合わせて構成されています。
Ruby on Railsの構成要素を
確認していきましょう。
1)Railsの全体像を知ろう!
Railtie
(中核)
コントローラ層
AbstractController
ActionController
ActionMailer
ActiveModel
モデル層
ActiveRecord
ビュー層:ActionView
ルーティング:ActionDispatch
ユーティリティ:ActiveSupport
Webサービス:ActiveResource
国際化:I18n
テスト:test/unit
ライブラリ管理:Bundler
1)Railsの全体像を知ろう!
Railtie
(中核)
コントローラ層
AbstractController
ActionController
ActionMailer
ActiveModel
モデル層
ActiveRecord
ビュー層:ActionView
ルーティング:あ
ユーティリティ:ActiveSupport
Webサービス:ActiveResource
国際化:I18n
テスト:test/unit
ライブラリ管理:Bundler
今日は、ActiveSupportを
勉強します!
2)ActiveSupportの基本
Rubyに便利な機能が追加されたライブラリ
・Rubyの機能だと思っていても、
ActiveSupportの機能だったりもします。
・ActiveSupportへの理解を深めることが、
Railsの理解に繋がります。
・Railsでは、基本的に全ての
 Active Supportが読み込まれます。
2)ActiveSupportの基本
Sinatra等では、コア拡張機能を読み込んで利用します。
require 'active_support'
require 'active_support/core_ext/object/blank'
require 'active_support'
require 'active_support/core_ext'
必要な定義だけを選ぶ場合
すべてのコア拡張機能を読み込む
3)超便利メソッド10選!!
blank?
・nilとfalse
・空白文字 (whitespace) だけで構成された文字列
・空欄の配列とハッシュ
以下の値を、空白(blank)とみなします。
present?
「!blank?」メソッドと同じ意味です。
3)超便利メソッド10選!!
presence
present?がtrueの場合は自身のレシーバを返し、
falseの場合はnilを返します。
value.present? ? value : nil
  ↓
value.presence # シンプルに書けます。
3)超便利メソッド10選!!
in?
1.in?([1,2]) # => true
"lo".in?("hello") # => true
25.in?(30..50) # => false
あるオブジェクトが他のオブジェクトに含まれているか
どうかをテストします。
3)超便利メソッド10選!!
to_query
current_user = "kanako"
current_user.to_query( user )
↓
"user=kanako"
URLのクエリストリングを生成してくれます。
3)超便利メソッド10選!!
try
# tryメソッドを使用しない場合
unless @number.nil?
@number.next
end
# tryメソッドを使用した場合
@number.try(:next)
nilでない場合にのみオブジェクトのメソッドを呼び出します。
3)超便利メソッド10選!!
sum
[1, 2, 3].sum # => 6
(1..100).sum # => 5050
sumメソッドはenumerableの要素を合計します。
Enumerableの
拡張
3)超便利メソッド10選!!
remove
"Hello World".remove(/Hello /)
 ↓
"World"
removeメソッドを実行すると、
すべての該当パターンが削除されます。
Stringの拡張
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の拡張
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の拡張
ま と め
Active Supportには、その他たくさんの
便利な機能があります。
Array、Hash、Date、DateTimeの拡張、
ラッピング、複製・・・
紹介させていただいた以外でも強力な
機能が、たくさんあるので試してみてください。
参 照 情 報
http://railsguides.jp/active_support_core_extensions.html
・RailsGuides ー Active Support コア拡張機能 ー
Let's study together!
Thank you :)

More Related Content

More from Kanako Kobayashi

React Nativeの話のその前に… サービスの作り方の話
React Nativeの話のその前に… サービスの作り方の話React Nativeの話のその前に… サービスの作り方の話
React Nativeの話のその前に… サービスの作り方の話Kanako Kobayashi
 
Movable Type Data API連携!店舗情報を地図に表示させよう!
Movable Type Data API連携!店舗情報を地図に表示させよう!Movable Type Data API連携!店舗情報を地図に表示させよう!
Movable Type Data API連携!店舗情報を地図に表示させよう!Kanako Kobayashi
 
Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!Kanako Kobayashi
 
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!Kanako Kobayashi
 
Xcodeのデバッグを極めよう!
Xcodeのデバッグを極めよう!Xcodeのデバッグを極めよう!
Xcodeのデバッグを極めよう!Kanako Kobayashi
 
Swiftオープンソース化ってなんですか?
Swiftオープンソース化ってなんですか?Swiftオープンソース化ってなんですか?
Swiftオープンソース化ってなんですか?Kanako Kobayashi
 
Railsで非同期処理を実装しよう!!
Railsで非同期処理を実装しよう!!Railsで非同期処理を実装しよう!!
Railsで非同期処理を実装しよう!!Kanako Kobayashi
 
Swiftで、Webサーバにデータを送信・登録しよう!
Swiftで、Webサーバにデータを送信・登録しよう!Swiftで、Webサーバにデータを送信・登録しよう!
Swiftで、Webサーバにデータを送信・登録しよう!Kanako Kobayashi
 
楽しいSwift!クラスと構造体を知る:)
楽しいSwift!クラスと構造体を知る:)楽しいSwift!クラスと構造体を知る:)
楽しいSwift!クラスと構造体を知る:)Kanako Kobayashi
 
WordPressの構造を理解しよう
WordPressの構造を理解しようWordPressの構造を理解しよう
WordPressの構造を理解しようKanako Kobayashi
 
Swiftで外部ライブラリを使ってみよう
Swiftで外部ライブラリを使ってみようSwiftで外部ライブラリを使ってみよう
Swiftで外部ライブラリを使ってみようKanako Kobayashi
 
Ruby on Railsではじめるrspecテスト
Ruby on RailsではじめるrspecテストRuby on Railsではじめるrspecテスト
Ruby on RailsではじめるrspecテストKanako Kobayashi
 
oEmbedで、色んなコンテンツをWordPressに組み込もう!
oEmbedで、色んなコンテンツをWordPressに組み込もう!oEmbedで、色んなコンテンツをWordPressに組み込もう!
oEmbedで、色んなコンテンツをWordPressに組み込もう!Kanako Kobayashi
 
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回Kanako Kobayashi
 
シェイクを検知して学ぼう、モーションイベント!
シェイクを検知して学ぼう、モーションイベント!シェイクを検知して学ぼう、モーションイベント!
シェイクを検知して学ぼう、モーションイベント!Kanako Kobayashi
 
Railsから学ぶRESTfulなuri設計
Railsから学ぶRESTfulなuri設計Railsから学ぶRESTfulなuri設計
Railsから学ぶRESTfulなuri設計Kanako Kobayashi
 
Svgアニメーションを実装してみよう 20150207
Svgアニメーションを実装してみよう 20150207Svgアニメーションを実装してみよう 20150207
Svgアニメーションを実装してみよう 20150207Kanako Kobayashi
 
railsはじめの一歩
railsはじめの一歩railsはじめの一歩
railsはじめの一歩Kanako Kobayashi
 
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」Kanako Kobayashi
 
20141220_iOS8マルチデバイス対応(Size Classes編)
20141220_iOS8マルチデバイス対応(Size Classes編)20141220_iOS8マルチデバイス対応(Size Classes編)
20141220_iOS8マルチデバイス対応(Size Classes編)Kanako Kobayashi
 

More from Kanako Kobayashi (20)

React Nativeの話のその前に… サービスの作り方の話
React Nativeの話のその前に… サービスの作り方の話React Nativeの話のその前に… サービスの作り方の話
React Nativeの話のその前に… サービスの作り方の話
 
Movable Type Data API連携!店舗情報を地図に表示させよう!
Movable Type Data API連携!店舗情報を地図に表示させよう!Movable Type Data API連携!店舗情報を地図に表示させよう!
Movable Type Data API連携!店舗情報を地図に表示させよう!
 
Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!Rubyを楽しくする第一歩!ブロックを理解する!
Rubyを楽しくする第一歩!ブロックを理解する!
 
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
iOS開発を楽しむ最初の一歩!デリゲートをなるべく分かりやすく!
 
Xcodeのデバッグを極めよう!
Xcodeのデバッグを極めよう!Xcodeのデバッグを極めよう!
Xcodeのデバッグを極めよう!
 
Swiftオープンソース化ってなんですか?
Swiftオープンソース化ってなんですか?Swiftオープンソース化ってなんですか?
Swiftオープンソース化ってなんですか?
 
Railsで非同期処理を実装しよう!!
Railsで非同期処理を実装しよう!!Railsで非同期処理を実装しよう!!
Railsで非同期処理を実装しよう!!
 
Swiftで、Webサーバにデータを送信・登録しよう!
Swiftで、Webサーバにデータを送信・登録しよう!Swiftで、Webサーバにデータを送信・登録しよう!
Swiftで、Webサーバにデータを送信・登録しよう!
 
楽しいSwift!クラスと構造体を知る:)
楽しいSwift!クラスと構造体を知る:)楽しいSwift!クラスと構造体を知る:)
楽しいSwift!クラスと構造体を知る:)
 
WordPressの構造を理解しよう
WordPressの構造を理解しようWordPressの構造を理解しよう
WordPressの構造を理解しよう
 
Swiftで外部ライブラリを使ってみよう
Swiftで外部ライブラリを使ってみようSwiftで外部ライブラリを使ってみよう
Swiftで外部ライブラリを使ってみよう
 
Ruby on Railsではじめるrspecテスト
Ruby on RailsではじめるrspecテストRuby on Railsではじめるrspecテスト
Ruby on Railsではじめるrspecテスト
 
oEmbedで、色んなコンテンツをWordPressに組み込もう!
oEmbedで、色んなコンテンツをWordPressに組み込もう!oEmbedで、色んなコンテンツをWordPressに組み込もう!
oEmbedで、色んなコンテンツをWordPressに組み込もう!
 
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回
 
シェイクを検知して学ぼう、モーションイベント!
シェイクを検知して学ぼう、モーションイベント!シェイクを検知して学ぼう、モーションイベント!
シェイクを検知して学ぼう、モーションイベント!
 
Railsから学ぶRESTfulなuri設計
Railsから学ぶRESTfulなuri設計Railsから学ぶRESTfulなuri設計
Railsから学ぶRESTfulなuri設計
 
Svgアニメーションを実装してみよう 20150207
Svgアニメーションを実装してみよう 20150207Svgアニメーションを実装してみよう 20150207
Svgアニメーションを実装してみよう 20150207
 
railsはじめの一歩
railsはじめの一歩railsはじめの一歩
railsはじめの一歩
 
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
swiftビギナーズ倶楽部:タブバーから学ぶ 「App delegate」と「as演算子」
 
20141220_iOS8マルチデバイス対応(Size Classes編)
20141220_iOS8マルチデバイス対応(Size Classes編)20141220_iOS8マルチデバイス対応(Size Classes編)
20141220_iOS8マルチデバイス対応(Size Classes編)
 

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