saasable 0.3.5 → 4.0.0
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 +4 -4
- data/.ruby-version +1 -1
- data/Gemfile +1 -1
- data/Gemfile.lock +71 -53
- data/VERSION +1 -1
- data/lib/saasable/middleware.rb +9 -7
- data/lib/saasable/mongoid/saas_document.rb +30 -30
- data/lib/saasable/mongoid/scoped_document.rb +13 -4
- data/lib/saasable/railties/helpers.rb +9 -9
- data/saasable.gemspec +8 -8
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 96efcc9b26a6dfa1ac4461fc8bbefddcf8c9794d
|
|
4
|
+
data.tar.gz: cbea1ffd6c0b5f188d6eb948410dd639584f3da3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9aec30de71488cfeafd46ef598b094e1b10103e339da448955f9dbc7293e962b2fe402f76124f2f8dbbeb70ef1038162f4a823fecd71bec6092c7cd88153aed1
|
|
7
|
+
data.tar.gz: f032f197e8adb948c6048a1fc50127ae7d8f33285a9436fda2865da14095b6760c0a592fe1d01e8c2892edff6c8729fbd5c1089d8166a3720e74b7790b3206eb
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
ruby-2.
|
|
1
|
+
ruby-2.1
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,72 +1,90 @@
|
|
|
1
1
|
GEM
|
|
2
2
|
remote: http://rubygems.org/
|
|
3
3
|
specs:
|
|
4
|
-
activemodel (
|
|
5
|
-
activesupport (=
|
|
6
|
-
builder (~> 3.
|
|
7
|
-
activesupport (
|
|
8
|
-
i18n (~> 0.6, >= 0.6.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
activemodel (4.1.4)
|
|
5
|
+
activesupport (= 4.1.4)
|
|
6
|
+
builder (~> 3.1)
|
|
7
|
+
activesupport (4.1.4)
|
|
8
|
+
i18n (~> 0.6, >= 0.6.9)
|
|
9
|
+
json (~> 1.7, >= 1.7.7)
|
|
10
|
+
minitest (~> 5.1)
|
|
11
|
+
thread_safe (~> 0.1)
|
|
12
|
+
tzinfo (~> 1.1)
|
|
13
|
+
addressable (2.3.6)
|
|
14
|
+
bson (2.3.0)
|
|
15
|
+
builder (3.2.2)
|
|
16
|
+
connection_pool (2.0.0)
|
|
17
|
+
descendants_tracker (0.0.4)
|
|
18
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
|
13
19
|
diff-lcs (1.2.5)
|
|
14
|
-
faraday (0.
|
|
15
|
-
multipart-post (
|
|
16
|
-
git (1.2.
|
|
17
|
-
github_api (0.
|
|
18
|
-
addressable
|
|
19
|
-
|
|
20
|
+
faraday (0.9.0)
|
|
21
|
+
multipart-post (>= 1.2, < 3)
|
|
22
|
+
git (1.2.7)
|
|
23
|
+
github_api (0.11.3)
|
|
24
|
+
addressable (~> 2.3)
|
|
25
|
+
descendants_tracker (~> 0.0.1)
|
|
26
|
+
faraday (~> 0.8, < 0.10)
|
|
20
27
|
hashie (>= 1.2)
|
|
21
|
-
multi_json (
|
|
22
|
-
nokogiri (~> 1.
|
|
28
|
+
multi_json (>= 1.7.5, < 2.0)
|
|
29
|
+
nokogiri (~> 1.6.0)
|
|
23
30
|
oauth2
|
|
24
|
-
hashie (2.0
|
|
25
|
-
highline (1.6.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
jeweler (1.8.8)
|
|
31
|
+
hashie (3.2.0)
|
|
32
|
+
highline (1.6.21)
|
|
33
|
+
i18n (0.6.11)
|
|
34
|
+
jeweler (2.0.1)
|
|
29
35
|
builder
|
|
30
|
-
bundler (
|
|
36
|
+
bundler (>= 1.0)
|
|
31
37
|
git (>= 1.2.5)
|
|
32
|
-
github_api
|
|
38
|
+
github_api
|
|
33
39
|
highline (>= 1.6.15)
|
|
34
|
-
nokogiri (
|
|
40
|
+
nokogiri (>= 1.5.10)
|
|
35
41
|
rake
|
|
36
42
|
rdoc
|
|
37
43
|
json (1.8.1)
|
|
38
|
-
jwt (0.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
tzinfo (
|
|
46
|
-
|
|
44
|
+
jwt (1.0.0)
|
|
45
|
+
mini_portile (0.6.0)
|
|
46
|
+
minitest (5.4.0)
|
|
47
|
+
mongoid (4.0.0)
|
|
48
|
+
activemodel (~> 4.0)
|
|
49
|
+
moped (~> 2.0.0)
|
|
50
|
+
origin (~> 2.1)
|
|
51
|
+
tzinfo (>= 0.3.37)
|
|
52
|
+
moped (2.0.0)
|
|
53
|
+
bson (~> 2.2)
|
|
54
|
+
connection_pool (~> 2.0)
|
|
55
|
+
optionable (~> 0.2.0)
|
|
56
|
+
multi_json (1.10.1)
|
|
47
57
|
multi_xml (0.5.5)
|
|
48
|
-
multipart-post (
|
|
49
|
-
nokogiri (1.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
jwt (~>
|
|
54
|
-
multi_json (~> 1.
|
|
58
|
+
multipart-post (2.0.0)
|
|
59
|
+
nokogiri (1.6.2.1)
|
|
60
|
+
mini_portile (= 0.6.0)
|
|
61
|
+
oauth2 (1.0.0)
|
|
62
|
+
faraday (>= 0.8, < 0.10)
|
|
63
|
+
jwt (~> 1.0)
|
|
64
|
+
multi_json (~> 1.3)
|
|
55
65
|
multi_xml (~> 0.5)
|
|
56
66
|
rack (~> 1.2)
|
|
67
|
+
optionable (0.2.0)
|
|
68
|
+
origin (2.1.1)
|
|
57
69
|
rack (1.5.2)
|
|
58
|
-
rake (10.
|
|
59
|
-
rdoc (4.
|
|
70
|
+
rake (10.3.2)
|
|
71
|
+
rdoc (4.1.1)
|
|
60
72
|
json (~> 1.4)
|
|
61
|
-
rspec (
|
|
62
|
-
rspec-core (~>
|
|
63
|
-
rspec-expectations (~>
|
|
64
|
-
rspec-mocks (~>
|
|
65
|
-
rspec-core (
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
73
|
+
rspec (3.0.0)
|
|
74
|
+
rspec-core (~> 3.0.0)
|
|
75
|
+
rspec-expectations (~> 3.0.0)
|
|
76
|
+
rspec-mocks (~> 3.0.0)
|
|
77
|
+
rspec-core (3.0.2)
|
|
78
|
+
rspec-support (~> 3.0.0)
|
|
79
|
+
rspec-expectations (3.0.2)
|
|
80
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
81
|
+
rspec-support (~> 3.0.0)
|
|
82
|
+
rspec-mocks (3.0.2)
|
|
83
|
+
rspec-support (~> 3.0.0)
|
|
84
|
+
rspec-support (3.0.2)
|
|
85
|
+
thread_safe (0.3.4)
|
|
86
|
+
tzinfo (1.2.1)
|
|
87
|
+
thread_safe (~> 0.1)
|
|
70
88
|
|
|
71
89
|
PLATFORMS
|
|
72
90
|
ruby
|
|
@@ -74,6 +92,6 @@ PLATFORMS
|
|
|
74
92
|
DEPENDENCIES
|
|
75
93
|
bundler
|
|
76
94
|
jeweler
|
|
77
|
-
mongoid (~>
|
|
95
|
+
mongoid (~> 4.0.0)
|
|
78
96
|
rdoc
|
|
79
97
|
rspec
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
4.0.0
|
data/lib/saasable/middleware.rb
CHANGED
|
@@ -7,7 +7,9 @@ class Saasable::Middleware
|
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
def call env
|
|
10
|
-
env
|
|
10
|
+
return @app.call(env) if env['PATH_INFO'].start_with?('/assets')
|
|
11
|
+
|
|
12
|
+
env[:saasable] = {:current_saas => saas_for_host(env['SERVER_NAME'])}
|
|
11
13
|
env[:saasable][:current_saas].activate! if env[:saasable][:current_saas]
|
|
12
14
|
|
|
13
15
|
@app.call(env).tap do
|
|
@@ -16,9 +18,9 @@ class Saasable::Middleware
|
|
|
16
18
|
end
|
|
17
19
|
|
|
18
20
|
private
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
end
|
|
21
|
+
def saas_for_host hostname
|
|
22
|
+
Saasable::Mongoid::SaasDocument.saas_document.find_by_host!(hostname)
|
|
23
|
+
rescue Saasable::Errors::SaasNotFound
|
|
24
|
+
nil # Saas not found is treated by the Rails Helper
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -1,68 +1,68 @@
|
|
|
1
1
|
module Saasable::Mongoid::SaasDocument
|
|
2
2
|
@saas_document = nil
|
|
3
|
-
|
|
3
|
+
|
|
4
4
|
def self.included klass
|
|
5
5
|
if @saas_document and @saas_document.name != klass.name
|
|
6
6
|
raise Saasable::Errors::MultipleSaasDocuments, "you can only have one Saasable::SaasDocument"
|
|
7
7
|
else
|
|
8
8
|
@saas_document = klass
|
|
9
9
|
end
|
|
10
|
-
|
|
10
|
+
|
|
11
11
|
klass.extend ClassMethods
|
|
12
12
|
klass.send(:include, InstanceMethods)
|
|
13
13
|
klass.class_eval do
|
|
14
14
|
# Fields
|
|
15
15
|
field :hosts, :type => Array
|
|
16
|
-
|
|
16
|
+
|
|
17
17
|
# Validations
|
|
18
18
|
validates_uniqueness_of :hosts
|
|
19
|
-
|
|
19
|
+
|
|
20
20
|
# Indexes
|
|
21
|
-
index
|
|
21
|
+
index({hosts: 1})
|
|
22
22
|
end
|
|
23
|
-
|
|
23
|
+
|
|
24
24
|
klass.instance_variable_set("@_active_saas", nil)
|
|
25
25
|
klass.instance_variable_set("@_after_activate_chain", [])
|
|
26
26
|
klass.instance_variable_set("@_after_deactivate_chain", [])
|
|
27
27
|
end
|
|
28
|
-
|
|
28
|
+
|
|
29
29
|
def self.saas_document
|
|
30
30
|
@saas_document
|
|
31
31
|
end
|
|
32
|
-
|
|
32
|
+
|
|
33
33
|
module InstanceMethods
|
|
34
34
|
def activate!
|
|
35
35
|
Saasable::Mongoid::ScopedDocument.scoped_documents.each do |klass|
|
|
36
|
-
|
|
37
|
-
klass.default_scoping
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
klass.
|
|
41
|
-
klass.class_eval "field :saas_id, :type => BSON::ObjectId, :default => BSON::ObjectId(\"#{self._id}\")"
|
|
36
|
+
saasble_criteria = Mongoid::Criteria.new(klass).where(saas_id: self._id)
|
|
37
|
+
klass.default_scoping = klass.default_scoping? ? saasble_criteria.merge(klass.default_scoping.call).to_proc : saasble_criteria.to_proc
|
|
38
|
+
|
|
39
|
+
klass.fields["saas_id"].default_val = self._id
|
|
40
|
+
klass.fields["saas_id"].options[:default] = self._id
|
|
42
41
|
end
|
|
43
|
-
|
|
42
|
+
|
|
44
43
|
self.class.instance_variable_set("@_active_saas", self)
|
|
45
44
|
self.class.instance_variable_get("@_after_activate_chain").each { |method_name| send(method_name) }
|
|
46
45
|
end
|
|
47
|
-
|
|
46
|
+
|
|
48
47
|
def deactivate!
|
|
49
48
|
self.class.deactivate_all!
|
|
50
49
|
end
|
|
51
50
|
end
|
|
52
|
-
|
|
51
|
+
|
|
53
52
|
module ClassMethods
|
|
54
53
|
def deactivate_all!
|
|
55
54
|
Saasable::Mongoid::ScopedDocument.scoped_documents.each do |klass|
|
|
56
|
-
klass.
|
|
57
|
-
|
|
55
|
+
saasble_criteria = Mongoid::Criteria.new(klass).where(saas_id: @_active_saas._id)
|
|
56
|
+
klass.default_scoping = klass.default_scoping.call.remove_scoping(saasble_criteria).to_proc
|
|
57
|
+
|
|
58
58
|
klass.fields["saas_id"].default_val = nil
|
|
59
59
|
klass.fields["saas_id"].options.delete(:default)
|
|
60
60
|
end
|
|
61
|
-
|
|
61
|
+
|
|
62
62
|
last_active_saas, @_active_saas = active_saas, nil
|
|
63
63
|
@_after_deactivate_chain.each { |method_name| last_active_saas.send(method_name) }
|
|
64
|
-
end
|
|
65
|
-
|
|
64
|
+
end
|
|
65
|
+
|
|
66
66
|
def find_by_host! a_host
|
|
67
67
|
if Saasable::Mongoid::SaasDocument.saas_document.nil?
|
|
68
68
|
if Rails.env.production?
|
|
@@ -71,8 +71,8 @@ module Saasable::Mongoid::SaasDocument
|
|
|
71
71
|
return nil
|
|
72
72
|
end
|
|
73
73
|
end
|
|
74
|
-
|
|
75
|
-
possible_saas = Saasable::Mongoid::SaasDocument.saas_document.where(:hosts => a_host)
|
|
74
|
+
|
|
75
|
+
possible_saas = Saasable::Mongoid::SaasDocument.saas_document.where(:hosts => a_host).to_a
|
|
76
76
|
if possible_saas.empty?
|
|
77
77
|
raise Saasable::Errors::SaasNotFound, "no #{Saasable::Mongoid::SaasDocument.saas_document.name} found for the host: \"#{a_host}\""
|
|
78
78
|
elsif possible_saas.count > 1
|
|
@@ -81,25 +81,25 @@ module Saasable::Mongoid::SaasDocument
|
|
|
81
81
|
return possible_saas.first
|
|
82
82
|
end
|
|
83
83
|
end
|
|
84
|
-
|
|
84
|
+
|
|
85
85
|
def active_saas
|
|
86
86
|
@_active_saas
|
|
87
87
|
end
|
|
88
|
-
|
|
88
|
+
|
|
89
89
|
def after_activate *method_names
|
|
90
90
|
@_after_activate_chain += method_names
|
|
91
91
|
end
|
|
92
|
-
|
|
92
|
+
|
|
93
93
|
def after_deactivate *method_names
|
|
94
94
|
@_after_deactivate_chain += method_names
|
|
95
95
|
end
|
|
96
|
-
|
|
96
|
+
|
|
97
97
|
def remove_after_activate *method_names
|
|
98
98
|
@_after_activate_chain -= method_names
|
|
99
99
|
end
|
|
100
|
-
|
|
100
|
+
|
|
101
101
|
def remove_after_deactivate *method_names
|
|
102
102
|
@_after_deactivate_chain -= method_names
|
|
103
103
|
end
|
|
104
104
|
end
|
|
105
|
-
end
|
|
105
|
+
end
|
|
@@ -8,10 +8,14 @@ module Saasable::Mongoid::ScopedDocument
|
|
|
8
8
|
klass.class_eval do
|
|
9
9
|
# Fields
|
|
10
10
|
field :saas_id, :type => BSON::ObjectId
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
# Indexes
|
|
13
|
-
index
|
|
14
|
-
index
|
|
13
|
+
index({saas_id: 1})
|
|
14
|
+
index({saad_id: 1, _id: 1})
|
|
15
|
+
|
|
16
|
+
class << self
|
|
17
|
+
alias_method_chain :index, :saasable
|
|
18
|
+
end
|
|
15
19
|
end
|
|
16
20
|
end
|
|
17
21
|
|
|
@@ -33,7 +37,12 @@ module Saasable::Mongoid::ScopedDocument
|
|
|
33
37
|
attributes[:scope] ||= []
|
|
34
38
|
attributes[:scope] << :saas_id unless attributes[:scope].include?(:saas_id)
|
|
35
39
|
|
|
36
|
-
validates_with(Mongoid::
|
|
40
|
+
validates_with(Mongoid::Validatable::UniquenessValidator, attributes)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def index_with_saasable(spec, options = nil)
|
|
44
|
+
index_without_saasable(spec, options.except(:unique)) # Never create this one with unique since it's only unique in the saas scope.
|
|
45
|
+
index_without_saasable({saas_id: 1}.merge(spec), options) unless spec.include?(:saas_id)
|
|
37
46
|
end
|
|
38
47
|
end
|
|
39
48
|
end
|
|
@@ -6,16 +6,16 @@ module Saasable::Railties
|
|
|
6
6
|
klass.class_eval do
|
|
7
7
|
helper_method :current_saas
|
|
8
8
|
|
|
9
|
-
before_filter :_redirect_if_saas_not_found
|
|
9
|
+
before_filter :_redirect_if_saas_not_found unless Rails.env.development?
|
|
10
10
|
saas_not_found_redirect_to "/404.html"
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
private
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
def _skip_saasable
|
|
14
|
+
current_saas.deactivate! if current_saas
|
|
15
|
+
end
|
|
16
16
|
end
|
|
17
17
|
end
|
|
18
|
-
|
|
18
|
+
|
|
19
19
|
module ClassMethods
|
|
20
20
|
def saas_not_found_redirect_to path_or_url
|
|
21
21
|
self.class_eval <<-METHOD, __FILE__, __LINE__ + 1
|
|
@@ -27,17 +27,17 @@ module Saasable::Railties
|
|
|
27
27
|
end
|
|
28
28
|
METHOD
|
|
29
29
|
end
|
|
30
|
-
|
|
30
|
+
|
|
31
31
|
def skip_saasable options
|
|
32
32
|
skip_before_filter :_redirect_if_saas_not_found, options
|
|
33
33
|
before_filter :_skip_saasable, options
|
|
34
34
|
end
|
|
35
35
|
end
|
|
36
|
-
|
|
36
|
+
|
|
37
37
|
module InstanceMethods
|
|
38
38
|
def current_saas
|
|
39
39
|
@current_saas ||= request.env[:saasable][:current_saas]
|
|
40
40
|
end
|
|
41
41
|
end
|
|
42
42
|
end
|
|
43
|
-
end
|
|
43
|
+
end
|
data/saasable.gemspec
CHANGED
|
@@ -2,15 +2,16 @@
|
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
|
5
|
-
# stub: saasable 0.
|
|
5
|
+
# stub: saasable 4.0.0 ruby lib
|
|
6
6
|
|
|
7
7
|
Gem::Specification.new do |s|
|
|
8
8
|
s.name = "saasable"
|
|
9
|
-
s.version = "0.
|
|
9
|
+
s.version = "4.0.0"
|
|
10
10
|
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
12
|
+
s.require_paths = ["lib"]
|
|
12
13
|
s.authors = ["Educa2", "Rafael Gaspar"]
|
|
13
|
-
s.date = "
|
|
14
|
+
s.date = "2014-07-17"
|
|
14
15
|
s.description = "A gem for making a Multi-Tenant SaaS using Mongoid"
|
|
15
16
|
s.email = "suporte@educa2.com.br"
|
|
16
17
|
s.extra_rdoc_files = [
|
|
@@ -43,28 +44,27 @@ Gem::Specification.new do |s|
|
|
|
43
44
|
]
|
|
44
45
|
s.homepage = "http://github.com/educa2/saasable"
|
|
45
46
|
s.licenses = ["MIT"]
|
|
46
|
-
s.
|
|
47
|
-
s.rubygems_version = "2.1.11"
|
|
47
|
+
s.rubygems_version = "2.2.2"
|
|
48
48
|
s.summary = "A gem for making a Multi-Tenant SaaS using Mongoid"
|
|
49
49
|
|
|
50
50
|
if s.respond_to? :specification_version then
|
|
51
51
|
s.specification_version = 4
|
|
52
52
|
|
|
53
53
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
54
|
-
s.add_runtime_dependency(%q<mongoid>, ["~>
|
|
54
|
+
s.add_runtime_dependency(%q<mongoid>, ["~> 4.0.0"])
|
|
55
55
|
s.add_development_dependency(%q<rspec>, [">= 0"])
|
|
56
56
|
s.add_development_dependency(%q<bundler>, [">= 0"])
|
|
57
57
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
|
58
58
|
s.add_development_dependency(%q<rdoc>, [">= 0"])
|
|
59
59
|
else
|
|
60
|
-
s.add_dependency(%q<mongoid>, ["~>
|
|
60
|
+
s.add_dependency(%q<mongoid>, ["~> 4.0.0"])
|
|
61
61
|
s.add_dependency(%q<rspec>, [">= 0"])
|
|
62
62
|
s.add_dependency(%q<bundler>, [">= 0"])
|
|
63
63
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
|
64
64
|
s.add_dependency(%q<rdoc>, [">= 0"])
|
|
65
65
|
end
|
|
66
66
|
else
|
|
67
|
-
s.add_dependency(%q<mongoid>, ["~>
|
|
67
|
+
s.add_dependency(%q<mongoid>, ["~> 4.0.0"])
|
|
68
68
|
s.add_dependency(%q<rspec>, [">= 0"])
|
|
69
69
|
s.add_dependency(%q<bundler>, [">= 0"])
|
|
70
70
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: saasable
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 4.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Educa2
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2014-07-17 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: mongoid
|
|
@@ -17,14 +17,14 @@ dependencies:
|
|
|
17
17
|
requirements:
|
|
18
18
|
- - ~>
|
|
19
19
|
- !ruby/object:Gem::Version
|
|
20
|
-
version:
|
|
20
|
+
version: 4.0.0
|
|
21
21
|
type: :runtime
|
|
22
22
|
prerelease: false
|
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
|
24
24
|
requirements:
|
|
25
25
|
- - ~>
|
|
26
26
|
- !ruby/object:Gem::Version
|
|
27
|
-
version:
|
|
27
|
+
version: 4.0.0
|
|
28
28
|
- !ruby/object:Gem::Dependency
|
|
29
29
|
name: rspec
|
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -131,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
131
131
|
version: '0'
|
|
132
132
|
requirements: []
|
|
133
133
|
rubyforge_project:
|
|
134
|
-
rubygems_version: 2.
|
|
134
|
+
rubygems_version: 2.2.2
|
|
135
135
|
signing_key:
|
|
136
136
|
specification_version: 4
|
|
137
137
|
summary: A gem for making a Multi-Tenant SaaS using Mongoid
|