Rubygemsとは?
RubyGemsは、Ruby言語用のパッケージ管理システムであり、Rubyのプログラムと("gem" と呼ばれる)ライブラリの配布用標準フォーマットを提供している。
gemを容易に管理でき、gemを配布するサーバの機能も持つ。
Wikipedia : RubyGems
要は、Ruby言語で書かれたプログラムをより便利にするためのツール(ライブラリ)が簡単に使えるように配布されている場所、機能です。
使ってみないとわからないと思うので、使ってみましょう!
Rubygems にある ActiveSupport を使ってみよう
今から1時間前の時間を調べて表示する(Rubygemsを使わない場合)
こんなコードで、
# 現在時刻
p Time.now
# 1時間前(60秒*60分)の時刻
p Time.now - 60*60
下記のような結果が得られます。
2013-05-25 17:24:13 +0900
2013-05-25 16:24:13 +0900
実行時間と、その1時間前の時間ですね。
Ruby言語では標準で時間の引き算(秒単位)が出来るので、こんなに簡単なコードで時間の引き算が出来るんです。
今から1時間前の時間を調べて表示する(Rubygemsを活用する場合)
# Rubygemsを使用することを明示
require 'rubygems'
# ActiveSupportを使用することを明示
require 'active_support'
# ActiveSupportに含まれる時間系の拡張機能(ライブラリ)を使用することを明示
require 'active_support/time'
# 現在時刻
p Time.now
# 1時間前(60秒*60分)の時刻
p 1.hours.ago
どうでしょうか?
Time.now - 60*60
よりも 1.hours.ago
の方が分かりやすく無いですか?
Time.now - 1.hour
などでも大丈夫です。
分かりやすいと思う方を使ってください。
RubyGemsで配布されている「ActiveSupport」というライブラリを使っています。
Ruby on RailsはRubygemsを沢山使っているFramework
ActiveSupportはRubygems上で配布されている、Ruby言語用のライブラリです。
時間だけでなく、他にも色々な機能があります。ActiveSupport便利!
Ruby on RailsといったFrameworkではActiveSupportが標準でrequireされていますので、「Railsすごい便利!と言っている方に話を聞いてみたら、実はActiveSupportの事だった」と言ったケースもままあるかなというほどです。
たとえば、オブジェクトがからかどうか判別する
object.blank?
といったコマンドも、
require 'active_support/core_ext'
すれば使えます。つまり、Railsの機能ではなく、ActiveSupportの機能なわけです。
ActiveRecordなど、その他のライブラリーも沢山標準装備して、整えた結果が、Ruby on RailsというFrameworkだったりするわけです。
Rubygemsには他にも便利なツールがたくさんある
Railsに標準装備されていない、RubyGemもたくさんあります。
-
TwitterのAPIをRubyから超簡単に実行できるgem(ライブラリー)
RubyGems : twitter -
データの管理画面を自動生成するgem(ライブラリー)
RubyGems : ActiveRecord
こちらは、RubyOnRailsでしか使えない(Rubyのみでは使えない)仕様です。
注意事項 : ライセンス
一応、ライセンスが「自由に使って良い」ものでないかどうかだけ、ホームページなどでご確認ください。ほとんどは
Active Record is released under the MIT license.
と言った風に書いてあると思います。MITライセンスは自由に使ってOKです。
その他のgem(ライブラリ)の探し方
-
RubyGems
- こちらのサイトで探せます
- 日本語NGです。欲しい機能の類似の英単語などを駆使して探しましょう。
- ただし、タイトルぐらいしか検索に引っかからなかったりするため、基本は、Googleで日本語や英語で検索するのが良いです。
-
StackOverflow
- プログラマ用QAサイトです。
- 結構、「Best way to …」といった感じで、こういった実装をしたいんだけどどうするのがベスト?って質問にgemが紹介されていたりします。
- 英語、日本語で頑張って検索してみてください。
まとめ
- rubyを使ってる人はたくさんいるので、オープンソースライブラリがたくさんあるので、ガンガン使いましょう。
- 機能を実装しようと思った時に、それがオープンソースライブラリで既にあるかどうか、探すようにしましょう
- 探す時は、Googleで英語で探すのがオススメです。行き着く先はたいていRubyGems.orgです。