No release in over 3 years
Low commit activity in last 3 years
Checks for valid hostname labels
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

 Project Readme

validates_as_hostname_label¶ ↑

Checks for valid hostname labels by looking for:

  • Length between 1 and 63 characters long

  • Alphanumeric, hyphen, and (optionally) underscore characters

  • Labels that don’t begin or end with a hyphen or underscore

  • Reserved labels

See en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_host_names

Installation¶ ↑

gem install validates_as_hostname_label
OR
script/plugin install git://github.com/shuber/validates_as_hostname_label.git

Usage¶ ↑

class Account < ActiveRecord::Base
  validates_as_hostname_label :subdomain
end

@account = Account.new
@account.save # false
@account.errors # { :subdomain => 'is required' }

You may optionally pass a :reserved option which should be an array of hostname labels to exclude, otherwise ValidatesAsHostnameLabel.default_options[:reserved] will be used.

class Account < ActiveRecord::Base
  validates_as_hostname_label :subdomain, :reserved => ['www', 'ftp', 'mail', 'pop']
end

@account = Account.new :subdomain => 'www'
@account.save # false
@account.errors # { :subdomain => 'is reserved' }

Also accepts an :allow_underscores option which defaults to false.

class Account < ActiveRecord::Base
  validates_as_hostname_label :subdomain, :allow_underscores => true
end

@account = Account.new :subdomain => 'test_ing'
@account.save # true

The standard validation options :if, :unless, and :allow_blank work as well.

Internationalization¶ ↑

Uses the following I18n keys:

  • validates_as_hostname_label.invalid_format

  • validates_as_hostname_label.invalid_length

  • validates_as_hostname_label.invalid_prefix_or_suffix

  • validates_as_hostname_label.reserved

Note on Patches/Pull Requests¶ ↑

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don’t break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but

    bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.

Contact¶ ↑

Problems, comments, and suggestions all welcome: shuber@huberry.com