apartment 0.14.2 → 0.14.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/HISTORY.md +5 -0
- data/lib/apartment.rb +19 -19
- data/lib/apartment/delayed_job/active_record.rb +1 -1
- data/lib/apartment/delayed_job/enqueue.rb +4 -4
- data/lib/apartment/delayed_job/requirements.rb +1 -1
- data/lib/apartment/elevators/subdomain.rb +7 -7
- data/lib/apartment/migrator.rb +6 -6
- data/lib/apartment/railtie.rb +15 -15
- data/lib/apartment/version.rb +1 -1
- data/spec/apartment_spec.rb +1 -1
- data/spec/integration/delayed_job_integration_spec.rb +0 -25
- data/spec/unit/config_spec.rb +15 -15
- data/spec/unit/migrator_spec.rb +14 -14
- data/spec/unit/reloader_spec.rb +6 -6
- metadata +24 -24
data/HISTORY.md
CHANGED
data/lib/apartment.rb
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
require 'apartment/railtie' if defined?(Rails)
|
2
2
|
|
3
3
|
module Apartment
|
4
|
-
|
4
|
+
|
5
5
|
class << self
|
6
6
|
attr_accessor :use_postgres_schemas, :seed_after_create, :prepend_environment
|
7
7
|
attr_writer :database_names, :excluded_models
|
8
|
-
|
8
|
+
|
9
9
|
# configure apartment with available options
|
10
10
|
def configure
|
11
11
|
yield self if block_given?
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
# Be careful not to use `return` here so both Proc and lambda can be used without breaking
|
15
15
|
def database_names
|
16
16
|
@database_names.respond_to?(:call) ? @database_names.call : @database_names
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
# Default to none
|
20
20
|
def excluded_models
|
21
21
|
@excluded_models || []
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
autoload :Database, 'apartment/database'
|
27
27
|
autoload :Migrator, 'apartment/migrator'
|
28
28
|
autoload :Reloader, 'apartment/reloader'
|
29
|
-
|
29
|
+
|
30
30
|
module Adapters
|
31
31
|
autoload :AbstractAdapter, 'apartment/adapters/abstract_adapter'
|
32
32
|
# Specific adapters will be loaded dynamically based on adapter in config
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
module Elevators
|
36
36
|
autoload :Subdomain, 'apartment/elevators/subdomain'
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
module Delayed
|
40
|
-
|
40
|
+
|
41
41
|
autoload :Requirements, 'apartment/delayed_job/requirements'
|
42
|
-
|
42
|
+
|
43
43
|
module Job
|
44
44
|
autoload :Hooks, 'apartment/delayed_job/hooks'
|
45
45
|
end
|
46
46
|
end
|
47
|
-
|
47
|
+
|
48
48
|
# Exceptions
|
49
49
|
class ApartmentError < StandardError; end
|
50
|
-
|
50
|
+
|
51
51
|
# Raised when apartment cannot find the adapter specified in <tt>config/database.yml</tt>
|
52
52
|
class AdapterNotFound < ApartmentError; end
|
53
|
-
|
53
|
+
|
54
54
|
# Raised when database cannot find the specified database
|
55
55
|
class DatabaseNotFound < ApartmentError; end
|
56
|
-
|
56
|
+
|
57
57
|
# Raised when trying to create a database that already exists
|
58
58
|
class DatabaseExists < ApartmentError; end
|
59
|
-
|
59
|
+
|
60
60
|
# Raised when database cannot find the specified schema
|
61
61
|
class SchemaNotFound < ApartmentError; end
|
62
|
-
|
62
|
+
|
63
63
|
# Raised when trying to create a schema that already exists
|
64
64
|
class SchemaExists < ApartmentError; end
|
65
|
-
|
65
|
+
|
66
66
|
# Raised when an ActiveRecord object does not have the required database field on it
|
67
67
|
class DJSerializationError < ApartmentError; end
|
68
|
-
|
68
|
+
|
69
69
|
end
|
@@ -15,7 +15,7 @@ module ActiveRecord
|
|
15
15
|
# Rails > 3.0 now uses encode_with to determine what to encode with yaml
|
16
16
|
# @override to include database attribute
|
17
17
|
def encode_with_with_database(coder)
|
18
|
-
coder['database'] = database
|
18
|
+
coder['database'] = @database if @database.present?
|
19
19
|
encode_with_without_database(coder)
|
20
20
|
end
|
21
21
|
alias_method_chain :encode_with, :database
|
@@ -4,17 +4,17 @@ require 'apartment/delayed_job/active_record' # ensure that our AR hooks are l
|
|
4
4
|
module Apartment
|
5
5
|
module Delayed
|
6
6
|
module Job
|
7
|
-
|
7
|
+
|
8
8
|
# Will enqueue a job ensuring that it happens within the main 'public' database
|
9
|
-
#
|
9
|
+
#
|
10
10
|
# Note that this should not longer be required for versions >= 0.11.0 when using postgresql schemas
|
11
|
-
#
|
11
|
+
#
|
12
12
|
def self.enqueue(payload_object, options = {})
|
13
13
|
Apartment::Database.process do
|
14
14
|
::Delayed::Job.enqueue(payload_object, options)
|
15
15
|
end
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
@@ -3,25 +3,25 @@ module Apartment
|
|
3
3
|
# Provides a rack based db switching solution based on subdomains
|
4
4
|
# Assumes that database name should match subdomain
|
5
5
|
class Subdomain
|
6
|
-
|
6
|
+
|
7
7
|
def initialize(app)
|
8
8
|
@app = app
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
def call(env)
|
12
12
|
request = ActionDispatch::Request.new(env)
|
13
|
-
|
13
|
+
|
14
14
|
database = subdomain(request)
|
15
|
-
|
15
|
+
|
16
16
|
Apartment::Database.switch database if database
|
17
|
-
|
17
|
+
|
18
18
|
@app.call(env)
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
def subdomain(request)
|
22
22
|
request.subdomain.present? && request.subdomain || nil
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
data/lib/apartment/migrator.rb
CHANGED
@@ -1,23 +1,23 @@
|
|
1
1
|
module Apartment
|
2
|
-
|
2
|
+
|
3
3
|
module Migrator
|
4
|
-
|
4
|
+
|
5
5
|
extend self
|
6
|
-
|
6
|
+
|
7
7
|
# Migrate to latest
|
8
8
|
def migrate(database)
|
9
9
|
Database.process(database){ ActiveRecord::Migrator.migrate(ActiveRecord::Migrator.migrations_path) }
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
# Migrate up/down to a specific version
|
13
13
|
def run(direction, database, version)
|
14
14
|
Database.process(database){ ActiveRecord::Migrator.run(direction, ActiveRecord::Migrator.migrations_path, version) }
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
# rollback latest migration `step` number of times
|
18
18
|
def rollback(database, step = 1)
|
19
19
|
Database.process(database){ ActiveRecord::Migrator.rollback(ActiveRecord::Migrator.migrations_path, step) }
|
20
20
|
end
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
end
|
data/lib/apartment/railtie.rb
CHANGED
@@ -2,11 +2,11 @@ require 'rails'
|
|
2
2
|
|
3
3
|
module Apartment
|
4
4
|
class Railtie < Rails::Railtie
|
5
|
-
|
6
|
-
#
|
5
|
+
|
6
|
+
#
|
7
7
|
# Set up our default config options
|
8
8
|
# Do this before the app initializers run so we don't override custom settings
|
9
|
-
#
|
9
|
+
#
|
10
10
|
config.before_initialize do
|
11
11
|
Apartment.configure do |config|
|
12
12
|
config.excluded_models = []
|
@@ -16,39 +16,39 @@ module Apartment
|
|
16
16
|
config.prepend_environment = true
|
17
17
|
end
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
# Hook into ActionDispatch::Reloader to ensure Apartment is properly initialized
|
21
21
|
# Note that this doens't entirely work as expected in Development, because this is called before classes are reloaded
|
22
22
|
# See the above middleware/console declarations below to help with this. Hope to fix that soon.
|
23
|
-
#
|
23
|
+
#
|
24
24
|
config.to_prepare do
|
25
25
|
Apartment::Database.init
|
26
26
|
end
|
27
|
-
|
28
|
-
#
|
27
|
+
|
28
|
+
#
|
29
29
|
# Ensure rake tasks are loaded
|
30
|
-
#
|
30
|
+
#
|
31
31
|
rake_tasks do
|
32
32
|
load 'tasks/apartment.rake'
|
33
33
|
end
|
34
|
-
|
35
|
-
#
|
34
|
+
|
35
|
+
#
|
36
36
|
# The following initializers are a workaround to the fact that I can't properly hook into the rails reloader
|
37
37
|
# Note this is technically valid for any environment where cache_classes is false, for us, it's just development
|
38
|
-
#
|
38
|
+
#
|
39
39
|
if Rails.env.development?
|
40
|
-
|
40
|
+
|
41
41
|
# Apartment::Reloader is middleware to initialize things properly on each request to dev
|
42
42
|
initializer 'apartment.init' do |app|
|
43
43
|
app.config.middleware.use "Apartment::Reloader"
|
44
44
|
end
|
45
|
-
|
45
|
+
|
46
46
|
# Overrides reload! to also call Apartment::Database.init as well so that the reloaded classes have the proper table_names
|
47
47
|
console do
|
48
48
|
require 'apartment/console'
|
49
49
|
end
|
50
|
-
|
50
|
+
|
51
51
|
end
|
52
|
-
|
52
|
+
|
53
53
|
end
|
54
54
|
end
|
data/lib/apartment/version.rb
CHANGED
data/spec/apartment_spec.rb
CHANGED
@@ -30,31 +30,6 @@ describe Apartment::Delayed do
|
|
30
30
|
Apartment::Test.reset
|
31
31
|
end
|
32
32
|
|
33
|
-
describe Apartment::Delayed::Job do
|
34
|
-
context "#enqueue" do
|
35
|
-
|
36
|
-
before do
|
37
|
-
Apartment::Database.reset
|
38
|
-
end
|
39
|
-
|
40
|
-
it "should queue up jobs in the public schema" do
|
41
|
-
dj_count = Delayed::Job.count
|
42
|
-
Apartment::Database.switch database
|
43
|
-
Apartment::Delayed::Job.enqueue FakeDjClass.new
|
44
|
-
Apartment::Database.reset
|
45
|
-
|
46
|
-
Delayed::Job.count.should == dj_count + 1
|
47
|
-
end
|
48
|
-
|
49
|
-
it "should not queue jobs in the current schema" do
|
50
|
-
Apartment::Database.switch database
|
51
|
-
expect {
|
52
|
-
Apartment::Delayed::Job.enqueue FakeDjClass.new
|
53
|
-
}.to_not change(Delayed::Job, :count) # because we will still be on the `database` schema, not public
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
33
|
describe Apartment::Delayed::Requirements do
|
59
34
|
|
60
35
|
before do
|
data/spec/unit/config_spec.rb
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Apartment do
|
4
|
-
|
4
|
+
|
5
5
|
describe "#config" do
|
6
|
-
|
6
|
+
|
7
7
|
let(:excluded_models){ [Company] }
|
8
|
-
|
8
|
+
|
9
9
|
after do
|
10
10
|
Apartment::Test.reset
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
it "should yield the Apartment object" do
|
14
14
|
Apartment.configure do |config|
|
15
15
|
config.excluded_models = []
|
16
16
|
config.should == Apartment
|
17
17
|
end
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
it "should set excluded models" do
|
21
21
|
Apartment.configure do |config|
|
22
22
|
config.excluded_models = excluded_models
|
23
23
|
end
|
24
24
|
Apartment.excluded_models.should == excluded_models
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
it "should set postgres_schemas" do
|
28
28
|
Apartment.configure do |config|
|
29
29
|
config.excluded_models = []
|
@@ -31,7 +31,7 @@ describe Apartment do
|
|
31
31
|
end
|
32
32
|
Apartment.use_postgres_schemas.should be_false
|
33
33
|
end
|
34
|
-
|
34
|
+
|
35
35
|
it "should set seed_after_create" do
|
36
36
|
Apartment.configure do |config|
|
37
37
|
config.excluded_models = []
|
@@ -39,40 +39,40 @@ describe Apartment do
|
|
39
39
|
end
|
40
40
|
Apartment.seed_after_create.should be_true
|
41
41
|
end
|
42
|
-
|
42
|
+
|
43
43
|
context "databases" do
|
44
44
|
it "should return object if it doesnt respond_to call" do
|
45
45
|
database_names = ['users', 'companies']
|
46
|
-
|
46
|
+
|
47
47
|
Apartment.configure do |config|
|
48
48
|
config.excluded_models = []
|
49
49
|
config.database_names = database_names
|
50
50
|
end
|
51
51
|
Apartment.database_names.should == database_names
|
52
52
|
end
|
53
|
-
|
53
|
+
|
54
54
|
it "should invoke the proc if appropriate" do
|
55
55
|
database_names = lambda{ ['users', 'users'] }
|
56
56
|
database_names.should_receive(:call)
|
57
|
-
|
57
|
+
|
58
58
|
Apartment.configure do |config|
|
59
59
|
config.excluded_models = []
|
60
60
|
config.database_names = database_names
|
61
61
|
end
|
62
62
|
Apartment.database_names
|
63
63
|
end
|
64
|
-
|
64
|
+
|
65
65
|
it "should return the invoked proc if appropriate" do
|
66
66
|
dbs = lambda{ Company.scoped }
|
67
|
-
|
67
|
+
|
68
68
|
Apartment.configure do |config|
|
69
69
|
config.excluded_models = []
|
70
70
|
config.database_names = dbs
|
71
71
|
end
|
72
|
-
|
72
|
+
|
73
73
|
Apartment.database_names.should == Company.scoped
|
74
74
|
end
|
75
75
|
end
|
76
|
-
|
76
|
+
|
77
77
|
end
|
78
78
|
end
|
data/spec/unit/migrator_spec.rb
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Apartment::Migrator do
|
4
|
-
|
4
|
+
|
5
5
|
let(:config){ Apartment::Test.config['connections']['postgresql'].symbolize_keys }
|
6
6
|
let(:schema_name){ 'some_db_schema' }
|
7
7
|
let(:version){ 20110613152810 } # note this is brittle! I've literally just taken the version of the one migration I made... don't change this version
|
8
|
-
|
8
|
+
|
9
9
|
before do
|
10
10
|
ActiveRecord::Base.establish_connection config
|
11
11
|
Apartment::Database.stub(:config).and_return config # Use postgresql config for this test
|
12
12
|
@original_schema = ActiveRecord::Base.connection.schema_search_path
|
13
|
-
|
13
|
+
|
14
14
|
Apartment.configure do |config|
|
15
15
|
config.use_postgres_schemas = true
|
16
16
|
config.excluded_models = []
|
17
17
|
config.database_names = [schema_name]
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
Apartment::Database.create schema_name # create the schema
|
21
21
|
migrations_path = Rails.root + ActiveRecord::Migrator.migrations_path # tell AR where the real migrations are
|
22
22
|
ActiveRecord::Migrator.stub(:migrations_path).and_return(migrations_path)
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
after do
|
26
26
|
Apartment::Test.drop_schema(schema_name)
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
context "postgresql" do
|
30
30
|
|
31
31
|
context "using schemas" do
|
32
|
-
|
32
|
+
|
33
33
|
describe "#migrate" do
|
34
34
|
it "should connect to new db, then reset when done" do
|
35
35
|
ActiveRecord::Base.connection.should_receive(:schema_search_path=).with(schema_name).once
|
36
36
|
ActiveRecord::Base.connection.should_receive(:schema_search_path=).with(@original_schema).once
|
37
37
|
Apartment::Migrator.migrate(schema_name)
|
38
38
|
end
|
39
|
-
|
39
|
+
|
40
40
|
it "should migrate db" do
|
41
41
|
ActiveRecord::Migrator.should_receive(:migrate)
|
42
42
|
Apartment::Migrator.migrate(schema_name)
|
43
43
|
end
|
44
44
|
end
|
45
|
-
|
45
|
+
|
46
46
|
describe "#run" do
|
47
47
|
context "up" do
|
48
|
-
|
48
|
+
|
49
49
|
it "should connect to new db, then reset when done" do
|
50
50
|
ActiveRecord::Base.connection.should_receive(:schema_search_path=).with(schema_name).once
|
51
51
|
ActiveRecord::Base.connection.should_receive(:schema_search_path=).with(@original_schema).once
|
52
52
|
Apartment::Migrator.run(:up, schema_name, version)
|
53
53
|
end
|
54
|
-
|
54
|
+
|
55
55
|
it "should migrate to a version" do
|
56
56
|
ActiveRecord::Migrator.should_receive(:run).with(:up, anything, version)
|
57
57
|
Apartment::Migrator.run(:up, schema_name, version)
|
@@ -59,7 +59,7 @@ describe Apartment::Migrator do
|
|
59
59
|
end
|
60
60
|
|
61
61
|
describe "down" do
|
62
|
-
|
62
|
+
|
63
63
|
it "should connect to new db, then reset when done" do
|
64
64
|
ActiveRecord::Base.connection.should_receive(:schema_search_path=).with(schema_name).once
|
65
65
|
ActiveRecord::Base.connection.should_receive(:schema_search_path=).with(@original_schema).once
|
@@ -75,7 +75,7 @@ describe Apartment::Migrator do
|
|
75
75
|
|
76
76
|
describe "#rollback" do
|
77
77
|
let(:steps){ 3 }
|
78
|
-
|
78
|
+
|
79
79
|
it "should rollback the db" do
|
80
80
|
ActiveRecord::Migrator.should_receive(:rollback).with(anything, steps)
|
81
81
|
Apartment::Migrator.rollback(schema_name, steps)
|
@@ -83,5 +83,5 @@ describe Apartment::Migrator do
|
|
83
83
|
end
|
84
84
|
end
|
85
85
|
end
|
86
|
-
|
86
|
+
|
87
87
|
end
|
data/spec/unit/reloader_spec.rb
CHANGED
@@ -1,22 +1,22 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Apartment::Reloader do
|
4
|
-
|
4
|
+
|
5
5
|
context "using postgresql schemas" do
|
6
|
-
|
6
|
+
|
7
7
|
before do
|
8
8
|
Apartment.excluded_models = ["Company"]
|
9
9
|
Company.reset_table_name # ensure we're clean
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
subject{ Apartment::Reloader.new(mock("Rack::Application", :call => nil)) }
|
13
|
-
|
13
|
+
|
14
14
|
it "should initialize apartment when called" do
|
15
15
|
Company.table_name.should_not include('public.')
|
16
16
|
subject.call(mock('env'))
|
17
17
|
Company.table_name.should include('public.')
|
18
18
|
end
|
19
19
|
end
|
20
|
-
|
21
|
-
|
20
|
+
|
21
|
+
|
22
22
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: apartment
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.14.
|
4
|
+
version: 0.14.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-02-21 00:00:00.
|
13
|
+
date: 2012-02-21 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
17
|
-
requirement: &
|
17
|
+
requirement: &2152184980 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 3.1.2
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *2152184980
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: rake
|
28
|
-
requirement: &
|
28
|
+
requirement: &2152183300 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 0.9.2
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *2152183300
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: sqlite3
|
39
|
-
requirement: &
|
39
|
+
requirement: &2152182600 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *2152182600
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: rspec
|
50
|
-
requirement: &
|
50
|
+
requirement: &2152181680 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ~>
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 2.8.0
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *2152181680
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: rspec-rails
|
61
|
-
requirement: &
|
61
|
+
requirement: &2152177640 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ~>
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: 2.8.0
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *2152177640
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: capybara
|
72
|
-
requirement: &
|
72
|
+
requirement: &2152176580 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - =
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: 1.0.0
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *2152176580
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: pg
|
83
|
-
requirement: &
|
83
|
+
requirement: &2152175640 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ~>
|
@@ -88,10 +88,10 @@ dependencies:
|
|
88
88
|
version: 0.11.0
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *2152175640
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: mysql2
|
94
|
-
requirement: &
|
94
|
+
requirement: &2152162340 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
97
97
|
- - ~>
|
@@ -99,10 +99,10 @@ dependencies:
|
|
99
99
|
version: 0.3.7
|
100
100
|
type: :development
|
101
101
|
prerelease: false
|
102
|
-
version_requirements: *
|
102
|
+
version_requirements: *2152162340
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: silent-postgres
|
105
|
-
requirement: &
|
105
|
+
requirement: &2152160960 !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|
108
108
|
- - ~>
|
@@ -110,10 +110,10 @@ dependencies:
|
|
110
110
|
version: 0.1.1
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
|
-
version_requirements: *
|
113
|
+
version_requirements: *2152160960
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
115
|
name: delayed_job
|
116
|
-
requirement: &
|
116
|
+
requirement: &2152159540 !ruby/object:Gem::Requirement
|
117
117
|
none: false
|
118
118
|
requirements:
|
119
119
|
- - ~>
|
@@ -121,7 +121,7 @@ dependencies:
|
|
121
121
|
version: 2.1.4
|
122
122
|
type: :development
|
123
123
|
prerelease: false
|
124
|
-
version_requirements: *
|
124
|
+
version_requirements: *2152159540
|
125
125
|
description: Apartment allows Rails applications to deal with database multitenancy
|
126
126
|
email:
|
127
127
|
- ryan@ryanbrunner.com
|
@@ -221,7 +221,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
221
221
|
version: '0'
|
222
222
|
segments:
|
223
223
|
- 0
|
224
|
-
hash:
|
224
|
+
hash: 3522357192769439782
|
225
225
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
226
226
|
none: false
|
227
227
|
requirements:
|
@@ -230,7 +230,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
230
230
|
version: '0'
|
231
231
|
segments:
|
232
232
|
- 0
|
233
|
-
hash:
|
233
|
+
hash: 3522357192769439782
|
234
234
|
requirements: []
|
235
235
|
rubyforge_project:
|
236
236
|
rubygems_version: 1.8.10
|