【Ruby入門】gemとライブラリ
  • facebookページ
  • twitterページ
  • 2018.01.09

    【Ruby入門】gemとライブラリ

    本記事では、gemとライブラリについて解説します。

    gemとは簡単にいえばライブラリで、誰かが作ったものを自分のプログラムで使うことができるのです。

    gemを使えば毎回イチからプログラムを作る必要がなくなります

    gemは膨大な数になりますが、ほんの一部を紹介します。

    ぜひ雰囲気をつかんでください。

    gemとは!という定義は後にして、実際に動かしてみましょう。

    都道府県を取得するjp_prefecture

    JIS X 0401 により、各都道府県におおむね北東から南西へ、01から47までの番号が割り振られています。

    みなさんのお住いの都道府県にも、必ず番号が振られています。

    都道府県コードから、都道府県を得るプログラムはどうすればよいでしょうか?

    すぐに思いつく方法は、どこかに配列またはハッシュを定義してそれを呼び出すというものでしょう。

    確かにそれでもよいのですが、もう少しスマートにgemを使ってみましょう。

    都道府県コードから都道府県名を取得したい!と思ったらまず「gem 都道府県」で検索しましょう。

    jp_prefectureがヒットします。

    jp_prefecture とは都道府県コードと都道府県名を変換するライブラリです。

    と説明があります。これを使いましょう。

    gemはだいたいインストール方法や使い方が書かれています。

    上記のリンクによると、以下でインストールできるそうです。

    やってみましょう。以下のようなメッセージが返ってくれば成功です。

    確認はこうします。

    以下が表示されれば完了です。

    使い方も書いてあるので、まねてみましょう。

    [実行結果]

    もうできました!

    都道府県コード13は東京都なので、”東京都”という文字列が表示されました。

    もうちょっと解説を見ると、都道府県名から都道府県コードを得ることもできるようです。

    [実行結果]

    今度は”東京都”から13を得ることができました。

    さらによく見ると、地方も得られるようです。例えば東京であれば関東ですよね。

    これを使って、関西地方の都道府県だけ出してみましょう。

    [実行結果]

    できました!!

    近畿二府四県を取得できました。

    ここで郵便番号を取得すること自体のコーディングは一切していないということに注目してください。

    他にもさまざまな使い方があるようですが、そろそろ別のgemに行きましょう。

    CSVファイルを読み込む CSV

    CSVファイルをパース(構文解析、要はカンマごとの値を取り出す等々)したいことはよくあります。

    どうせだったら、カンマごとに配列に入れてくれればいいのに・・・

    そう思いますよね。

    自分が欲しいと感じたら、Rubyの世界ではだいたいがgemとして公開されています。それを使わない手はありません。

    というわけで「gem CSV」で検索すれば、以下がヒットします。

    その名もcsvです。そのまんまですね。

    ここを見てみると、やはりインストール手順と使い方が書いてあります。

    インストールは以下のとおりです。

    適当なCSVファイルを用意しましょう。

    今回は郵便番号データを使います。

    東京の分だけダウンロードしましょう。

    ZIP形式なので、ダウンロードして解凍すると13TOKYO.csvというファイルができます。

    そのファイルをソースファイルと同じフォルダに保存してください。

    そしてCSVのページへ戻ると、使い方が書いてあります。

    だそうです。

    とりあえず動くかどうか知りたいので、空振りすることを予想してそのまま動かしましょう。

    [実行結果]

    いきなりエラー・・・

    「ruby csv 読み込み」で改めて検索してみましょう。すると、エンコード指定で読み込む方法が見つかります。

    ついでに、foreachも変ですね。eachに直しましょう。

    読み込みも分けて簡潔にします。

    まずは中身を確認するまでいきましょう。

    [実行結果]

    何か出ました!

    どうやらrowに1行分の内容が配列で入っているようです。

    ということは、郵便番号っぽい3つめを指定すれば良いのでしょうか?

    [実行結果]

    出ました!

    あとは、要素指定して千代田区のものだけを出力、などの工夫ができますね。

    まとめ

    本記事では、gemの使い方を解説しました。

    今後「誰でも思いつきそうなことなら、何か良いgemはないかな?」と考えてみてください。

    きっとどこかの誰かが先に作ってくれていますよ!


    他のRuby入門記事はこちら

    【Ruby入門】Rubyとは何か?学習方法や将来性まで考えました!

    【Ruby入門】Ruby on Railsをやってみよう!

    【Ruby入門】環境構築(Mac/Win)

    【Ruby入門】nokogiriでスクレイピング

    【Ruby入門】データベース

    【Ruby入門】gemとライブラリ

    【Ruby入門】エラーと例外処理

    【Ruby入門】モジュール(module)とMix-in

    【Ruby入門】Procクラスとラムダ(lambda)

    【Ruby入門】ブロック

    【Ruby入門】メソッド

    【Ruby入門】クラスをコーディング(2) オブジェクト指向

    【Ruby入門】クラスをコーディング(1) classを作る

    【Ruby入門】クラスの継承、オーバーライド

    【Ruby入門】クラスとオブジェクト

    【Ruby入門】ディレクトリ(フォルダ)の作成、削除

    【Ruby入門】ファイルの移動、コピー、削除

    【Ruby入門】入力と出力

    【Ruby入門】Rubyの正規表現

    【Ruby入門】正規表現で置換する

    【Ruby入門】正規表現とは何か?

    【Ruby入門】文字列の結合などの操作

    【Ruby入門】CSVの基本と操作

    【Ruby入門】JSONの基本と操作

    【Ruby入門】乱数(Random)などの数値計算用クラスや端数処理

    【Ruby入門】日付の基本と操作(Time, Date)

    【Ruby入門】数値の数え上げ「upto」と四捨五入

    【Ruby入門】文字列の標準ライブラリnkfとヒアドキュメント

    【Ruby入門】数値の基本とメソッド (timesメソッド他)

    【Ruby入門】ハッシュ(hash)をeachで取り出す!その他ハッシュの応用に

    【Ruby入門】ハッシュ(hash)とシンボルの基本

    【Ruby入門】文字列の基本と表示メソッド

    【Ruby入門】Rubyの繰り返しを極める!様々な繰り返しのバリエーション

    【Ruby入門】最初はこれだけ!まずは手を動かしたい人のRuby入門

    【Ruby入門】ifとelseについて

    【Ruby入門】配列と操作(基本編)

    【Ruby入門】eachメソッドの使い方と応用例


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料10万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテキャンバナー ポテキャリバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア

    関連ワード

    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE