adjustments for hostname_aliases
Oleg
committed Mar 24, 2012
commit 995690045943d58b128e5defe61115372c8265d1
Showing 5
changed files with
26 additions
and 16 deletions
app/models/cms/site.rb
+5
-5
| @@ | @@ -48,17 +48,17 @@ class Cms::Site < ActiveRecord::Base |
| return cms_site | |
| end | |
| + | protected |
| + | |
| def self.real_host_from_aliases(host) | |
| - | if ComfortableMexicanSofa.config.site_aliases |
| - | ComfortableMexicanSofa.config.site_aliases.each_with_index do |array, index| |
| - | return ComfortableMexicanSofa.config.site_aliases[index].first if array.include?(host) |
| + | if aliases = ComfortableMexicanSofa.config.hostname_aliases |
| + | aliases.each do |alias_host, aliases| |
| + | return alias_host if aliases.include?(host) |
| end | |
| end | |
| host | |
| end | |
| - | protected |
| - | |
| def assign_identifier | |
| self.identifier = self.identifier.blank?? self.hostname.try(:idify) : self.identifier | |
| end | |
comfortable_mexican_sofa/configuration.rb b/lib/comfortable_mexican_sofa/configuration.rb
+5
-5
| @@ | @@ -65,11 +65,11 @@ class ComfortableMexicanSofa::Configuration |
| # are accessible by default. Empty array will prevent rendering of all partials. | |
| attr_accessor :allowed_partials | |
| - | # Site aliases, if you want to have aliases for your site, All find_site calls |
| - | # are converted to the first one on array. Good for harmozing production env with dev/testing envs. |
| - | # e.g. site_aliases = [['domain.com', 'domain.inv'], ['seconddomain.com', 'desconddomain.lvh.me']] |
| + | # Site aliases, if you want to have aliases for your site. Good for harmonizing |
| + | # production env with dev/testing envs. |
| + | # e.g. config.site_aliases = {'host.com' => 'host.inv', 'host_a.com' => ['host.lvh.me', 'host.dev']} |
| # Default is nil (not used) | |
| - | attr_accessor :site_aliases |
| + | attr_accessor :hostname_aliases |
| # Configuration defaults | |
| def initialize | |
| @@ | @@ -97,7 +97,7 @@ class ComfortableMexicanSofa::Configuration |
| @allow_irb = false | |
| @allowed_helpers = nil | |
| @allowed_partials = nil | |
| - | @site_aliases = nil |
| + | @hostname_aliases = nil |
| end | |
| end | |
test/test_helper.rb
+1
-0
| @@ | @@ -39,6 +39,7 @@ class ActiveSupport::TestCase |
| config.allow_irb = false | |
| config.allowed_helpers = nil | |
| config.allowed_partials = nil | |
| + | config.hostname_aliases = nil |
| end | |
| ComfortableMexicanSofa::HttpAuth.username = 'username' | |
| ComfortableMexicanSofa::HttpAuth.password = 'password' | |
test/unit/configuration_test.rb
+1
-0
| @@ | @@ -31,6 +31,7 @@ class ConfigurationTest < ActiveSupport::TestCase |
| assert_equal false, config.allow_irb | |
| assert_equal nil, config.allowed_helpers | |
| assert_equal nil, config.allowed_partials | |
| + | assert_equal nil, config.hostname_aliases |
| end | |
| def test_initialization_overrides | |
test/unit/models/site_test.rb
+14
-6
| @@ | @@ -119,12 +119,20 @@ class CmsSiteTest < ActiveSupport::TestCase |
| assert_equal site_c, Cms::Site.find_site('test2.host', '/fr') | |
| assert_equal site_c, Cms::Site.find_site('test2.host', '/fr/some/path') | |
| - | |
| - | site_aliases_org = ComfortableMexicanSofa.config.site_aliases |
| - | ComfortableMexicanSofa.config.site_aliases=[['test.host', 'test99.host']] |
| - | assert_equal site_a, Cms::Site.find_site('test99.host', '/some/path') |
| - | ComfortableMexicanSofa.config.site_aliases = site_aliases_org |
| - | |
| + | end |
| + | |
| + | def test_find_site_with_site_alias |
| + | site_a = cms_sites(:default) |
| + | site_b = Cms::Site.create!(:identifier => 'site_b', :hostname => 'test2.host') |
| + | |
| + | ComfortableMexicanSofa.config.hostname_aliases = { |
| + | 'test.host' => 'alias_a.host', |
| + | 'test2.host' => %w(alias_b.host alias_c.host) |
| + | } |
| + | |
| + | assert_equal site_a, Cms::Site.find_site('alias_a.host') |
| + | assert_equal site_b, Cms::Site.find_site('alias_b.host') |
| + | assert_equal site_b, Cms::Site.find_site('alias_c.host') |
| end | |
| end | |
| \ No newline at end of file | |