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 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