Skip to content

Repository files navigation

domain_name

Synopsis

Domain Name manipulation library for Ruby

Description

  • Parses a domain name ready for extracting the registered domain and TLD.

     require "domain_name"
    host = DomainName("a.b.example.co.uk")
    host.domain #=> "example.co.uk"
    host.tld #=> "uk"
    host.cookie_domain?("example.co.uk") #=> true
    host.cookie_domain?("co.uk") #=> false
    host = DomainName("[::1]") # IP addresses like "192.168.1.1" and "::1" are also acceptable
    host.ipaddr? #=> true
    host.cookie_domain?("0:0:0:0:0:0:0:1") #=> true
    
  • Implements rudimental IDNA support.

To-do's

  • Implement IDNA 2008 (and/or 2003) including the domain label validation and mapping defined in RFC 5891-5895 and UTS #46. (work in progress)

  • Define a compact YAML serialization format.

Installation

gem install domain_name

Release

Releases use v-prefixed version tags. Push the release commit to master, wait for CI to pass, and then push the matching tag. A successful tag CI run publishes the gem through RubyGems trusted publishing and creates the GitHub release.

Public Suffix List update pull requests from the automation/public-suffix-list branch are released automatically after the merged commit passes CI on master. The release workflow creates the matching tag before publishing.

Before the first automated release, register knu/ruby-domain_name, workflow publish-gem.yml, and environment rubygems.org as a trusted publisher at https://rubygems.org/gems/domain_name/trusted_publishers/new.

References

License

Copyright (c) 2011-2017 Akinori MUSHA

Licensed under the 2-clause BSD license.

Some portion of this library is copyrighted by third parties and licensed under MPL 2.0 or 3-clause BSD license, See LICENSE.txt for details.

About

Domain Name manipulation library for Ruby

Resources

Stars

120 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages