landlady 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +1 -1
- data/lib/generators/landlady/{install/install_generator.rb → install_generator.rb} +3 -2
- data/lib/generators/landlady/{install/templates → templates}/create_tenants.rb +0 -0
- data/lib/landlady.rb +30 -0
- data/lib/landlady/railtie.rb +13 -10
- data/lib/landlady/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
OWMyZjZiZmY1OTY2NmM5ODRmMmM0Njg2ZmNlYmUzYzA4ZGU1NjcwYw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZjljNmE3N2JhYWIxYjI4MjZkZjkxYzgyNjgyYWUwZTRhZTNlNWJlYQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
Mzg5ZDVlYmY2OTlmZmFjMjQ3OTk3MTA2ODI3NmE2ZmVjY2RmM2UzN2NkYzk1
|
10
|
+
ODE3Mjk3NGVlZTNiODg2OWM5MWE5ODA4OGVjNDY5OWE2OTdlODZiMjRiMDE3
|
11
|
+
MDdkMGQ5ZDQxMGM0ZTI0Y2I4OTZjOTY0ZmIzMGM5MzNjOWZjMGQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MWQ2NzE1NGU5ZGEwOGEyNGI1ZWU1YjRhYzFkMmZiMTVjODJhN2MwMmFlOWFj
|
14
|
+
ZGM4ZDE3ZjUxNGI2NDA1NGZmODkyZGYxOGM4NDBjZGI2NDk1NzI0MTBmMDQ0
|
15
|
+
MzdiMGVlODNlZDU3MDM5NzEyYmRiMTc3NTAxOGZkMGQ5NTE2MWU=
|
data/README.md
CHANGED
@@ -2,10 +2,11 @@ require 'rails/generators/migration'
|
|
2
2
|
|
3
3
|
module Landlady
|
4
4
|
module Generators
|
5
|
-
class InstallGenerator <
|
5
|
+
class InstallGenerator < Rails::Generators::Base
|
6
6
|
include Rails::Generators::Migration
|
7
|
+
|
7
8
|
source_root File.expand_path('../templates', __FILE__)
|
8
|
-
desc "
|
9
|
+
desc "Add the migrations"
|
9
10
|
|
10
11
|
def self.next_migration_number(path)
|
11
12
|
unless @prev_migration_nr
|
File without changes
|
data/lib/landlady.rb
CHANGED
@@ -26,4 +26,34 @@ module Landlady
|
|
26
26
|
sql = "SELECT nspname FROM pg_namespace WHERE nspname !~ '^pg_.*'"
|
27
27
|
ActiveRecord::Base.connection.query(sql).flatten
|
28
28
|
end
|
29
|
+
|
30
|
+
class Tenant < ActiveRecord::Base
|
31
|
+
|
32
|
+
has_and_belongs_to_many :admins
|
33
|
+
|
34
|
+
validates :code, :subdomain, :name, :uniqueness => true
|
35
|
+
|
36
|
+
after_create :prepare_tenant
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def prepare_tenant
|
41
|
+
create_schema
|
42
|
+
load_tables
|
43
|
+
end
|
44
|
+
|
45
|
+
def create_schema
|
46
|
+
Landlady.create_schema id unless Landlady.schemas.include? id
|
47
|
+
end
|
48
|
+
|
49
|
+
def load_tables
|
50
|
+
return if Rails.env.test?
|
51
|
+
Landlady.set_search_path id, false
|
52
|
+
load "#{Rails.root}/db/schema.rb"
|
53
|
+
::Application::SHARED_TABLES.each { |name| connection.execute %{drop table "#{name}"} }
|
54
|
+
Landlady.restore_default_search_path
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
29
59
|
end
|
data/lib/landlady/railtie.rb
CHANGED
@@ -1,14 +1,17 @@
|
|
1
1
|
require "rails/railtie"
|
2
2
|
|
3
3
|
module Landlady
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
4
|
+
class Railtie < Rails::Railtie
|
5
|
+
|
6
|
+
initializer "Landlady.handle_subdomains" do
|
7
|
+
ActiveSupport.on_load(:action_controller) do
|
8
|
+
Landlady.set_search_path(@tenant.id) if @tenant = Landlady::Tenant.find_by_subdomain(request.subdomain)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
rake_tasks do
|
13
|
+
load "tasks/tenants.rake"
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
14
17
|
end
|
data/lib/landlady/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: landlady
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kym McInerney
|
@@ -52,8 +52,8 @@ files:
|
|
52
52
|
- README.md
|
53
53
|
- Rakefile
|
54
54
|
- landlady.gemspec
|
55
|
-
- lib/generators/landlady/
|
56
|
-
- lib/generators/landlady/
|
55
|
+
- lib/generators/landlady/install_generator.rb
|
56
|
+
- lib/generators/landlady/templates/create_tenants.rb
|
57
57
|
- lib/landlady.rb
|
58
58
|
- lib/landlady/railtie.rb
|
59
59
|
- lib/landlady/version.rb
|