ryodo
![Support via Gratipay](http://img.shields.io/gratipay/asaaki.svg?style=flat-square)
ryōdo【領土】 りょうど — A domain name parser using public suffix list
Do you ever wanted to know if suspicious.domain.name.blerp
is really a valid (registerable) domain?
Do you ever wanted to know what is the actual domain portion of yet.another.awesome.domain.co.jp
?
Then you should try ryodo
and get the answers!
Notice: This gem does not check DNS records to verify if a name was taken and registered, this is not its purpose.
I am a big fan of the UNIX philosophy: »Write programs that do one thing and do it well.«
My blog post about ryodo
: ryodo - domain parser (2012-06-02)
Usage
gem "ryodo"
dom = Ryodo.parse("my.awesome.domain.co.jp")
dom.tld
dom.domain
dom.sld
dom.subdomain
dom
dom.fqdn
dom.reverse
dom.fqdn.reverse
dom.to_a
dom.domain.to_a
dom.sld.to_a
dom.subdomain.to_a
dom.fqdn.to_a
dom.domain.to_a(:reverse)
dom.fqdn.to_a(:reverse)
dom.fqdn.to_a(:r)
You can call it in different ways:
Ryodo.parse("my.awesome.domain.co.jp")
Ryodo("my.awesome.domain.co.jp")
Ryodo["my.awesome.domain.co.jp"]
ryodo("my.awesome.domain.co.jp")
Quick check (.domain_valid?)
Ryodo.domain_valid?("my.awesome.domain.co.jp")
Ryodo.domain_valid?("co.jp")
Ryodo.valid_domain?("my.awesome.domain.co.jp")
Ryodo.valid?("my.awesome.domain.co.jp")
Ryodo?("my.awesome.domain.co.jp")
ryodo?("my.awesome.domain.co.jp")
valid_domain?("my.awesome.domain.co.jp")
String extension
require "ryodo/ext/string"
"my.awesome.domain.co.jp".to_domain
"my.awesome.domain.co.jp".ryodo
"my.awesome.domain.co.jp".valid_domain?
In Gemfile:
gem "ryodo", require: %w[ryodo ryodo/ext/string]
UTF-8 junkie?
require "ryodo/convenience/utf8"
ryōdo("my.awesome.domain.co.jp")
領土("my.awesome.domain.co.jp")
りょうど("my.awesome.domain.co.jp")
ryōdo?("my.awesome.domain.co.jp")
領土?("my.awesome.domain.co.jp")
りょうどか("my.awesome.domain.co.jp")
Extension of URI
Ryodo can transparently hook into URI, so you can use every described method on .host
.
require "ryodo/ext/uri"
uri = URI.parse("http://my.awesome.domain.jp:5555/path")
uri.host
uri.host.class
uri.host.domain
uri.host.is_valid?
In Gemfile:
gem "ryodo", require: %w[ryodo ryodo/ext/uri]
Foo …
"Uh, excuse me Sir … just one more question." — Columbo (Peter Falk †)
License
MIT/X11
2012—2015 Christoph Grabo