acts_as_tenant 0.3.7 → 0.3.8

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
- NzI5YTBmNmY5NjY3MDFmYjU5MzcxZjY3NzU4NjMwNzMxOGM3MTgzZg==
4
+ ZmFmMDEwY2Y3YTYwOGY4MzRmYTRmYTQ3ZDYwNTFlMTE5YTRmN2U5Mg==
5
5
  data.tar.gz: !binary |-
6
- OTExMzUxY2U4YjYzMzcwOTExNjk0MzRhMWRkNjAxOTU1Y2Y5YmYyMQ==
6
+ YjNmNmNhNDBiNjE3NjQxNTI2MjM0NTNkZWFhZTRjYTBhMjBkZjhlMw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OTZmZThmMDZlYTg5OWU1YzBkOTQ1NjdmNWJhYjE2MjI4MjJhYzU5OGRkYWJk
10
- ZTg0OGQwNWNjZTBkNDdiMGFkNDIzOTRmODNmOWNhNzEzY2E2YTZhODk5ZDIz
11
- ZjRiMmY0OWJjNTI0ZDA1MTQ1M2Y2ZTdjMzFhMTAxZDMzNzlhZDQ=
9
+ NWZhZGE3MDA5OTczZDNmNmY1MDllZDIwYjgwYWMwNGUyMjQ3ZTdmNWRkNTgz
10
+ Y2Q3YTU1YTVkNGJjYzI4YjBlMGQwMWNhN2Q4OWU4YTBhZTkyMzYxZjgyOTMw
11
+ ZGY3ODFjMzVjNmUyZTBmNjE0MjA5YzMwZTllODc4ZGUyMjdjMTE=
12
12
  data.tar.gz: !binary |-
13
- OWYzNzlkODkyM2EyMTMxN2MxMjY1ZWRmZDVhN2UxZjIxOTNmMzYzMjJlNTdj
14
- ODMxNTdmMWMxZTJlODcyNmIwNzM4YjUxOTMyYWE0M2M0MTM2M2Y1ZDZmZTY2
15
- MDBjMWRiNGRiY2M4ZTViZjZhMDc5MDMxMjVlMWJmMWY5OGQwNTc=
13
+ YTgzOTVhMzZiMzFhZjQ1MjNjMmUzZWNlZjRlOWFkYTY1YzhmNWRhMzViMzI2
14
+ ZTI1OTZiODRiMTY2NjY2NjBjYTRhYTNlNjljMmU2MDllNDU3Mzg5OTYyZTZm
15
+ MWRjYWM2ZDY3YmRiOGQ2YzYyNjA2MGE5MGI1YzhiMjk1NzliZjI=
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ services:
3
+ - mongodb
4
+ script: bundle exec rake spec:all
@@ -1,3 +1,7 @@
1
+ 0.3.8
2
+ -----
3
+ * Added Mongoid compatibility [thx iangreenlead]
4
+
1
5
  0.3.7
2
6
  -----
3
7
  * Fix for proper handling of polymorphic associations (thx sol1dus)
data/Rakefile CHANGED
@@ -3,3 +3,14 @@ require 'bundler/gem_tasks'
3
3
  require 'rspec/core/rake_task'
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
  task :default => :spec
6
+
7
+ desc 'Run the test suite for all supported ORMs.'
8
+ namespace :spec do
9
+ task :all do
10
+ %w[active_record mongoid].each do |orm|
11
+ ENV["ORM"] = orm
12
+ Rake::Task["spec"].reenable
13
+ Rake::Task["spec"].invoke
14
+ end
15
+ end
16
+ end
@@ -25,8 +25,9 @@ Gem::Specification.new do |s|
25
25
 
26
26
  s.add_development_dependency('rspec', '>=3.0')
27
27
  s.add_development_dependency('rspec-rails')
28
- s.add_development_dependency('database_cleaner')
28
+ s.add_development_dependency('database_cleaner', '~> 1.3.0')
29
29
  s.add_development_dependency('sqlite3')
30
+ s.add_development_dependency('mongoid', '~> 4.0')
30
31
 
31
32
  s.add_development_dependency('sidekiq', '3.2.1')
32
33
  end
@@ -1,8 +1,3 @@
1
- #RAILS_3 = ::ActiveRecord::VERSION::MAJOR >= 3
2
-
3
- require "active_record"
4
- require "action_controller"
5
- require "active_model"
6
1
  require "request_store"
7
2
 
8
3
  #$LOAD_PATH.unshift(File.dirname(__FILE__))
@@ -17,6 +12,9 @@ require "acts_as_tenant/model_extensions"
17
12
 
18
13
  if defined?(ActiveRecord::Base)
19
14
  ActiveRecord::Base.send(:include, ActsAsTenant::ModelExtensions)
15
+ end
16
+
17
+ if defined?(ActionController::Base)
20
18
  ActionController::Base.extend ActsAsTenant::ControllerExtensions
21
19
  end
22
20
 
@@ -53,7 +53,11 @@ module ActsAsTenant
53
53
  if ActsAsTenant.configuration.require_tenant && ActsAsTenant.current_tenant.nil?
54
54
  raise ActsAsTenant::Errors::NoTenantSet
55
55
  end
56
- where(fkey.to_sym => ActsAsTenant.current_tenant.id) if ActsAsTenant.current_tenant
56
+ if ActsAsTenant.current_tenant
57
+ where(fkey.to_sym => ActsAsTenant.current_tenant.id)
58
+ else
59
+ all
60
+ end
57
61
  }
58
62
 
59
63
  # Add the following validations to the receiving model:
@@ -66,15 +70,20 @@ module ActsAsTenant
66
70
  end
67
71
  }, :on => :create
68
72
 
69
- polymorphic_foreign_keys = reflect_on_all_associations.select do |a|
73
+ polymorphic_foreign_keys = reflect_on_all_associations(:belongs_to).select do |a|
70
74
  a.options[:polymorphic]
71
75
  end.map { |a| a.foreign_key }
72
76
 
73
- reflect_on_all_associations.each do |a|
74
- unless a == reflect_on_association(tenant) || a.macro != :belongs_to || polymorphic_foreign_keys.include?(a.foreign_key)
77
+ reflect_on_all_associations(:belongs_to).each do |a|
78
+ unless a == reflect_on_association(tenant) || polymorphic_foreign_keys.include?(a.foreign_key)
75
79
  association_class = a.options[:class_name].nil? ? a.name.to_s.classify.constantize : a.options[:class_name].constantize
76
80
  validates_each a.foreign_key.to_sym do |record, attr, value|
77
- record.errors.add attr, "association is invalid [ActsAsTenant]" unless value.nil? || association_class.where(association_class.primary_key.to_sym => value).present?
81
+ primary_key = if association_class.respond_to?(:primary_key)
82
+ association_class.primary_key
83
+ else
84
+ a.primary_key
85
+ end.to_sym
86
+ record.errors.add attr, "association is invalid [ActsAsTenant]" unless value.nil? || association_class.where(primary_key => value).exists?
78
87
  end
79
88
  end
80
89
  end
@@ -83,24 +92,26 @@ module ActsAsTenant
83
92
  # - Rewrite the accessors to make tenant immutable
84
93
  # - Add an override to prevent unnecessary db hits
85
94
  # - Add a helper method to verify if a model has been scoped by AaT
86
- #
87
- define_method "#{fkey}=" do |integer|
88
- raise ActsAsTenant::Errors::TenantIsImmutable unless new_record? || send(fkey).nil?
89
- write_attribute("#{fkey}", integer)
90
- end
95
+ to_include = Module.new do
96
+ define_method "#{fkey}=" do |integer|
97
+ raise ActsAsTenant::Errors::TenantIsImmutable unless new_record? || send(fkey).nil? || send(fkey) == integer
98
+ write_attribute("#{fkey}", integer)
99
+ end
91
100
 
92
- define_method "#{ActsAsTenant.tenant_klass.to_s}=" do |model|
93
- raise ActsAsTenant::Errors::TenantIsImmutable unless new_record? || send(fkey).nil?
94
- super(model)
95
- end
101
+ define_method "#{ActsAsTenant.tenant_klass.to_s}=" do |model|
102
+ raise ActsAsTenant::Errors::TenantIsImmutable unless new_record? || send(fkey).nil? || send(fkey) == integer
103
+ super(model)
104
+ end
96
105
 
97
- define_method "#{ActsAsTenant.tenant_klass.to_s}" do
98
- if !ActsAsTenant.current_tenant.nil? && send(fkey) == ActsAsTenant.current_tenant.id
99
- return ActsAsTenant.current_tenant
100
- else
101
- super()
106
+ define_method "#{ActsAsTenant.tenant_klass.to_s}" do
107
+ if !ActsAsTenant.current_tenant.nil? && send(fkey) == ActsAsTenant.current_tenant.id
108
+ return ActsAsTenant.current_tenant
109
+ else
110
+ super()
111
+ end
102
112
  end
103
113
  end
114
+ include to_include
104
115
 
105
116
  class << self
106
117
  def scoped_by_tenant?
@@ -38,6 +38,6 @@ Sidekiq.configure_server do |config|
38
38
  chain.add ActsAsTenant::Sidekiq::Client
39
39
  end
40
40
  config.server_middleware do |chain|
41
- chain.add ActsAsTenant::Sidekiq::Server
41
+ chain.insert_before Sidekiq::Middleware::Server::RetryJobs, ActsAsTenant::Sidekiq::Server
42
42
  end
43
43
  end
@@ -1,3 +1,3 @@
1
1
  module ActsAsTenant
2
- VERSION = "0.3.7"
2
+ VERSION = "0.3.8"
3
3
  end
@@ -0,0 +1,21 @@
1
+ require 'rails/all'
2
+ require 'database_cleaner'
3
+
4
+ dbconfig = YAML::load(IO.read(File.join(File.dirname(__FILE__), 'database.yml')))
5
+ ActiveRecord::Base.logger = Logger.new(File.join(File.dirname(__FILE__), "debug.log"))
6
+ ActiveRecord::Base.establish_connection(dbconfig[ENV['DB'] || 'sqlite'])
7
+
8
+ RSpec.configure do |config|
9
+ config.before(:suite) do
10
+ DatabaseCleaner[:active_record].strategy = :transaction
11
+ DatabaseCleaner[:active_record].clean_with(:truncation)
12
+ end
13
+
14
+ config.before(:each) do
15
+ DatabaseCleaner[:active_record].start
16
+ end
17
+
18
+ config.after(:each) do
19
+ DatabaseCleaner[:active_record].clean
20
+ end
21
+ end
@@ -0,0 +1,109 @@
1
+ ActiveRecord::Schema.define(:version => 1) do
2
+ create_table :accounts, :force => true do |t|
3
+ t.column :name, :string
4
+ t.column :subdomain, :string
5
+ t.column :domain, :string
6
+ end
7
+
8
+ create_table :projects, :force => true do |t|
9
+ t.column :name, :string
10
+ t.column :account_id, :integer
11
+ end
12
+
13
+ create_table :managers, :force => true do |t|
14
+ t.column :name, :string
15
+ t.column :project_id, :integer
16
+ t.column :account_id, :integer
17
+ end
18
+
19
+ create_table :tasks, :force => true do |t|
20
+ t.column :name, :string
21
+ t.column :account_id, :integer
22
+ t.column :project_id, :integer
23
+ t.column :completed, :boolean
24
+ end
25
+
26
+ create_table :countries, :force => true do |t|
27
+ t.column :name, :string
28
+ end
29
+
30
+ create_table :unscoped_models, :force => true do |t|
31
+ t.column :name, :string
32
+ end
33
+
34
+ create_table :aliased_tasks, :force => true do |t|
35
+ t.column :name, :string
36
+ t.column :project_alias_id, :integer
37
+ t.column :account_id, :integer
38
+ end
39
+
40
+ create_table :unique_tasks, :force => true do |t|
41
+ t.column :name, :string
42
+ t.column :user_defined_scope, :string
43
+ t.column :project_id, :integer
44
+ t.column :account_id, :integer
45
+ end
46
+
47
+ create_table :custom_foreign_key_tasks, :force => true do |t|
48
+ t.column :name, :string
49
+ t.column :accountID, :integer
50
+ end
51
+
52
+ create_table :comments, :force => true do |t|
53
+ t.column :commentable_id, :integer
54
+ t.column :commentable_type, :string
55
+ t.column :account_id, :integer
56
+ end
57
+
58
+ end
59
+
60
+ class Account < ActiveRecord::Base
61
+ has_many :projects
62
+ end
63
+
64
+ class Project < ActiveRecord::Base
65
+ has_one :manager
66
+ has_many :tasks
67
+ acts_as_tenant :account
68
+
69
+ validates_uniqueness_to_tenant :name
70
+ end
71
+
72
+ class Manager < ActiveRecord::Base
73
+ belongs_to :project
74
+ acts_as_tenant :account
75
+ end
76
+
77
+ class Task < ActiveRecord::Base
78
+ belongs_to :project
79
+ default_scope -> { where(:completed => nil).order("name") }
80
+
81
+ acts_as_tenant :account
82
+ validates_uniqueness_of :name
83
+ end
84
+
85
+ class UnscopedModel < ActiveRecord::Base
86
+ validates_uniqueness_of :name
87
+ end
88
+
89
+ class AliasedTask < ActiveRecord::Base
90
+ acts_as_tenant(:account)
91
+ belongs_to :project_alias, :class_name => "Project"
92
+ end
93
+
94
+ class UniqueTask < ActiveRecord::Base
95
+ acts_as_tenant(:account)
96
+ belongs_to :project
97
+ validates_uniqueness_to_tenant :name, scope: :user_defined_scope
98
+ end
99
+
100
+ class CustomForeignKeyTask < ActiveRecord::Base
101
+ acts_as_tenant(:account, :foreign_key => "accountID")
102
+ validates_uniqueness_to_tenant :name
103
+ end
104
+
105
+ class Comment < ActiveRecord::Base
106
+ belongs_to :commentable, polymorphic: true
107
+ belongs_to :task, -> { where(comments: { commentable_type: 'Task' }) }, foreign_key: 'commentable_id'
108
+ acts_as_tenant :account
109
+ end
@@ -1,118 +1,6 @@
1
1
  require 'spec_helper'
2
+ require "#{$orm}_models"
2
3
 
3
- # Setup the db
4
- ActiveRecord::Schema.define(:version => 1) do
5
- create_table :accounts, :force => true do |t|
6
- t.column :name, :string
7
- t.column :subdomain, :string
8
- t.column :domain, :string
9
- end
10
-
11
- create_table :projects, :force => true do |t|
12
- t.column :name, :string
13
- t.column :account_id, :integer
14
- end
15
-
16
- create_table :managers, :force => true do |t|
17
- t.column :name, :string
18
- t.column :project_id, :integer
19
- t.column :account_id, :integer
20
- end
21
-
22
- create_table :tasks, :force => true do |t|
23
- t.column :name, :string
24
- t.column :account_id, :integer
25
- t.column :project_id, :integer
26
- t.column :completed, :boolean
27
- end
28
-
29
- create_table :countries, :force => true do |t|
30
- t.column :name, :string
31
- end
32
-
33
- create_table :unscoped_models, :force => true do |t|
34
- t.column :name, :string
35
- end
36
-
37
- create_table :aliased_tasks, :force => true do |t|
38
- t.column :name, :string
39
- t.column :project_alias_id, :integer
40
- t.column :account_id, :integer
41
- end
42
-
43
- create_table :unique_tasks, :force => true do |t|
44
- t.column :name, :string
45
- t.column :user_defined_scope, :string
46
- t.column :project_id, :integer
47
- t.column :account_id, :integer
48
- end
49
-
50
- create_table :custom_foreign_key_tasks, :force => true do |t|
51
- t.column :name, :string
52
- t.column :accountID, :integer
53
- end
54
-
55
- create_table :comments, :force => true do |t|
56
- t.column :commentable_id, :integer
57
- t.column :commentable_type, :string
58
- t.column :account_id, :integer
59
- end
60
-
61
- end
62
-
63
- # Setup the models
64
- class Account < ActiveRecord::Base
65
- has_many :projects
66
- end
67
-
68
- class Project < ActiveRecord::Base
69
- has_one :manager
70
- has_many :tasks
71
- acts_as_tenant :account
72
-
73
- validates_uniqueness_to_tenant :name
74
- end
75
-
76
- class Manager < ActiveRecord::Base
77
- belongs_to :project
78
- acts_as_tenant :account
79
- end
80
-
81
- class Task < ActiveRecord::Base
82
- belongs_to :project
83
- default_scope -> { where(:completed => nil).order("name") }
84
-
85
- acts_as_tenant :account
86
- validates_uniqueness_of :name
87
- end
88
-
89
- class UnscopedModel < ActiveRecord::Base
90
- validates_uniqueness_of :name
91
- end
92
-
93
- class AliasedTask < ActiveRecord::Base
94
- acts_as_tenant(:account)
95
- belongs_to :project_alias, :class_name => "Project"
96
- end
97
-
98
- class UniqueTask < ActiveRecord::Base
99
- acts_as_tenant(:account)
100
- belongs_to :project
101
- validates_uniqueness_to_tenant :name, scope: :user_defined_scope
102
- end
103
-
104
- class CustomForeignKeyTask < ActiveRecord::Base
105
- acts_as_tenant(:account, :foreign_key => "accountID")
106
- validates_uniqueness_to_tenant :name
107
- end
108
-
109
- class Comment < ActiveRecord::Base
110
- belongs_to :commentable, polymorphic: true
111
- belongs_to :task, -> { where(comments: { commentable_type: 'Task' }) }, foreign_key: 'commentable_id'
112
- acts_as_tenant :account
113
- end
114
-
115
- # Start testing!
116
4
  describe ActsAsTenant do
117
5
  after { ActsAsTenant.current_tenant = nil }
118
6
 
@@ -228,7 +116,8 @@ describe ActsAsTenant do
228
116
 
229
117
  ActsAsTenant.current_tenant = @account
230
118
  @task2 = @project.tasks.create!(:name => 'baz')
231
- @tasks = @project.tasks
119
+
120
+ @project.reload
232
121
  end
233
122
 
234
123
  it 'should correctly set the tenant on the task created with current_tenant set' do
@@ -236,16 +125,16 @@ describe ActsAsTenant do
236
125
  end
237
126
 
238
127
  it 'should filter out the non-tenant task from the project' do
239
- expect(@tasks.length).to eq(1)
128
+ expect(@project.tasks.length).to eq(1)
240
129
  end
241
130
  end
242
131
 
243
132
  describe 'Associations can only be made with in-scope objects' do
244
133
  before do
245
134
  @account = Account.create!(:name => 'foo')
246
- @project1 = Project.create!(:name => 'inaccessible_project', :account_id => @account.id + 1)
247
-
135
+ @project1 = Project.create!(:name => 'inaccessible_project', :account => Account.create!)
248
136
  ActsAsTenant.current_tenant = @account
137
+
249
138
  @project2 = Project.create!(:name => 'accessible_project')
250
139
  @task = @project2.tasks.create!(:name => 'bar')
251
140
  end
@@ -254,9 +143,11 @@ describe ActsAsTenant do
254
143
  end
255
144
 
256
145
  describe "Create and save an AaT-enabled child without it having a parent" do
146
+ before do
257
147
  @account = Account.create!(:name => 'baz')
258
148
  ActsAsTenant.current_tenant = @account
259
- it { expect(Task.create(:name => 'bar').valid?).to eq(true) }
149
+ end
150
+ it { expect(Task.create(:name => 'bar').valid?).to eq(true) }
260
151
  end
261
152
 
262
153
  describe "It should be possible to use aliased associations" do
@@ -0,0 +1,6 @@
1
+ test:
2
+ sessions:
3
+ default:
4
+ database: acts_as_tenant_test
5
+ hosts:
6
+ - localhost:27017
@@ -0,0 +1,23 @@
1
+ require "action_controller/railtie"
2
+ require "action_mailer/railtie"
3
+ require 'mongoid'
4
+ require 'database_cleaner'
5
+
6
+ Mongoid.logger = Moped.logger = Logger.new(File.join(File.dirname(__FILE__), "debug.log"))
7
+ Mongoid.logger.level = Moped.logger.level = Logger::DEBUG
8
+ Mongoid.load!(File.join(File.dirname(__FILE__), "/mongoid.yml"), :test)
9
+
10
+ RSpec.configure do |config|
11
+ config.before(:suite) do
12
+ DatabaseCleaner[:mongoid].strategy = :truncation
13
+ DatabaseCleaner[:mongoid].clean_with(:truncation)
14
+ end
15
+
16
+ config.before(:each) do
17
+ DatabaseCleaner[:mongoid].start
18
+ end
19
+
20
+ config.after(:each) do
21
+ DatabaseCleaner[:mongoid].clean
22
+ end
23
+ end
@@ -0,0 +1,81 @@
1
+ class Account
2
+ include Mongoid::Document
3
+ include ActsAsTenant::ModelExtensions
4
+ field :name, type: String
5
+ field :subdomain, type: String
6
+ field :domain, type: String
7
+ has_many :projects
8
+ end
9
+
10
+ class Project
11
+ include Mongoid::Document
12
+ include ActsAsTenant::ModelExtensions
13
+ field :name, type: String
14
+ has_one :manager
15
+ has_many :tasks
16
+ acts_as_tenant :account
17
+
18
+ validates_uniqueness_to_tenant :name
19
+ end
20
+
21
+ class Manager
22
+ include Mongoid::Document
23
+ include ActsAsTenant::ModelExtensions
24
+ field :name, type: String
25
+ belongs_to :project
26
+ acts_as_tenant :account
27
+ end
28
+
29
+ class Task
30
+ include Mongoid::Document
31
+ include ActsAsTenant::ModelExtensions
32
+ field :name, type: String
33
+ field :completed, type: Boolean
34
+ belongs_to :project
35
+ default_scope -> { where(:completed => nil).order("name" => :asc) }
36
+
37
+ acts_as_tenant :account
38
+ validates_uniqueness_of :name
39
+ end
40
+
41
+ class UnscopedModel
42
+ include Mongoid::Document
43
+ include ActsAsTenant::ModelExtensions
44
+ field :name, type: String
45
+ validates_uniqueness_of :name
46
+ end
47
+
48
+ class AliasedTask
49
+ include Mongoid::Document
50
+ include ActsAsTenant::ModelExtensions
51
+ field :name, type: String
52
+ acts_as_tenant(:account)
53
+ belongs_to :project_alias, :class_name => "Project"
54
+ end
55
+
56
+ class UniqueTask
57
+ include Mongoid::Document
58
+ include ActsAsTenant::ModelExtensions
59
+ field :name, type: String
60
+ field :user_defined_scope, type: String
61
+ acts_as_tenant(:account)
62
+ belongs_to :project
63
+ validates_uniqueness_to_tenant :name, scope: :user_defined_scope
64
+ end
65
+
66
+ class CustomForeignKeyTask
67
+ include Mongoid::Document
68
+ include ActsAsTenant::ModelExtensions
69
+ field :name, type: String
70
+ field :accountID, type: Integer
71
+ acts_as_tenant(:account, :foreign_key => "accountID")
72
+ validates_uniqueness_to_tenant :name
73
+ end
74
+
75
+ class Comment
76
+ include Mongoid::Document
77
+ include ActsAsTenant::ModelExtensions
78
+ belongs_to :commentable, polymorphic: true
79
+ belongs_to :task, foreign_key: 'commentable_id'
80
+ acts_as_tenant :account
81
+ end
@@ -1,27 +1,14 @@
1
1
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
2
  $LOAD_PATH.unshift(File.dirname(__FILE__))
3
3
 
4
- require 'database_cleaner'
5
- require 'acts_as_tenant'
6
- require 'rspec/rails'
7
- require 'rails'
4
+ $orm = ENV["ORM"] || "active_record"
5
+ require "#{$orm}_helper"
8
6
 
9
- config = YAML::load(IO.read(File.join(File.dirname(__FILE__), 'database.yml')))
10
- ActiveRecord::Base.logger = Logger.new(File.join(File.dirname(__FILE__), "debug.log"))
11
- ActiveRecord::Base.establish_connection(config[ENV['DB'] || 'sqlite'])
7
+ require 'rspec/rails'
8
+ require 'acts_as_tenant'
12
9
 
13
10
  RSpec.configure do |config|
14
- config.before(:suite) do
15
- DatabaseCleaner.strategy = :transaction
16
- DatabaseCleaner.clean_with(:truncation)
17
- end
18
-
19
- config.before(:each) do
20
- DatabaseCleaner.start
21
- end
22
-
23
11
  config.after(:each) do
24
- DatabaseCleaner.clean
25
12
  ActsAsTenant.current_tenant = nil
26
13
  end
27
14
 
@@ -34,4 +21,4 @@ module Rollcall
34
21
  end
35
22
 
36
23
  Rollcall::Application.config.secret_token = '1234567890123456789012345678901234567890'
37
- Rollcall::Application.config.secret_key_base = '1234567890123456789012345678901234567890'
24
+ Rollcall::Application.config.secret_key_base = '1234567890123456789012345678901234567890'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_tenant
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.7
4
+ version: 0.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erwin Matthijssen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-15 00:00:00.000000000 Z
11
+ date: 2015-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: request_store
@@ -70,16 +70,16 @@ dependencies:
70
70
  name: database_cleaner
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ! '>='
73
+ - - ~>
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: 1.3.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ! '>='
80
+ - - ~>
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: 1.3.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: sqlite3
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ! '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: mongoid
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: '4.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: '4.0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: sidekiq
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -117,6 +131,7 @@ extensions: []
117
131
  extra_rdoc_files: []
118
132
  files:
119
133
  - .gitignore
134
+ - .travis.yml
120
135
  - CHANGELOG.md
121
136
  - Gemfile
122
137
  - MIT-LICENSE
@@ -131,6 +146,8 @@ files:
131
146
  - lib/acts_as_tenant/sidekiq.rb
132
147
  - lib/acts_as_tenant/version.rb
133
148
  - rails/init.rb
149
+ - spec/active_record_helper.rb
150
+ - spec/active_record_models.rb
134
151
  - spec/acts_as_tenant/configuration_spec.rb
135
152
  - spec/acts_as_tenant/model_extensions_spec.rb
136
153
  - spec/acts_as_tenant/sidekiq_spec.rb
@@ -138,6 +155,9 @@ files:
138
155
  - spec/acts_as_tenant/tenant_by_subdomain_or_domain.rb
139
156
  - spec/acts_as_tenant/tenant_by_subdomain_spec.rb
140
157
  - spec/database.yml
158
+ - spec/mongoid.yml
159
+ - spec/mongoid_helper.rb
160
+ - spec/mongoid_models.rb
141
161
  - spec/spec_helper.rb
142
162
  homepage: http://www.rollcallapp.com/blog
143
163
  licenses: []
@@ -163,6 +183,8 @@ signing_key:
163
183
  specification_version: 4
164
184
  summary: Add multi-tenancy to Rails applications using a shared db strategy
165
185
  test_files:
186
+ - spec/active_record_helper.rb
187
+ - spec/active_record_models.rb
166
188
  - spec/acts_as_tenant/configuration_spec.rb
167
189
  - spec/acts_as_tenant/model_extensions_spec.rb
168
190
  - spec/acts_as_tenant/sidekiq_spec.rb
@@ -170,4 +192,7 @@ test_files:
170
192
  - spec/acts_as_tenant/tenant_by_subdomain_or_domain.rb
171
193
  - spec/acts_as_tenant/tenant_by_subdomain_spec.rb
172
194
  - spec/database.yml
195
+ - spec/mongoid.yml
196
+ - spec/mongoid_helper.rb
197
+ - spec/mongoid_models.rb
173
198
  - spec/spec_helper.rb