Ruby
 Computer >> コンピューター >  >> プログラミング >> Ruby

Ruby標準ライブラリからの5つの有用な例

Ruby標準ライブラリは、Rubyに付属しているが、言語自体の一部ではない一連のモジュールとクラスです。

これらのクラスは、次のようなさまざまなユーティリティを提供します。

  • Base64エンコーディング
  • 素数の生成
  • DNS解決

この記事では、これらのクラスのうち5つを役立つ例とともに紹介します。

Rubyロガークラス

エラーやデバッグメッセージをログに記録する必要がある場合は、Rubyが Loggerでカバーしています。 クラス。

このクラスは、ロギングを開始するために必要なすべてを提供します!

Loggerを使用するには クラスでは、 Loggerを簡単に作成できます オブジェクト&パラメータとして出力ストリーム(またはファイル名)を指定します。次に、さまざまなログレベルを使用してメッセージを登録できます。

ロギングレベルは次のとおりです。

  • デバッグ
  • 情報
  • 警告
  • エラー
  • 致命的

require 'logger'

logger = Logger.new(STDOUT)

logger.info 'testing...'
logger.warn 'fun with Ruby :)'

これにより、次の出力が生成されます

I, [2016-05-14T15:50:21.367590 #12148]  INFO -- : testing...
W, [2016-05-14T15:50:21.846651 #12148]  WARN -- : fun with Ruby 🙂

最初の文字はログレベルの省略形です(情報の場合はI、警告の場合はW)…次に、タイムスタンプと現在のプロセスID( Process.pid を使用してRubyで取得できます)があります。 。

最後に、完全なログレベルと実際のメッセージがあります。

新しいフォーマッターを提供することで、このフォーマットを変更できます。

素数の操作

日常的に素数を処理する必要はないかもしれませんが、Rubyが Prime > クラス。

Primeが必要な場合 prime?が追加されます Fixnumへのメソッド 。

require 'prime'

5.prime?  # true
11.prime? # true
20.prime? # false

このクラスには素数ジェネレータも含まれています。

Prime.take(10)
# [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

StringIOクラスの使用方法

StringIO クラスを使用すると、 IOのように動作する文字列を作成できます オブジェクト。

これは、ファイルまたは STDIN から読み取る場合と同じように、この文字列を操作できることを意味します。 (標準入力)。

ここに例があります

require 'stringio'

io = StringIO.new

io << 'test'
io << 'code'

puts io.string
# "testcode"

いくつかの点に注意してください

StringIOにデータを追加するとき オブジェクトはスペースや改行を追加しません。実際の文字列を取得するには、 stringを呼び出す必要があります。 メソッド。

また、通常の文字列のように、配列のインデックスを使用して個々の文字にアクセスすることはできません。

これはいつ役に立ちますか?

場合によっては、ファイルまたは他のIOオブジェクトを、より制御しやすい別のオブジェクトに置き換えたいことがあります。たとえば、テスト環境では、 STDOUTを置き換えることができます StringIOを使用 オブジェクト。

Railsの実際の例は、https://github.com/rails/rails/blob/52ce6ece8c8f74064bb64e0a0b1ddd83092718e1/activesupport/test/logger_test.rb

で確認できます。

Base64のエンコードとデコード

Base64は、インターネットで一般的なエンコード形式です。

このように見えます

"cnVieQ=="

なぜそれが役立つのですか?

URLには制限された文字セットが許可されていますが、それらを含めることが必要な場合があります。Base64でこれが可能になります。

エンコードする方法は次のとおりです。

require 'base64'

Base64.encode64("ruby")
"cnVieQ=="

デコードする方法は次のとおりです。

require 'base64'

Base64.decode64("cnVieQ==")
"ruby"

パスの操作

パス名 classは、 Dirなどのいくつかのファイルシステム探索ユーティリティをラップします &ファイル 、はるかに強力なクラスで。

メソッド名は同じですが、 Pathnameを返します。 文字列や配列の代わりにオブジェクト。これが意味するのは、ファイルに関連するすべてのメソッドで結果を処理し続けることができるということです。

これは良い例です

require 'pathname'

Pathname.glob("*").count(&:directory?)

Dirでこれを行おうとした場合 、このコードを使用する必要がありますが、これはそれほどエレガントではありません。

Dir.glob("*").count { |d| File.directory?(d) }

次回ファイルシステム関連のタスクを実行する必要があるときに、これを試してみてください🙂

結論

これらの例がお役に立てば幸いです。標準ライブラリをもう少し詳しく調べて、標準ライブラリで何ができるかを学ぶことができます。

あなたがそれを好きなら、この投稿を共有することを忘れないでください🙂


  1. Ruby Mapメソッドの使用方法(例付き)

    Mapは、配列、ハッシュ、範囲で使用できるRubyメソッドです。 マップの主な用途は、データを変換することです。 例 : 文字列の配列が与えられた場合、すべての文字列に目を通し、すべての文字を大文字にすることができます。 または、Userのリストがある場合 オブジェクト… 変換できます 対応するメールアドレス、電話番号、またはその他の属性のリストにそれらを追加します Userで定義 クラス。 これを行う方法を正確に見てみましょう! ルビーマップ構文 マップの構文は次のようになります: array = [a, b, c] array.map { |string| string.

  2. Rubyの配列クラスの使用方法(例+便利なメソッド)

    アレイとは何ですか? 配列は組み込みのRubyクラスであり、0個以上のアイテムのリストを保持します 、およびこれらすべてのアイテムを簡単に追加、アクセス、およびループするのに役立つメソッドが含まれています。 配列が存在しない場合は多くの変数を使用する必要があるため、これは便利です。 例 : a =1b =2c =3 しかし、代わりに、あなたはそうすることができます : 番号=[1、2、3] 最良の部分は? 配列内には何でも入れることができます! いいね : 数字 文字列 より多くのアレイ! (それは多次元配列になります) アレイを最大限に活用できるように、アレイについ