acts_as_tenant 0.2.4 → 0.2.5

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.
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
+ .rvmrc
1
2
  *.gem
2
3
  .bundle
3
4
  Gemfile.lock
@@ -1,3 +1,7 @@
1
+ 0.2.5
2
+ -----
3
+ * Added Rails 3.2 compatibility
4
+
1
5
  0.2.4
2
6
  -----
3
7
  * Added correct handling of child models that do not have their parent set (foreign key == nil)
data/README.md CHANGED
@@ -11,7 +11,7 @@ In addition, acts_as_tenant:
11
11
 
12
12
  * sets the current tenant using the subdomain or allows you to pass in the current tenant yourself
13
13
  * protects against various types of nastiness directed at circumventing the tenant scoping
14
- * adds a method to validate uniqueness to a tenant, validates_uniqueness_to_tenant
14
+ * adds a method to validate uniqueness to a tenant, `validates_uniqueness_to_tenant`
15
15
  * sets up a helper method containing the current tenant
16
16
 
17
17
  Installation
@@ -66,7 +66,7 @@ acts_as_tenant requires each scoped model to have a column in its schema linking
66
66
  Some examples to illustrate this behavior:
67
67
 
68
68
  # This manually sets the current tenant for testing purposes. In your app this is handled by the gem.
69
- acts_as_tenant.current_tenant = Account.find(3)
69
+ ActsAsTenant.current_tenant = Account.find(3)
70
70
 
71
71
  # All searches are scoped by the tenant, the following searches will only return objects
72
72
  # where account_id == 3
@@ -82,16 +82,21 @@ Some examples to illustrate this behavior:
82
82
 
83
83
  # It will not allow association with objects outside the current tenant scope
84
84
  # Assuming the Project with ID: 2 does not belong to Account with ID: 3
85
- @task = Task.new # => <#Task id: nil, name: bil, project_id: nil, :account_id: 3>
85
+ @task = Task.new # => <#Task id: nil, name: nil, project_id: nil, :account_id: 3>
86
86
 
87
87
  Acts_as_tenant uses Rails' default_scope method to scope models. Rails 3.1 changed the way default_scope works in a good way. A user defined default_scope should integrate seamlessly with the one added by acts_as_tenant.
88
88
 
89
89
  **Validating attribute uniqueness**
90
+
90
91
  If you need to validate for uniqueness, chances are that you want to scope this validation to a tenant. You can do so by using:
91
92
 
92
93
  validates_uniqueness_to_tenant :name, :email
93
94
 
94
- All options available to Rails' own @validates_uniqueness_of@ are also available to this method.
95
+ All options available to Rails' own `validates_uniqueness_of` are also available to this method.
96
+
97
+ Note on testing
98
+ ---------------
99
+ Whenever you set the `current_tenant` in your tests, either through integration tests or directly by calling `ActsAsTenant.current_tenant = some_tenant`, make sure to clean up the tenant after each test by calling `ActsAsTenant.current_tenant = nil`.
95
100
 
96
101
  To Do
97
102
  -----
@@ -40,7 +40,7 @@ module ActsAsTenant
40
40
  # set the current_tenant on newly created objects
41
41
  before_validation Proc.new {|m|
42
42
  return unless ActsAsTenant.current_tenant
43
- m.send "#{association}=".to_sym, ActsAsTenant.current_tenant
43
+ m.send "#{association}_id=".to_sym, ActsAsTenant.current_tenant.id
44
44
  }, :on => :create
45
45
 
46
46
  # set the default_scope to scope to current tenant
@@ -76,7 +76,7 @@ module ActsAsTenant
76
76
  validates_each a.foreign_key.to_sym do |record, attr, value|
77
77
  # Invalidate the association unless the parent is known to the tenant or no association has
78
78
  # been set.
79
- record.errors.add attr, "is invalid" unless association_class.where(:id => value).present? || value.nil?
79
+ record.errors.add attr, "is invalid (Acts_as_Tenant)" unless value.nil? || association_class.where(:id => value).present?
80
80
  end
81
81
  end
82
82
  end
@@ -1,3 +1,3 @@
1
1
  module ActsAsTenant
2
- VERSION = "0.2.4"
2
+ VERSION = "0.2.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acts_as_tenant
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-08 00:00:00.000000000Z
12
+ date: 2012-01-28 00:00:00.000000000Z
13
13
  dependencies: []
14
14
  description: Integrates multi-tenancy into a Rails application in a convenient and
15
15
  out-of-your way manner
@@ -20,7 +20,6 @@ extensions: []
20
20
  extra_rdoc_files: []
21
21
  files:
22
22
  - .gitignore
23
- - .rvmrc
24
23
  - CHANGELOG.md
25
24
  - Gemfile
26
25
  - MIT-LICENSE
@@ -55,7 +54,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
54
  version: '0'
56
55
  requirements: []
57
56
  rubyforge_project: acts_as_tenant
58
- rubygems_version: 1.8.6
57
+ rubygems_version: 1.8.10
59
58
  signing_key:
60
59
  specification_version: 3
61
60
  summary: Add multi-tenancy to Rails applications using a shared db strategy
data/.rvmrc DELETED
@@ -1 +0,0 @@
1
- rvm 1.9.2@rails31