🙌
Rubyの Addressable ジェムで効率的なURL処理を行う
今日は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