site_framework 3.2.0 → 4.0.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2dd432879717df455aa88d8810bc7b780604aa75
4
- data.tar.gz: 5a8a32c23640602f22a4c1c2938203dd30f68d55
3
+ metadata.gz: 62be8f127063701148dbaea74352fe781c1f78a2
4
+ data.tar.gz: 39437c595f044e4a4ef5d6733b5178fa678b464c
5
5
  SHA512:
6
- metadata.gz: 494d692503b3babe939086aa847519ad088a01ac602b3a1a6338a8658017d16028b673eef5d713347efef8c901cbb56c90a1a9ca332451d1adf88878a8e5a78a
7
- data.tar.gz: 6e4ad4624bcd118347be5eae135b56cf4228916ca9c844fa7af526874bbcb69fc5d9becc435e7a8c9e697baeed88e586c0de8fbe8c9dbed73746fc0946b8e9fb
6
+ metadata.gz: a9e3ca92919e98c4db6a46a08aaafc54045ef7ddf5192b2c74389b1222510f729b57fe418e9f138262ae7964e40f3bc9d001054af753dd8a4ac2824326257198
7
+ data.tar.gz: 8a51d6565a1b2725fa0bcad57cab31f213119c7c12d235a5728c6dd9eab37c14a5673c23a2dd886b28d672232cd820c5e2e60debc4f0c10b26e1827f0671ee1a
data/README.md CHANGED
@@ -82,6 +82,23 @@ end
82
82
 
83
83
  **Personally I prefer this (B) option since it's more Railish.**
84
84
 
85
+ ### Access Current Site and Domain in Controllers
86
+ After installing `site_framework` you'll have `site`, `domain` and `domain_name` methods
87
+ on your `request` objects to access the respected models. But if current request belongs
88
+ to default site the return value of these methods would be `nil`
89
+
90
+ ### Access Current Site/Domain elsewhre
91
+ You can access to current `site`, `domain` and `domain_name` via `SiteFramework::CurrentState` object
92
+ every where just like this:
93
+
94
+ ```ruby
95
+ SiteFramework::CurrentState.instance.site
96
+ SiteFramework::CurrentState.instance.domain
97
+ SiteFramework::CurrentState.instance.domain_name
98
+ ```
99
+
100
+ In case of default site these methods will return `nil`
101
+
85
102
  ### Model Concern
86
103
  **SiteFramework** provides an **ActiveSupport** concern which transparently
87
104
  makes your models aware of the current **Site** and **Domain**. By includeing
@@ -93,6 +110,13 @@ All you have to do is to open there models and include the given concern.
93
110
 
94
111
  Piece of cake. right?
95
112
 
113
+ ### Default template
114
+ Since `v4.0` site model contains a field aka `default_template` which is blank by default.
115
+ By default if current request does not belongs to default site and `default_template` is not
116
+ blank, **site framework** will prepend the `default_template` to `view_path` of your application.
117
+
118
+ By this feature each site can have their own set of views.
119
+
96
120
  ## Contributing
97
121
 
98
122
  1. Fork it
@@ -0,0 +1,9 @@
1
+ class AddDefaultTemplateToSites < ActiveRecord::Migration[5.0]
2
+ def up
3
+ add_column :site_framework_sites, :default_template, :string, default: ''
4
+ end
5
+
6
+ def down
7
+ remove_column :site_framework_sites, :default_template
8
+ end
9
+ end
@@ -0,0 +1,18 @@
1
+ ActionController::Base.class_eval do
2
+
3
+ private
4
+
5
+ def set_template_path
6
+ unless request.site
7
+ # We are in site namespace
8
+ unless request.site.default_template.blank?
9
+ prepend_view_path[request.site.default_template]
10
+ end
11
+ end
12
+ end
13
+ end
14
+
15
+
16
+ ActionController::Base.instance_eval do
17
+ before_action :set_template_path
18
+ end
@@ -19,6 +19,18 @@ class SiteFramework::Routing::DefaultConstraint
19
19
  SiteFramework::CurrentState.instance.domain = nil
20
20
  SiteFramework::CurrentState.instance.site = nil
21
21
 
22
+ request.instance_eval do
23
+ def site
24
+ end
25
+
26
+ def domain
27
+ end
28
+
29
+ def domamin_name
30
+ end
31
+
32
+ end
33
+
22
34
  true
23
35
  else
24
36
  logger.info("Domain name '#{request.host}' does not match with any exist domains")
@@ -25,6 +25,20 @@ class SiteFramework::Routing::SiteConstraint
25
25
  setup(domain_obj)
26
26
  initialize_site_default_state
27
27
 
28
+ request.instance_eval do
29
+ def site
30
+ domain_obj.site
31
+ end
32
+
33
+ def domain
34
+ domain_obj.domain
35
+ end
36
+
37
+ def domamin_name
38
+ domain_obj.domain_name
39
+ end
40
+ end
41
+
28
42
  true
29
43
  else
30
44
  logger.info("Domain name '#{request.host}' does not match with any exist domains")
@@ -6,7 +6,7 @@ module SiteFramework::Routing
6
6
  end
7
7
  end
8
8
 
9
- def default_site(mapper, defaults)
9
+ def default_site(mapper, defaults = nil)
10
10
  constraint = SiteFramework::Routing::DefaultConstraint.new(mapper,
11
11
  defaults)
12
12
  constraints(constraint) do
@@ -1,3 +1,3 @@
1
1
  module SiteFramework
2
- VERSION = '3.2.0'
2
+ VERSION = '4.0.0'
3
3
  end
@@ -1,4 +1,3 @@
1
- require 'site_framework/current_state'
2
1
  require 'site_framework/helpers'
3
2
 
4
3
  # Main module of `site_framework` gem
@@ -10,11 +9,14 @@ module SiteFramework
10
9
  end
11
10
  end
12
11
 
12
+ require 'site_framework/current_state'
13
13
  require 'site_framework/engine'
14
14
  require 'site_framework/railtie'
15
15
  require 'site_framework/orm'
16
16
  require 'site_framework/routing'
17
17
  require 'site_framework/action_dispatch'
18
+ require 'site_framework/action_controller/base'
19
+
18
20
 
19
21
  case SiteFramework::ORM.current_orm
20
22
  when 'active_record'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: site_framework
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sameer Rahmani
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-14 00:00:00.000000000 Z
11
+ date: 2016-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -69,7 +69,9 @@ files:
69
69
  - config/routes.rb
70
70
  - db/migrate/20140118200201_create_site_framework_domains.rb
71
71
  - db/migrate/20140303141448_create_site_framework_sites.rb
72
+ - db/migrate/20160216141442_add_default_template_to_sites.rb
72
73
  - lib/site_framework.rb
74
+ - lib/site_framework/action_controller/base.rb
73
75
  - lib/site_framework/action_dispatch.rb
74
76
  - lib/site_framework/active_record/concerns.rb
75
77
  - lib/site_framework/active_record/migration.rb