landlady 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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NzYyYjNlM2JhNDAxMjk2Mjk4YWI4NGE1MGE4MTJlZmU3YTlmNmQzYw==
4
+ OWMyZjZiZmY1OTY2NmM5ODRmMmM0Njg2ZmNlYmUzYzA4ZGU1NjcwYw==
5
5
  data.tar.gz: !binary |-
6
- Y2VmNzAzZmJiYTJjMTMzYjEyNjE2ZDJhYmJkYTc5MDNlYWIwZjQ5NA==
6
+ ZjljNmE3N2JhYWIxYjI4MjZkZjkxYzgyNjgyYWUwZTRhZTNlNWJlYQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- Y2QxNTBkNGM2Y2IwZGM3N2QyMGZmYTNmZDlhNDZiNDY1NGJlNGE5ODMxZTA1
10
- ZThiZjU2Yzg3MDg0N2JkNTYyMjQwMzdkYzRhOTljZDQ5YjcxNzYzMzY0MThj
11
- MWFkMzlmOTM3MjY1ZGY4ZTI1Mzc5OWYyNGEyZGI1ODEyZjM2ZGY=
9
+ Mzg5ZDVlYmY2OTlmZmFjMjQ3OTk3MTA2ODI3NmE2ZmVjY2RmM2UzN2NkYzk1
10
+ ODE3Mjk3NGVlZTNiODg2OWM5MWE5ODA4OGVjNDY5OWE2OTdlODZiMjRiMDE3
11
+ MDdkMGQ5ZDQxMGM0ZTI0Y2I4OTZjOTY0ZmIzMGM5MzNjOWZjMGQ=
12
12
  data.tar.gz: !binary |-
13
- ZWExMDIzODVhZWE0MGFhYzQ5YzFjZWI4ZjFiMGI4NWVhNThlNWU2ZTkwNzgy
14
- ODUwYzcwOTAzYjQyNjNlMmVmMTU5YmQ1NWUzMWMwMGNmNjUzZGEyMzk3MzEw
15
- YmVmM2QzNWQ5YTAwOGNhMmM3M2MyYWFiYjRmZmFkMTBlODIxMGE=
13
+ MWQ2NzE1NGU5ZGEwOGEyNGI1ZWU1YjRhYzFkMmZiMTVjODJhN2MwMmFlOWFj
14
+ ZGM4ZDE3ZjUxNGI2NDA1NGZmODkyZGYxOGM4NDBjZGI2NDk1NzI0MTBmMDQ0
15
+ MzdiMGVlODNlZDU3MDM5NzEyYmRiMTc3NTAxOGZkMGQ5NTE2MWU=
data/README.md CHANGED
@@ -18,7 +18,7 @@ Or install it yourself as:
18
18
 
19
19
  Then Install and run the migrations:
20
20
 
21
- $ rails g my_gem:install
21
+ $ rails g landlady:install
22
22
  $ rake db:migrate
23
23
 
24
24
 
@@ -2,10 +2,11 @@ require 'rails/generators/migration'
2
2
 
3
3
  module Landlady
4
4
  module Generators
5
- class InstallGenerator < ::Rails::Generators::Base
5
+ class InstallGenerator < Rails::Generators::Base
6
6
  include Rails::Generators::Migration
7
+
7
8
  source_root File.expand_path('../templates', __FILE__)
8
- desc "add the migrations"
9
+ desc "Add the migrations"
9
10
 
10
11
  def self.next_migration_number(path)
11
12
  unless @prev_migration_nr
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
@@ -1,14 +1,17 @@
1
1
  require "rails/railtie"
2
2
 
3
3
  module Landlady
4
- class Railtie < ::Rails::Railtie
5
-
6
- initializer "Landlady.handle_subdomains" do |app|
7
- Landlady.set_search_path(@tenant.id) if @tenant = Tenant.find_by_subdomain(request.subdomain)
8
- end
9
-
10
- rake_tasks do
11
- load "../tasks/tenants.rake"
12
- end
13
- end
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
@@ -1,3 +1,3 @@
1
1
  module Landlady
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
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.2
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/install/install_generator.rb
56
- - lib/generators/landlady/install/templates/create_tenants.rb
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