Class: ActionDispatch::Routing::Mapper

Inherits:
Object
  • Object
show all
Defined in:
lib/rails/subdomain/mapper.rb

Defined Under Namespace

Classes: InvalidSubdomain

Instance Method Summary collapse

Instance Method Details

#subdomain(subdomain, options = {}, &block) ⇒ Object

Some sugar to specify subdomain constraints and defaults

Raises:



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/rails/subdomain/mapper.rb', line 5

def subdomain subdomain, options={}, &block
  subdomain = subdomain.to_s if subdomain.is_a? Symbol

  default = options.delete :default
  default ||= subdomain

  raise InvalidSubdomain, %{Default subdomain must be a string, try `subdomain #{subdomain.inspect}, default: "blah"`} unless default.is_a? String
  raise InvalidSubdomain, %{Default subdomain must match subdomain constraint} unless subdomain === default

  scope options.reverse_merge(:constraints => {:subdomain => subdomain}, :defaults => {:subdomain => default}), &block
end