saasable 0.3.2 → 0.3.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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.2
1
+ 0.3.3
@@ -10,7 +10,9 @@ class Saasable::Middleware
10
10
  env[:saasable] = {:current_saas => saas_for_host(env["SERVER_NAME"])}
11
11
  env[:saasable][:current_saas].activate! if env[:saasable][:current_saas]
12
12
 
13
- @app.call env
13
+ @app.call(env).tap do
14
+ env[:saasable][:current_saas].deactivate! if env[:saasable][:current_saas]
15
+ end
14
16
  end
15
17
 
16
18
  private
@@ -21,6 +21,7 @@ module Saasable::Mongoid::SaasDocument
21
21
  index :hosts
22
22
  end
23
23
 
24
+ klass.instance_variable_set("@_active_saas", nil)
24
25
  klass.instance_variable_set("@_after_activate_chain", [])
25
26
  klass.instance_variable_set("@_after_deactivate_chain", [])
26
27
  end
@@ -40,6 +41,7 @@ module Saasable::Mongoid::SaasDocument
40
41
  klass.class_eval "field :saas_id, :type => BSON::ObjectId, :default => BSON::ObjectId(\"#{self._id}\")"
41
42
  end
42
43
 
44
+ self.class.instance_variable_set("@_active_saas", self)
43
45
  self.class.instance_variable_get("@_after_activate_chain").each { |method_name| send(method_name) }
44
46
  end
45
47
 
@@ -57,7 +59,8 @@ module Saasable::Mongoid::SaasDocument
57
59
  klass.fields["saas_id"].options.delete(:default)
58
60
  end
59
61
 
60
- @_after_deactivate_chain.each { |method_name| send(method_name) }
62
+ last_active_saas, @_active_saas = active_saas, nil
63
+ @_after_deactivate_chain.each { |method_name| last_active_saas.send(method_name) }
61
64
  end
62
65
 
63
66
  def find_by_host! a_host
@@ -79,12 +82,24 @@ module Saasable::Mongoid::SaasDocument
79
82
  end
80
83
  end
81
84
 
82
- def after_activate method_name
83
- @_after_activate_chain << method_name
85
+ def active_saas
86
+ @_active_saas
84
87
  end
85
88
 
86
- def after_deactivate method_name
87
- @_after_deactivate_chain << method_name
89
+ def after_activate *method_names
90
+ @_after_activate_chain += method_names
91
+ end
92
+
93
+ def after_deactivate *method_names
94
+ @_after_deactivate_chain += method_names
95
+ end
96
+
97
+ def remove_after_activate *method_names
98
+ @_after_activate_chain -= method_names
99
+ end
100
+
101
+ def remove_after_deactivate *method_names
102
+ @_after_deactivate_chain -= method_names
88
103
  end
89
104
  end
90
105
  end
data/saasable.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "saasable"
8
- s.version = "0.3.2"
8
+ s.version = "0.3.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Educa2", "Rafael Gaspar"]
12
- s.date = "2013-04-18"
12
+ s.date = "2013-10-15"
13
13
  s.description = "A gem for making a Multi-Tenant SaaS using Mongoid"
14
14
  s.email = "suporte@educa2.com.br"
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: saasable
3
3
  version: !ruby/object:Gem::Version
4
+ version: 0.3.3
4
5
  prerelease:
5
- version: 0.3.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Educa2
@@ -10,88 +10,88 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-04-18 00:00:00.000000000 Z
13
+ date: 2013-10-15 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: mongoid
17
17
  requirement: !ruby/object:Gem::Requirement
18
+ none: false
18
19
  requirements:
19
20
  - - <
20
21
  - !ruby/object:Gem::Version
21
22
  version: 3.0.0
22
- none: false
23
23
  type: :runtime
24
+ prerelease: false
24
25
  version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
25
27
  requirements:
26
28
  - - <
27
29
  - !ruby/object:Gem::Version
28
30
  version: 3.0.0
29
- none: false
30
- prerelease: false
31
31
  - !ruby/object:Gem::Dependency
32
32
  name: rspec
33
33
  requirement: !ruby/object:Gem::Requirement
34
+ none: false
34
35
  requirements:
35
36
  - - ! '>='
36
37
  - !ruby/object:Gem::Version
37
38
  version: '0'
38
- none: false
39
39
  type: :development
40
+ prerelease: false
40
41
  version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
41
43
  requirements:
42
44
  - - ! '>='
43
45
  - !ruby/object:Gem::Version
44
46
  version: '0'
45
- none: false
46
- prerelease: false
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: bundler
49
49
  requirement: !ruby/object:Gem::Requirement
50
+ none: false
50
51
  requirements:
51
52
  - - ! '>='
52
53
  - !ruby/object:Gem::Version
53
54
  version: '0'
54
- none: false
55
55
  type: :development
56
+ prerelease: false
56
57
  version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
57
59
  requirements:
58
60
  - - ! '>='
59
61
  - !ruby/object:Gem::Version
60
62
  version: '0'
61
- none: false
62
- prerelease: false
63
63
  - !ruby/object:Gem::Dependency
64
64
  name: jeweler
65
65
  requirement: !ruby/object:Gem::Requirement
66
+ none: false
66
67
  requirements:
67
68
  - - ! '>='
68
69
  - !ruby/object:Gem::Version
69
70
  version: '0'
70
- none: false
71
71
  type: :development
72
+ prerelease: false
72
73
  version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
73
75
  requirements:
74
76
  - - ! '>='
75
77
  - !ruby/object:Gem::Version
76
78
  version: '0'
77
- none: false
78
- prerelease: false
79
79
  - !ruby/object:Gem::Dependency
80
80
  name: rdoc
81
81
  requirement: !ruby/object:Gem::Requirement
82
+ none: false
82
83
  requirements:
83
84
  - - ! '>='
84
85
  - !ruby/object:Gem::Version
85
86
  version: '0'
86
- none: false
87
87
  type: :development
88
+ prerelease: false
88
89
  version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
89
91
  requirements:
90
92
  - - ! '>='
91
93
  - !ruby/object:Gem::Version
92
94
  version: '0'
93
- none: false
94
- prerelease: false
95
95
  description: A gem for making a Multi-Tenant SaaS using Mongoid
96
96
  email: suporte@educa2.com.br
97
97
  executables: []
@@ -128,20 +128,20 @@ rdoc_options: []
128
128
  require_paths:
129
129
  - lib
130
130
  required_ruby_version: !ruby/object:Gem::Requirement
131
+ none: false
131
132
  requirements:
132
133
  - - ! '>='
133
134
  - !ruby/object:Gem::Version
135
+ version: '0'
134
136
  segments:
135
137
  - 0
136
- hash: -1849778942002607944
137
- version: '0'
138
- none: false
138
+ hash: -553495662299571050
139
139
  required_rubygems_version: !ruby/object:Gem::Requirement
140
+ none: false
140
141
  requirements:
141
142
  - - ! '>='
142
143
  - !ruby/object:Gem::Version
143
144
  version: '0'
144
- none: false
145
145
  requirements: []
146
146
  rubyforge_project:
147
147
  rubygems_version: 1.8.25