nonschema_migrations 6.0.alpha1 → 6.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6216f98f76c03cbdcd3a2bd60bcd54b7622c2a1d32b268a097e365492e6a2fd5
4
- data.tar.gz: 2feb072bd145e3da6d22ebd5abddee024fb32c90ce35e9cd1847144c60b5d6ce
3
+ metadata.gz: c2e935824796ce13a066ffb1ae249e290b68fa98a0795b1b6030c5c29317d343
4
+ data.tar.gz: 6e0570efd5a054f192dcd231b66b05b241e56b9f03e46ede56f2322416c5f501
5
5
  SHA512:
6
- metadata.gz: 0fe28ee8aaf9f93b693e0d18d9c3ece88b161cb81730fc239ba630eb5b3fc5fe7a24d3832018f3b2317be96bcc031eb23da1ea7b36487ae7ab7dcff8a31b0a77
7
- data.tar.gz: 1f2cfc4d4613e2fa4e8775905d684512fb7ea8960f6a046a795b2aa5e30365133cb49384e491b4feebac5b2fee0e7b1369e43d6f6b90c610385d74021638bc89
6
+ metadata.gz: 2d8f77a424fd97f377ea19cdb52b2ce8c9633452139c2e9102d9b6345195fa6e5ae25a78eb5753f4a23fd9ba847897caf8ac9cefd19cee6003dfac7b03d45c80
7
+ data.tar.gz: 346ee88888703f2266f60588b5ac7ac0744740ce419c07b3c2fb464cd61fd330bc7289b8b722b655e642ebec456b3aa3b091759c5ad64a15c2f87203cea3688b
data/.bundle/config ADDED
@@ -0,0 +1,2 @@
1
+ ---
2
+ BUNDLE_WITHOUT: "local_development"
@@ -0,0 +1,3 @@
1
+ custom: ["https://heliosdev.shop?utm_source=github.com&utm_campaign=github_nonschema_migrations_repo_funding_link",
2
+ "https://shop.heliosdev.shop/?utm_source=github.com&utm_campaign=github_nonschema_migrations_repo_funding_link"]
3
+
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ nonschema_migrations-*.gem
2
+ coverage/
3
+
data/.travis.yml ADDED
@@ -0,0 +1,36 @@
1
+ language: ruby
2
+
3
+ rvm:
4
+ - 1.9.3
5
+ - 2.4.3
6
+ - 2.5.0
7
+ - ruby-head
8
+
9
+ env:
10
+ - DB=sqlite3
11
+ - DB=mysql
12
+ - DB=postgresql
13
+
14
+ gemfile:
15
+ - gemfiles/rails_3_2.gemfile
16
+ - gemfiles/rails_4_0.gemfile
17
+ - gemfiles/rails_4_1.gemfile
18
+ - gemfiles/rails_5_1.gemfile
19
+ - gemfiles/rails_5_2.gemfile
20
+ - gemfiles/rails_6_0.gemfile
21
+
22
+ #cache: bundler
23
+ before_install: gem install bundler
24
+ install: bundle install
25
+ script: bundle exec rake
26
+
27
+ matrix:
28
+ fast_finish: true
29
+
30
+ exclude:
31
+ - rvm: 1.9.3
32
+ gemfile: gemfiles/rails_4-0.gemfile
33
+ - rvm: 1.9.3
34
+ gemfile: gemfiles/rails_4-1.gemfile
35
+ - rvm: ruby-head
36
+ gemfile: gemfiles/rails_3_2.gemfile
data/Appraisals ADDED
@@ -0,0 +1,32 @@
1
+
2
+ # appraise "rails-4-0" do
3
+ # gem "rails", "4.0.10"
4
+ # gem "minitest-rails", "~> 1.0"
5
+ # end
6
+ #
7
+ # appraise "rails-4-1" do
8
+ # gem "rails", "4.1.6"
9
+ # gem "minitest"
10
+ # end
11
+ #
12
+ # appraise "rails-4-2" do
13
+ # gem "rails", "4.2.0"
14
+ # gem "minitest"
15
+ # end
16
+ #
17
+ # appraise "rails-5-0" do
18
+ # gem "rails", "5.0.0"
19
+ # gem "minitest"
20
+ # end
21
+
22
+ appraise "rails-5-1" do
23
+ gem "rails", "5.1.5"
24
+ end
25
+
26
+ appraise "rails-5-2" do
27
+ gem "rails", "5.2.0.rc1"
28
+ end
29
+
30
+ appraise "rails-6-0" do
31
+ gem "rails", "6.0.0"
32
+ end
data/Gemfile ADDED
@@ -0,0 +1,29 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ gem "appraisal"
6
+ gem 'guard'
7
+ gem 'guard-rspec'
8
+ gem 'rake'
9
+
10
+ # gem 'rails', '~> 5.2.2'
11
+ # gem 'byebug', platform: :mri_21
12
+
13
+ # gem 'sqlite3'
14
+ # gem 'mysql2'
15
+ # gem 'mocha'
16
+
17
+ # these versions of Rails are used only when running 'rake test' without using Appraisal
18
+ # when run with Appraisal, this version gets overwritten by appraisal
19
+ # (also special versions of minitest or minitest-rails are used depending
20
+ # on Rails version being tested against)
21
+
22
+ # ENABLE FOR testing Rails 4.1
23
+ # gem "rails", "5.1.6", :require => false
24
+
25
+ gem 'minitest-rg'
26
+
27
+ group :test do
28
+ gem 'simplecov', :require => false
29
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,102 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ nonschema_migrations (6.0.alpha1)
5
+ activerecord (= 7.0.0.alpha2)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ activemodel (7.0.0.alpha2)
11
+ activesupport (= 7.0.0.alpha2)
12
+ activerecord (7.0.0.alpha2)
13
+ activemodel (= 7.0.0.alpha2)
14
+ activesupport (= 7.0.0.alpha2)
15
+ activesupport (7.0.0.alpha2)
16
+ concurrent-ruby (~> 1.0, >= 1.0.2)
17
+ i18n (>= 1.6, < 2)
18
+ minitest (>= 5.1)
19
+ tzinfo (~> 2.0)
20
+ appraisal (2.4.1)
21
+ bundler
22
+ rake
23
+ thor (>= 0.14.0)
24
+ coderay (1.1.3)
25
+ concurrent-ruby (1.1.9)
26
+ diff-lcs (1.4.4)
27
+ docile (1.4.0)
28
+ ffi (1.15.4)
29
+ formatador (0.3.0)
30
+ guard (2.18.0)
31
+ formatador (>= 0.2.4)
32
+ listen (>= 2.7, < 4.0)
33
+ lumberjack (>= 1.0.12, < 2.0)
34
+ nenv (~> 0.1)
35
+ notiffany (~> 0.0)
36
+ pry (>= 0.13.0)
37
+ shellany (~> 0.0)
38
+ thor (>= 0.18.1)
39
+ guard-compat (1.2.1)
40
+ guard-rspec (4.7.3)
41
+ guard (~> 2.1)
42
+ guard-compat (~> 1.1)
43
+ rspec (>= 2.99.0, < 4.0)
44
+ i18n (1.8.11)
45
+ concurrent-ruby (~> 1.0)
46
+ listen (3.7.0)
47
+ rb-fsevent (~> 0.10, >= 0.10.3)
48
+ rb-inotify (~> 0.9, >= 0.9.10)
49
+ lumberjack (1.2.8)
50
+ method_source (1.0.0)
51
+ minitest (5.14.4)
52
+ minitest-rg (5.2.0)
53
+ minitest (~> 5.0)
54
+ nenv (0.3.0)
55
+ notiffany (0.1.3)
56
+ nenv (~> 0.1)
57
+ shellany (~> 0.0)
58
+ pry (0.14.1)
59
+ coderay (~> 1.1)
60
+ method_source (~> 1.0)
61
+ rake (13.0.6)
62
+ rb-fsevent (0.11.0)
63
+ rb-inotify (0.10.1)
64
+ ffi (~> 1.0)
65
+ rspec (3.10.0)
66
+ rspec-core (~> 3.10.0)
67
+ rspec-expectations (~> 3.10.0)
68
+ rspec-mocks (~> 3.10.0)
69
+ rspec-core (3.10.1)
70
+ rspec-support (~> 3.10.0)
71
+ rspec-expectations (3.10.1)
72
+ diff-lcs (>= 1.2.0, < 2.0)
73
+ rspec-support (~> 3.10.0)
74
+ rspec-mocks (3.10.2)
75
+ diff-lcs (>= 1.2.0, < 2.0)
76
+ rspec-support (~> 3.10.0)
77
+ rspec-support (3.10.3)
78
+ shellany (0.0.1)
79
+ simplecov (0.21.2)
80
+ docile (~> 1.1)
81
+ simplecov-html (~> 0.11)
82
+ simplecov_json_formatter (~> 0.1)
83
+ simplecov-html (0.12.3)
84
+ simplecov_json_formatter (0.1.3)
85
+ thor (1.1.0)
86
+ tzinfo (2.0.4)
87
+ concurrent-ruby (~> 1.0)
88
+
89
+ PLATFORMS
90
+ ruby
91
+
92
+ DEPENDENCIES
93
+ appraisal
94
+ guard
95
+ guard-rspec
96
+ minitest-rg
97
+ nonschema_migrations!
98
+ rake
99
+ simplecov
100
+
101
+ BUNDLED WITH
102
+ 1.17.2
data/LICENCE.md ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014-2017 Jason Fleetwood-Boldt
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,166 @@
1
+
2
+
3
+
4
+
5
+ _Please use the version number of this gem in lockstep with your Rails version._
6
+
7
+ | Rails Version | | Use Version of This Gem | |
8
+ |--------------|------------------|---------------------------------------------|-----|
9
+ | Rails 4.x, 4.1.x, 4.2 | | v1.0.1 (Released Jun 1, 2019) | |
10
+ | Rails 5.0 | | v2.0.1 (Released Jun 1, 2019) | |
11
+ | Rails 5.1 | | v3.0.1 (Released Jun 1, 2019) | |
12
+ | Rails 5.2 | | v4.0.2 (Released Jun 2, 2019) | |
13
+ | Rails 6.0 | | v5.1.2.1 (Released Nov 17, 2021) | |
14
+ | Rails 7.0.0.alpha2 | | v6.0.alpha2 (Released Nov 17, 2021) | |
15
+ | Rails 7 | | v6.5 (Released Jan 11, 2022) | |
16
+
17
+
18
+ ## Introduction
19
+
20
+ Nonschema migrations, also known as data migrations, are a alternative kind of Rails migration. The data migrations operate exactly like schema migrations, except instead of running migrations to make changes to your schema (adding fields, dropping fields, adding tables, etc), you run data migrations to manipulate data in your app, enqueue or execute Resque jobs that require long-running processes. This happens in a Rails app for different reasons, usually to clean up or supplement data or architectural changes.
21
+
22
+ Splitting your data migrations from your schema migrations has a particular benefit of achieving the most consistent zero-downtime deploys you can. I recommend you switch your deployment script to allow you to do two
23
+ types of deploys: a Zero-downtime deploy (no schema migrations) and Schema Migration deploy.
24
+
25
+ You can think of data migrations like seed data for production, staging, and dev environments. It is for people who don't like using seed data in dev, and want to have 'seed-parity' between dev + prod. (For example, for a basic set of setup records.)
26
+
27
+ This way, you can deploy any non-destructive (data-only) migration with a Zero-downtime strategy, and opt to make destructive (schema) migrations in a normal deployment (maintenance on, run schema changes, boot up new app, maintenance off). Data-only migrations can be run while the app is actually running, augmenting what you can achieve with the migration-style shortcuts provided by Rails.
28
+
29
+ A word of caution: If you find yourself making a lot of data migrations, you might consider if your product/development/business process is too reliant on one-off data importing. It may be that data management tools will help you in the long run. Nonetheless, separating your schema migrations from your data migrations can be a great strategy for modern Rails development.
30
+
31
+ Data migrations functional EXACTLY like schema migrations except:
32
+
33
+ 1) They live in db/data_migrate instead of db/migrate
34
+
35
+ 2) The timestamps used to record which ones have been run are in a table called data_migrations instead of the normal schema_migrations table
36
+
37
+ 3) You run them using `rails data:migrate` instead of `rails db:migrate`
38
+
39
+ ## Installation
40
+ To add to your Rails project, follow these steps.
41
+
42
+ 1) Add this to your gemfile.
43
+ ```ruby
44
+ gem 'nonschema_migrations'
45
+ ```
46
+
47
+ 2) Run `bundle install`
48
+
49
+ 3) Run the setup script:
50
+ ```
51
+ rails generate data_migrations:install
52
+ ```
53
+ This will create a *schema* migration that will create the data_migrations table itself. (There will be a table in your database called data_migrations which will have two columns: id, version. It works exactly like the schema_migrations table.) Now execute that schema migration (and, in turn, be sure to run this on Production):
54
+
55
+ ```
56
+ rails db:migrate
57
+ ```
58
+
59
+ You are now set up and ready to start making data migrations. To create your first migration, create it with a generating using a camel-case description of what your data migration does.
60
+
61
+ ```
62
+ rails generate data_migration UpdatePhoneNumbers
63
+ ```
64
+
65
+ Look for a file called (something like) `db/data_migrate/20140831020834_update_phone_numbers.rb`. It will have been automatically written with an empty up and down method. Add whatever operations you want to do in your **up** method, like large data manipulation jobs, running rake tasks, or enqueuing batch process jobs.
66
+
67
+ You probably want to put `ActiveRecord::IrreversibleMigration` into the **down** method your data migration:
68
+
69
+ ```ruby
70
+ class UpdatePhoneNumbers < ActiveRecord::Migration
71
+ def up
72
+ # do stuff here
73
+ end
74
+
75
+ def down
76
+ raise ActiveRecord::IrreversibleMigration
77
+ end
78
+ end
79
+ ```
80
+
81
+ To actually tell your app to run the data migration, use:
82
+
83
+ ```
84
+ rails data:migrate
85
+ ```
86
+
87
+
88
+ You get three additional rake tasks that operate and have the same syntax as the schema migrations, but operate only on the data migrations.
89
+
90
+ ## rails data:migrate
91
+ Migrate all data migrations that haven't been migrated.
92
+
93
+ ## rails data:migrate:down VERSION=xxxxxxxxxxx
94
+ Migrate down the specified version
95
+
96
+ ## rails data:migrate:up VERSION=xxxxxxxxxxx
97
+ Migrate up the specified versions.
98
+
99
+ ## rails data:rollback
100
+ Rollback the last version. Generally data migrations don't have any "down" associated with them so use this only under extreme circumstances.
101
+
102
+
103
+ #
104
+
105
+ By default your data migration will run in a single transaction (just like a schema migration).
106
+
107
+ To turn this off, add `disable_ddl_transaction!` to the top of your migration, like so:
108
+
109
+ ```ruby
110
+ class UpdatePhoneNumbers < ActiveRecord::Migration
111
+ disable_ddl_transaction!
112
+ def up
113
+ # do stuff here
114
+ end
115
+
116
+ def down
117
+ raise ActiveRecord::IrreversibleMigration
118
+ end
119
+ end
120
+ ```
121
+
122
+ ## Schema-Change Deploys with Heroku
123
+
124
+ 1. Switch OFF preboot feature
125
+ 2. Deploy to Heroku
126
+ 3. Enable maintenance-mode
127
+ 4. Run schema migrations (app reboots)
128
+ 5. Disable maintenance mode
129
+ 6. Run the data migrations
130
+ 7. Switch preboot feature back ON
131
+
132
+ advantage: your app is down only for schema migrations and you can let the data migrations take more time while your app is back online.
133
+
134
+
135
+ ## Zero-Downtime deploys with Heroku (no schema migrations)
136
+
137
+ (assuming preboot is already on)
138
+ 1. Deploy to heroku with preboot on
139
+ 2. Heroku switches the incoming requests to use the new app
140
+ 3. Run data migrations (while new app is up & running)
141
+
142
+ advantage: your app is never down and you can run data migrations in the background
143
+
144
+
145
+
146
+ ## Heroku Pipeline
147
+
148
+
149
+ Release tasks should dbe **db:migrate**
150
+ in `release-tasks.sh`
151
+ ```
152
+ bundle exec rails db:migrate
153
+ ```
154
+
155
+
156
+ The postdeply task shoul dbe **data:migrate**
157
+ in `app.json`
158
+ ```
159
+ "scripts": {
160
+ "postdeploy": "bundle exec rails data:migrate"
161
+ }
162
+ ```
163
+ Using data migration is like seed data.
164
+
165
+ However, the above setup will run only for REVIEW APPS. You will still need to manually run the data migration for staging + production.
166
+
data/Rakefile ADDED
@@ -0,0 +1,31 @@
1
+
2
+ require "rubygems"
3
+ require "bundler/setup"
4
+
5
+ require 'rake/testtask'
6
+
7
+ # require "minitest"
8
+ # require 'minist/autorun'
9
+
10
+
11
+ Rake::TestTask.new do |t|
12
+ t.libs << 'test'
13
+ t.libs << 'lib'
14
+ t.libs << 'lib/generators'
15
+ t.libs << 'lib/tasks'
16
+ t.libs << 'lib/nonschema_migrations'
17
+ t.pattern = 'test/**/*_test.rb'
18
+ end
19
+
20
+ desc "Run tests"
21
+ task :default => :test
22
+
23
+ task :console do
24
+ require 'irb'
25
+ require 'irb/completion'
26
+ require 'nonschema_migrations'
27
+ ARGV.clear
28
+ IRB.start
29
+ end
30
+
31
+
@@ -0,0 +1,2 @@
1
+ ---
2
+ BUNDLE_RETRY: "1"
@@ -0,0 +1,22 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "appraisal"
6
+ gem "guard"
7
+ gem "guard-rspec"
8
+ gem "rake"
9
+ gem "byebug", platform: :mri_21
10
+ gem "sqlite3"
11
+ gem "mysql2"
12
+ gem "mocha"
13
+ gem "rails", "4.0.10"
14
+ gem "minitest-rg"
15
+ gem "minitest-rails", "~> 1.0"
16
+ gem "nondestructive_migrations", "1.1"
17
+
18
+ group :test do
19
+ gem "simplecov", require: false
20
+ end
21
+
22
+ gemspec path: "../"
File without changes
@@ -0,0 +1,21 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "appraisal"
6
+ gem "guard"
7
+ gem "guard-rspec"
8
+ gem "rake"
9
+ gem "byebug", platform: :mri_21
10
+ gem "sqlite3"
11
+ gem "mysql2"
12
+ gem "mocha"
13
+ gem "rails", "4.1.6"
14
+ gem "minitest-rg"
15
+ gem "minitest"
16
+
17
+ group :test do
18
+ gem "simplecov", require: false
19
+ end
20
+
21
+ gemspec path: "../"
@@ -0,0 +1,164 @@
1
+ PATH
2
+ remote: ../
3
+ specs:
4
+ nondestructive_migrations (1.1)
5
+ activerecord (>= 4.0)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ actionmailer (4.1.6)
11
+ actionpack (= 4.1.6)
12
+ actionview (= 4.1.6)
13
+ mail (~> 2.5, >= 2.5.4)
14
+ actionpack (4.1.6)
15
+ actionview (= 4.1.6)
16
+ activesupport (= 4.1.6)
17
+ rack (~> 1.5.2)
18
+ rack-test (~> 0.6.2)
19
+ actionview (4.1.6)
20
+ activesupport (= 4.1.6)
21
+ builder (~> 3.1)
22
+ erubis (~> 2.7.0)
23
+ activemodel (4.1.6)
24
+ activesupport (= 4.1.6)
25
+ builder (~> 3.1)
26
+ activerecord (4.1.6)
27
+ activemodel (= 4.1.6)
28
+ activesupport (= 4.1.6)
29
+ arel (~> 5.0.0)
30
+ activesupport (4.1.6)
31
+ i18n (~> 0.6, >= 0.6.9)
32
+ json (~> 1.7, >= 1.7.7)
33
+ minitest (~> 5.1)
34
+ thread_safe (~> 0.1)
35
+ tzinfo (~> 1.1)
36
+ appraisal (1.0.2)
37
+ bundler
38
+ rake
39
+ thor (>= 0.14.0)
40
+ arel (5.0.1.20140414130214)
41
+ builder (3.2.2)
42
+ byebug (3.5.1)
43
+ columnize (~> 0.8)
44
+ debugger-linecache (~> 1.2)
45
+ slop (~> 3.6)
46
+ celluloid (0.16.0)
47
+ timers (~> 4.0.0)
48
+ coderay (1.1.0)
49
+ columnize (0.8.9)
50
+ debugger-linecache (1.2.0)
51
+ diff-lcs (1.2.5)
52
+ docile (1.1.5)
53
+ erubis (2.7.0)
54
+ ffi (1.9.5)
55
+ formatador (0.2.5)
56
+ guard (2.6.1)
57
+ formatador (>= 0.2.4)
58
+ listen (~> 2.7)
59
+ lumberjack (~> 1.0)
60
+ pry (>= 0.9.12)
61
+ thor (>= 0.18.1)
62
+ guard-rspec (4.3.1)
63
+ guard (~> 2.1)
64
+ rspec (>= 2.14, < 4.0)
65
+ hike (1.2.3)
66
+ hitimes (1.2.2)
67
+ i18n (0.6.11)
68
+ json (1.8.1)
69
+ listen (2.7.11)
70
+ celluloid (>= 0.15.2)
71
+ rb-fsevent (>= 0.9.3)
72
+ rb-inotify (>= 0.9)
73
+ lumberjack (1.0.9)
74
+ mail (2.6.1)
75
+ mime-types (>= 1.16, < 3)
76
+ metaclass (0.0.4)
77
+ method_source (0.8.2)
78
+ mime-types (2.4.1)
79
+ minitest (5.4.2)
80
+ minitest-rg (5.1.0)
81
+ minitest (~> 5.0)
82
+ mocha (1.1.0)
83
+ metaclass (~> 0.0.1)
84
+ multi_json (1.10.1)
85
+ mysql2 (0.3.16)
86
+ pry (0.10.1)
87
+ coderay (~> 1.1.0)
88
+ method_source (~> 0.8.1)
89
+ slop (~> 3.4)
90
+ rack (1.5.2)
91
+ rack-test (0.6.2)
92
+ rack (>= 1.0)
93
+ rails (4.1.6)
94
+ actionmailer (= 4.1.6)
95
+ actionpack (= 4.1.6)
96
+ actionview (= 4.1.6)
97
+ activemodel (= 4.1.6)
98
+ activerecord (= 4.1.6)
99
+ activesupport (= 4.1.6)
100
+ bundler (>= 1.3.0, < 2.0)
101
+ railties (= 4.1.6)
102
+ sprockets-rails (~> 2.0)
103
+ railties (4.1.6)
104
+ actionpack (= 4.1.6)
105
+ activesupport (= 4.1.6)
106
+ rake (>= 0.8.7)
107
+ thor (>= 0.18.1, < 2.0)
108
+ rake (10.3.2)
109
+ rb-fsevent (0.9.4)
110
+ rb-inotify (0.9.5)
111
+ ffi (>= 0.5.0)
112
+ rspec (3.1.0)
113
+ rspec-core (~> 3.1.0)
114
+ rspec-expectations (~> 3.1.0)
115
+ rspec-mocks (~> 3.1.0)
116
+ rspec-core (3.1.5)
117
+ rspec-support (~> 3.1.0)
118
+ rspec-expectations (3.1.2)
119
+ diff-lcs (>= 1.2.0, < 2.0)
120
+ rspec-support (~> 3.1.0)
121
+ rspec-mocks (3.1.2)
122
+ rspec-support (~> 3.1.0)
123
+ rspec-support (3.1.1)
124
+ simplecov (0.9.1)
125
+ docile (~> 1.1.0)
126
+ multi_json (~> 1.0)
127
+ simplecov-html (~> 0.8.0)
128
+ simplecov-html (0.8.0)
129
+ slop (3.6.0)
130
+ sprockets (2.12.2)
131
+ hike (~> 1.2)
132
+ multi_json (~> 1.0)
133
+ rack (~> 1.0)
134
+ tilt (~> 1.1, != 1.3.0)
135
+ sprockets-rails (2.2.0)
136
+ actionpack (>= 3.0)
137
+ activesupport (>= 3.0)
138
+ sprockets (>= 2.8, < 4.0)
139
+ sqlite3 (1.3.9)
140
+ thor (0.19.1)
141
+ thread_safe (0.3.4)
142
+ tilt (1.4.1)
143
+ timers (4.0.1)
144
+ hitimes
145
+ tzinfo (1.2.2)
146
+ thread_safe (~> 0.1)
147
+
148
+ PLATFORMS
149
+ ruby
150
+
151
+ DEPENDENCIES
152
+ appraisal
153
+ byebug
154
+ guard
155
+ guard-rspec
156
+ minitest
157
+ minitest-rg
158
+ mocha
159
+ mysql2
160
+ nondestructive_migrations!
161
+ rails (= 4.1.6)
162
+ rake
163
+ simplecov
164
+ sqlite3
@@ -0,0 +1,21 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "appraisal"
6
+ gem "guard"
7
+ gem "guard-rspec"
8
+ gem "rake"
9
+ gem "byebug", platform: :mri_21
10
+ gem "sqlite3"
11
+ gem "mysql2"
12
+ gem "mocha"
13
+ gem "rails", "4.2.0"
14
+ gem "minitest-rg"
15
+ gem "minitest"
16
+
17
+ group :test do
18
+ gem "simplecov", require: false
19
+ end
20
+
21
+ gemspec path: "../"