railings 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/railings/domains.rb +30 -12
- data/lib/railings/routing_helper.rb +0 -11
- data/lib/railings/version.rb +1 -1
- metadata +3 -3
data/lib/railings/domains.rb
CHANGED
@@ -1,18 +1,36 @@
|
|
1
1
|
module Railings
|
2
2
|
module Domains
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
@domain = domain.downcase.to_s
|
9
|
-
class << self
|
10
|
-
def matches? request
|
11
|
-
request.subdomain.include? subdomain
|
12
|
-
end
|
3
|
+
YAML::load_file(Rails.root.join 'config', 'domains.yml').tap do |mappings|
|
4
|
+
mappings.each do |domain, mapping|
|
5
|
+
save domain, Subdomain.new(domain, mapping)
|
6
|
+
end
|
7
|
+
end rescue nil
|
13
8
|
|
14
|
-
|
15
|
-
|
9
|
+
class Subdomain < String
|
10
|
+
def initialize name, mapping = nil
|
11
|
+
replace (mapping || name).to_s.downcase
|
12
|
+
end
|
13
|
+
|
14
|
+
def matches? request
|
15
|
+
subdomain == request.subdomain
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class << self
|
20
|
+
def const_missing name
|
21
|
+
save name, Subdomain.new(name)
|
22
|
+
end
|
23
|
+
|
24
|
+
def save name, subdomain
|
25
|
+
const_set(name, subdomain).tap do
|
26
|
+
ApplicationController.send :helper, Module.new do
|
27
|
+
define_method "url_for_#{name.downcase}" do |options|
|
28
|
+
unless subdomain == request.subdomain
|
29
|
+
options[:host] = with_subdomain subdomain
|
30
|
+
options[:only_path] = false
|
31
|
+
end
|
32
|
+
options
|
33
|
+
end
|
16
34
|
end
|
17
35
|
end
|
18
36
|
end
|
@@ -1,16 +1,5 @@
|
|
1
1
|
module Railings
|
2
2
|
module RoutingHelper
|
3
|
-
Rails::application::class::parent::Domains::MAPPINGS.keys.each do |name|
|
4
|
-
define_method "url_for_#{name}" do |options|
|
5
|
-
domain = Rails::application::class::parent::Domains.const_get(name.to_s.capitalize)
|
6
|
-
if domain && domain.respond_to?(:subdomain)
|
7
|
-
options[:host] = with_subdomain domain.subdomain
|
8
|
-
options[:only_path] = false
|
9
|
-
end
|
10
|
-
options
|
11
|
-
end
|
12
|
-
end if Rails::application::class::parent.const_defined? 'Domains'
|
13
|
-
|
14
3
|
def url_for_root options
|
15
4
|
request.subdomain.present? ? options.merge!(:host => with_subdomain, :only_path => false) : options
|
16
5
|
end
|
data/lib/railings/version.rb
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 3
|
9
|
+
version: 0.0.3
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Nathaniel Jones
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-04-
|
17
|
+
date: 2011-04-06 00:00:00 -05:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|