🙌

Rubyの Addressable ジェムで効率的なURL処理を行う

2023/11/15に公開

今日はAddressable ジェムを使ってRubyで複雑なURL処理を簡単に行う方法を紹介します。

Addressable ジェムとは

標準の URI ライブラリよりも詳細なURL処理機能を提供するRubyのライブラリ。
URLの解析、構築、正規化など、柔軟な操作が可能。

基本的な使い方

インストール方法:

gem install addressable

または Gemfile に追加:

gem 'addressable'

URL解析の基本

require 'addressable/uri'

url = 'http://example.com/path?query=param'
uri = Addressable::URI.parse(url)

URLコンポーネントへのアクセス

スキーマ、ホスト、パス、クエリの取得:

uri.scheme  # => "http"
uri.host    # => "example.com"
uri.path    # => "/path"
uri.query   # => "query=param"

より高度な使用例

クエリパラメータの操作:

uri.query_values = { 'new_param' => 'value', 'another_param' => '123' }
uri.to_s  # => "http://example.com/path?new_param=value&another_param=123"
URLの構築:
ruby
Copy code
uri = Addressable::URI.new(
  scheme: 'https',
  host: 'example.com',
  path: '/path',
  query: 'param=value'
)
uri.to_s  # => "https://example.com/path?param=value"

URLの正規化:

uri.normalize.to_s  # 一貫性のある形式に正規化されたURLを返す
実践的な使用例
具体的なシナリオ: Addressable を使って複雑なリダイレクトURLを処理する方法。
ruby
Copy code
original_url = "http://www.example.com/a%20b"
uri = Addressable::URI.parse(original_url)
uri.normalize.to_s  # => "http://www.example.com/a%20b"

まとめ
Addressable ジェムはRubyでのURL処理をより柔軟かつ効果的に行うための強力なツールです。
この記事を見て少しでも使い方の参考になったら幸いです。

Discussion