wagons 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.rdoc +4 -3
- data/Rakefile +20 -17
- data/lib/tasks/wagons.rake +11 -3
- data/lib/wagons/extensions/migration.rb +20 -7
- data/lib/wagons/installer.rb +1 -1
- data/lib/wagons/version.rb +1 -1
- data/test/ci/rails52.gemfile.lock +77 -81
- data/test/ci/rails60.gemfile +11 -0
- data/test/ci/rails60.gemfile.lock +164 -0
- data/test/ci/rails61.gemfile +11 -0
- data/test/ci/rails61.gemfile.lock +167 -0
- data/test/dummy/Gemfile +1 -0
- data/test/dummy/Gemfile.lock +116 -108
- data/test/dummy/config/application.rb +0 -13
- data/test/dummy/config/environments/development.rb +0 -5
- data/test/dummy/config/environments/production.rb +0 -9
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/schema.rb +2 -2
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +391 -0
- data/test/dummy/log/test.log +22339 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/-H/-HtXnef0HYbCf4IQCm3aqe59wL4bpgzS_yqaHC7iD7I.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/0w/0w13MOsljskmRGYd7h_dmRxupsbtm1UGG8UKWdpgqxE.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/1I/1IDB5qr1TR6_Ex6y1wfpAnPPcuGNbDqKAFp-bicMdJw.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/1Q/1Q--32pSu0X8tgKnQKviniT1f9fr270Siz7MLazfjY0.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/1q/1qLm_ssdtiWjLGDfOyEXLBpOpSFyDftrTe-J5A-x0fM.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/22/22jeSha1gQut3uUfoP44m3l99L_7N8usml4LS737Q9w.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/24/24_tNLrmt-so6UcYfOScWzfJ9eMRN-Vr2TlQdp4rMwc.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/2r/2rLBgIivfRbzIntqLcL4qIWdGUayQDXzPX4Zs7z5nyw.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/3H/3HRYOSvPLUiLY8pL0DrEsH7doLosVFAhNEPYzRJvBJ4.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/3c/3cK6cxzebN6u3koHiOwekBT0V7sOWJ1fSJi7NNdNm6c.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/3c/3cq6SBzo29D833trP4SsvTdbQFZVgHc4l1F0H3zSXv4.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/4H/4HmxH_jTqYtN8qzSD6B1E5zoly7Us6enPW634qmOqhw.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/5p/5pIt6wS1BhH8MCXj73QMvG-ydW4NYZGwK0LtqRWWijk.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/6P/6P5A7JnNeGH2r_6lUbaJbwJjgp52R5WYy9FXdMzAP5M.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/6u/6uAmv-3XxnNSicBxCQxV6qa6uf-paBhbcGlMQKVgLfc.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/7E/7EF_s-ENUfH9-gY_3l3BqtEvz1eR5lA1RIIXtQrPTfA.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/8E/8ER8figK9NszHC0GERob9QKvw4FqifCDmXMRFBU8lBY.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/8a/8aRdJtxvRmSy8nbyfzd_38EOvQDCI6lNv31LaqtpGuQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/9S/9SKoByIXxOhEZpdYEljQDxQO3klZtZo_q0da5mM7AMs.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/9j/9jqgHrQ7pZsKefNZU7qkNWAuu9doJE34xxfgRxrPZHQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/A1/A14vrX1A6sY4tVU9_XTnHHdXE2T4tf3L_04zgz5G8p0.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/AU/AUcrNcDCsowVJZSQHQcQw0Vd2y-bl_JwYlxVV_Fm5u0.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/CQ/CQ-eB4eoQoV4KyNA1L69J-e1PJUhh-1afQdrey7YjWo.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Db/DbmLC3wtG7ztEvkzmVAubW8vf37XdD0bT3Kh73oed1A.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/E_/E_9AuEMLlN8ewb_6kPjLBen7_maGlmUctv0og1oBLHA.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Ej/EjlPEjuWuoa8ddDFxYmNJcDBJciSdyi7top8aI8Qhi0.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Em/Emyq6KCg079U1cAHGJ8ldkvAH0_vjape2X0DuypLkHA.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Fk/FkfYCBdaahKiox0qtLhN8JdG8c8kKscddoj1hZFyKss.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/GL/GLfgFsH7gYztSz8KqppT6RAF-xlterP4wlPr49DaqY0.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Gy/GyTCMaAMO27KKJo55uo1NKEIQbl18x_BnBvE_f81Ijc.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Hv/Hv2IxpRjvLKwwO-zzNWLMJSyL2xRH9QRNFGUP-r_PMg.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/JC/JCL1JaTAfMuWVygoApJocm0bfiJVcGMUpTlyCbWRcTE.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/KP/KPJNuemJ1B12G0mReBIjGdZUxB68PrazDnnODfJTcIs.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Le/LeOYyHw6_6iqgwHaFPvLzenLIVAxNVuMb__GI1TA7fs.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/NO/NOvhBx5Ck6mzR9lbTh4oYkFyZuBhW8kL0xq2fXYNZvc.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Nx/Nx6PN_fylzZexApM9JmmnNNw-uLk71OfIgJ9zdGNLu4.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/ON/ON_GcwnxQvE4aNFPqXu-8Vok_Y1bMpGHX-LGKstBD4g.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/OR/ORoJxKNF59Ei4Yg_hIlxcVpLhFmKUXQWKpedcRPHqnw.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/PH/PHWXANBrMyYy54Iv8E_E-1rVQTumNJ3u7NUIB5BRApA.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Pc/PcK1T7ShesfXYFQ5W0iDvn5_NCn9mdRY-iKLYmErizs.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Q7/Q7XEjIX6hH0eYgyYXzK_eRM0b3cYXuvkR48xX2IbTe4.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/QM/QMwgAVHjwvL_AddHLU5X3p9JND42X7g7zuNQh4FStEU.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/QW/QWYLzm_V5roD5W780sxbErySkEfXH9TP6U5wp1kTAsQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/RY/RYblxQYTWrFsoTHUoRPMM5nsWzp7OdBla5t3WxqCJk4.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Rk/RkNi1mU3vLaSmMYTSCSnlwE-9oKy_W3zbtGnebp8giM.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Sh/ShZe4Yd3d4ey6lkV51RLsCo0xviOwe17edjrzNs6xKw.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Tg/TgTcVvqf5KTGti25aDSVdPzdEFSzFCA7TIgv36nVcSw.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Tt/TtCo1neXEwVGrBDA9g7KFKfHfrw24_xMjrxpTWj6hqU.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/V0/V0xH9hW5hqbm6BDG8n6Ax2lqGsz0MfR1iXOxPDDU9J0.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/VT/VTgKokthn3TyXvfLFANvY-SfFSVKn1YVjpHy3ub9RPY.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/WR/WR6tsay9cs1pVib3TaKDHXbSLwDXgEFi7yI6zAsdIos.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/XA/XAHwGWu2FidHKKPWHkXTeqsL616yZD-bj78n2tifQiw.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/Z1/Z1xiE6AeOFjmwb1QypT0chrrYtEfojQh9xF6dvo15Oc.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/_Z/_ZGxbIs0pIikJpeITx66Vj5HZlTlwPjBtTIxZY4Llhw.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/_c/_cATGhGdtRwYqswf2eDhF248i27ZoWhL6JUOJztaDRs.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/_d/_dvYOtAy6TuO1KXF4Zi61tbCcZzivZH_S06uWYg9ges.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/_f/_fALMSlqEIAoEcArNZCH9a0pmK-9extGEC3rN19EE0Q.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/_m/_mEPYNj4UPh88JyBBGxj9LlOgG2hUfzgmdLqzqBQQBE.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/aF/aFYi0QN0ocrEJd5NcK0n5oruPgfi0bbV_yoiKJQIRcc.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/aU/aUji3Ouh9B82G7bYfgs1QcgsrCBmS4-f4ILsN_C_zFw.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/aY/aYZRIcKNgaTkEdL-ujKXKwqxK2cVyZole5qthnSYTz8.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/b7/b7lBpkBxQaCxHBBRf-QF0CiQKnRE8kYGLUzgAPTjf_k.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/bA/bAB8ZAEw1UME7mY5mE61ci3KC5dW4nmto8ondLl5ZyA.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/bP/bPNHnuI52miVtJqlBT_g5qG18I0oAHSYE9bI7Ptrofg.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/bU/bUpMjwfdKLlejY8OWALhTYtESG4S5xUg9LOEryfqsh8.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/bd/bdrnMYD4qOAIIdZCbT39Wkn2wzabKadpCmgWLT56Lq8.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/dg/dgjHA3yS-cfHM6U2pIHqfOZ9E-ooNW7JbqArpn5_DSI.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/eu/euosPQOlq1xNPPLzxhZKDyWfm75qDMlfXRK5pzbPDk0.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/gQ/gQkB0063rnOe6eXpeHQ770TpwTiT94R_dg8qVmxbZfg.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/h4/h41FBu5275MRJYh-QtgDJZpvJQ4TD6nnvTv93-yfw8s.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/ig/ig0NZPffrlU5nyvxScGhp9RbX-ztkRcop-W3z_0GOxg.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/ix/ixZDJv3nUs5OyxiRdK1zZ7AnmYUHoPTk0uF-f1CZ-IQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/js/js51lapGNMBgBNsMbSxyFO0Sq_mo7ex1_oqZTLG0COI.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/jv/jvhMb4IFtynnfkP-m13mfrg9gYy4iDEjYnZiK2YBuWg.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/l_/l_tJ9WwBL9Q8XjxQN56nGuGtCrP7kGBvE8e76g8tRC0.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/m5/m5Zzglx0goFadTvj77IDwqNQpO6-UAKhPq6cpeKq-ks.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/mH/mHAhTi2hfFhPk9Q0Q_fl1eh_7Za4SNRUevCoJRLcZb0.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/oi/oifW-FoUUBJZovp7spCmtZ2nV0p36Sm-3pdjeOd_MBI.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/pg/pg4_Xb9Jpu2-lF5UTFVEdSygm2el9xcJ_PTt5bSXGos.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/qP/qP3gEansoZiP9AhSv2BIJUz5hq2qwkMBjj-NJ3Ibdt0.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/qY/qYvyX-tPRbBGYCkP1_8f6fthjekc2G7Eq6V_afdgbrY.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/rG/rGDKy38JC9huYGZLtA-wiM_C5tv0OChr97sVU-HUesQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/s9/s9hTotMjw4ddx-wmP0kGle-EXqVg-CaCo1LMpDTZeKQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/ts/tsfA-AJCtZ71GrOSoWMmLxlAIHVQvVqXJlsBeg1K7tU.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/u3/u3Z5UF_wm7sa1ePYXuFNpv9pU-9u6lBvgvcR8u0DmfI.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/w3/w38rfd6qdVo1aV28n_6tWWrNnwrxR55-kEZc6pyA5zk.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/wx/wxwvso5wh0QLD0Vwu4VJimRWxLDGYfCaGMOsrLYrLg8.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/xG/xGMnO4s6f7EDeEia5H8zPU1p-Z-MmsO0Val4gsFgpYk.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/xR/xRih9fv1y9PmtOktqzUIrowdEqL2bBp6EAxyNIdZ9yw.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v4.0.0/xT/xTjKotv2c8rw6rRSG5MFPKuThESil_pEyLnT0NMaQ0c.cache +0 -0
- data/test/dummy/vendor/wagons/superliner/Gemfile.lock +116 -108
- data/test/test_helper.rb +1 -1
- metadata +305 -130
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d06295f19bd1963830bd47006676c4b25eb2b1e7b30af0f8c2302996b129493
|
4
|
+
data.tar.gz: d3c66601cc2869001432ae9877cbd03dfd6a68f9685aa47ab929a3b36023dcef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb293faaa5f7639c22dea5b78a98b202936ad6dd5fe6016c7215b81866861c9eb23a81a733e2dffc27ce09d1ebd7459f000a33dd73913e94633a4d0b96ad245a
|
7
|
+
data.tar.gz: ac080f11d0a70f91755e510f365a9c36bfec28e2918fd167edf58524f40834c52b0fae01bcb8dd44b1e1bce8ca7abc50bd96e877220ffbd454b80a9e4aaac076
|
data/README.rdoc
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
= Here Be Wagons
|
2
2
|
|
3
|
-
{<img src="https://
|
3
|
+
{<img src="https://github.com/codez/wagons/actions/workflows/build.yml/badge.svg" />}[https://github.com/codez/wagons/actions/workflows/build.yml]
|
4
|
+
{<img src="https://api.codeclimate.com/v1/badges/32a0d860544681cf718c/maintainability" />}[https://codeclimate.com/github/codez/wagons/maintainability]
|
4
5
|
|
5
6
|
Wagons are extensions to your application train running on Rails. You can see them as plugins that
|
6
7
|
extend the behavior of your specific Rails application. This framework makes it easy to create and
|
@@ -80,7 +81,7 @@ so wagons can define a requirement. The application version can be set in an ini
|
|
80
81
|
rake wagon:app_version
|
81
82
|
|
82
83
|
Besides setting the version, this initializer will check all loaded wagons for their application requirement
|
83
|
-
and raise
|
84
|
+
and raise errors if one is not met. In <tt>lib/[wagon_name]/wagon.rb</tt> the requirement may be defined, e.g.:
|
84
85
|
|
85
86
|
app_requirement '>= 1.0'
|
86
87
|
|
@@ -132,7 +133,7 @@ RSpec works fine with wagons as well. Simply put the heading lines found in <tt>
|
|
132
133
|
|
133
134
|
Bundler manages application dependencies, with a stress on application. Because wagons live
|
134
135
|
inside your application during development, the app's +Gemfile+ is included in each wagon's +Gemfile+.
|
135
|
-
However, Bundler still keeps
|
136
|
+
However, Bundler still keeps a separate <tt>Gemfile.lock</tt> for each wagon, so you have to make sure to keep
|
136
137
|
these up to date when you change your main application gems. The gem versions for the wagons should be
|
137
138
|
the same as for the application. <tt>rake wagon:bundle:update</tt> is here to help you exactly with that.
|
138
139
|
We recommend to NOT check in the Wagon's <tt>Gemfile.lock</tt> file into source control.
|
data/Rakefile
CHANGED
@@ -30,24 +30,8 @@ Rake::TestTask.new(:test) do |test|
|
|
30
30
|
test.verbose = true
|
31
31
|
end
|
32
32
|
|
33
|
-
task :test => :
|
34
|
-
def in_dummy(command)
|
35
|
-
version = "RAILS_VERSION=\"#{ENV['RAILS_VERSION']}\" " if ENV['RAILS_VERSION']
|
36
|
-
Bundler.with_clean_env { sh "cd test/dummy && #{version}#{command}" }
|
37
|
-
end
|
38
|
-
|
33
|
+
task :test => :bundle do
|
39
34
|
begin
|
40
|
-
in_dummy 'rm -rf Gemfile.lock'
|
41
|
-
if ENV['ROOT_BUNDLE_PATH'] # used by travis-ci
|
42
|
-
in_dummy 'mkdir -p .bundle'
|
43
|
-
in_dummy 'echo "---\nBUNDLE_PATH: \"$ROOT_BUNDLE_PATH\"\n" > .bundle/config'
|
44
|
-
in_dummy 'cat .bundle/config'
|
45
|
-
in_dummy 'mkdir -p vendor/wagons/test_wagon/.bundle'
|
46
|
-
in_dummy 'echo -e "---\nBUNDLE_PATH: \"$ROOT_BUNDLE_PATH\"\n" > vendor/wagons/test_wagon/.bundle/config'
|
47
|
-
in_dummy 'mkdir -p vendor/wagons/superliner/.bundle'
|
48
|
-
in_dummy 'echo -e "---\nBUNDLE_PATH: \"$ROOT_BUNDLE_PATH\"\n" > vendor/wagons/superliner/.bundle/config'
|
49
|
-
end
|
50
|
-
in_dummy 'bundle'
|
51
35
|
in_dummy 'bundle exec rails g wagon test_wagon'
|
52
36
|
in_dummy 'bundle exec rake wagon:bundle:update'
|
53
37
|
in_dummy "bundle exec rake db:migrate test #{'-t' if Rake.application.options.trace}"
|
@@ -57,6 +41,20 @@ task :test => :set_rails_version do
|
|
57
41
|
end
|
58
42
|
end
|
59
43
|
|
44
|
+
task :bundle => :set_rails_version do
|
45
|
+
in_dummy 'rm -rf Gemfile.lock'
|
46
|
+
if ENV['ROOT_BUNDLE_PATH'] # used by ci
|
47
|
+
in_dummy 'mkdir -p .bundle'
|
48
|
+
in_dummy 'echo "---\nBUNDLE_PATH: \"$ROOT_BUNDLE_PATH\"\n" > .bundle/config'
|
49
|
+
in_dummy 'cat .bundle/config'
|
50
|
+
in_dummy 'mkdir -p vendor/wagons/test_wagon/.bundle'
|
51
|
+
in_dummy 'echo -e "---\nBUNDLE_PATH: \"$ROOT_BUNDLE_PATH\"\n" > vendor/wagons/test_wagon/.bundle/config'
|
52
|
+
in_dummy 'mkdir -p vendor/wagons/superliner/.bundle'
|
53
|
+
in_dummy 'echo -e "---\nBUNDLE_PATH: \"$ROOT_BUNDLE_PATH\"\n" > vendor/wagons/superliner/.bundle/config'
|
54
|
+
end
|
55
|
+
in_dummy 'bundle'
|
56
|
+
end
|
57
|
+
|
60
58
|
task :set_rails_version do
|
61
59
|
if ENV['BUNDLE_GEMFILE']
|
62
60
|
version = File.read(ENV['BUNDLE_GEMFILE'])[/gem\s*'rails',\s*'(.*)'/, 1]
|
@@ -65,3 +63,8 @@ task :set_rails_version do
|
|
65
63
|
end
|
66
64
|
|
67
65
|
task :default => :test
|
66
|
+
|
67
|
+
def in_dummy(command)
|
68
|
+
version = "RAILS_VERSION=\"#{ENV['RAILS_VERSION']}\" " if ENV['RAILS_VERSION']
|
69
|
+
Bundler.with_unbundled_env { sh "cd test/dummy && #{version}#{command}" }
|
70
|
+
end
|
data/lib/tasks/wagons.rake
CHANGED
@@ -123,7 +123,7 @@ eval(File.read(wagonfile)) if File.exist?(wagonfile)"
|
|
123
123
|
puts "\n*** #{w.wagon_name.upcase} ***" if wagons.size > 1
|
124
124
|
rel_dir = w.root.to_s.sub(Rails.root.to_s + File::SEPARATOR, '')
|
125
125
|
cmd = "cd #{rel_dir} && #{ENV['CMD']}"
|
126
|
-
Bundler.
|
126
|
+
Bundler.with_unbundled_env do
|
127
127
|
verbose(Rake.application.options.trace) { sh cmd }
|
128
128
|
end
|
129
129
|
end
|
@@ -141,8 +141,16 @@ eval(File.read(wagonfile)) if File.exist?(wagonfile)"
|
|
141
141
|
|
142
142
|
# desc "Raises an error if there are pending wagon migrations"
|
143
143
|
task :abort_if_pending_migrations => :environment do
|
144
|
-
|
145
|
-
|
144
|
+
paths = wagons.collect(&:migrations_paths).flatten
|
145
|
+
|
146
|
+
pending_migrations =
|
147
|
+
if Gem::Version.new(Rails::VERSION::STRING) < Gem::Version.new('6.0.0')
|
148
|
+
context = ActiveRecord::MigrationContext.new(paths)
|
149
|
+
ActiveRecord::Migrator.new(:up, context.migrations).pending_migrations
|
150
|
+
else
|
151
|
+
context = ActiveRecord::MigrationContext.new(paths, ActiveRecord::SchemaMigration)
|
152
|
+
ActiveRecord::Migrator.new(:up, context.migrations, ActiveRecord::SchemaMigration).pending_migrations
|
153
|
+
end
|
146
154
|
|
147
155
|
if pending_migrations.any?
|
148
156
|
puts "You have #{pending_migrations.size} pending migrations:"
|
@@ -5,12 +5,12 @@ module ActiveRecord
|
|
5
5
|
# Extend maintain_test_schema! to include migrations of the current wagon to test
|
6
6
|
# or to make sure no wagon migrations are loaded when testing the main application.
|
7
7
|
def maintain_test_schema_with_wagons!
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
8
|
+
return unless maintain_test_schema?
|
9
|
+
|
10
|
+
# set migrations paths to core only, wagon migrations are loaded separately
|
11
|
+
Migrator.migrations_paths = Rails.application.paths['db/migrate'].to_a
|
12
|
+
if app_needs_migration?
|
13
|
+
suppress_messages { load_wagon_schema! }
|
14
14
|
end
|
15
15
|
end
|
16
16
|
alias maintain_test_schema_without_wagons! maintain_test_schema!
|
@@ -23,7 +23,12 @@ module ActiveRecord
|
|
23
23
|
|
24
24
|
# Contrary to the original rails approach (#load_schema_if_pending!),
|
25
25
|
# purge the database first to get rid of all wagon tables.
|
26
|
-
config =
|
26
|
+
config =
|
27
|
+
if Gem::Version.new(Rails::VERSION::STRING) < Gem::Version.new('6.1.0')
|
28
|
+
Base.configurations['test']
|
29
|
+
else
|
30
|
+
Base.configurations.configs_for(env_name: 'test').first
|
31
|
+
end
|
27
32
|
Tasks::DatabaseTasks.purge(config)
|
28
33
|
|
29
34
|
Base.establish_connection(config)
|
@@ -62,6 +67,14 @@ module ActiveRecord
|
|
62
67
|
end
|
63
68
|
end
|
64
69
|
|
70
|
+
def maintain_test_schema?
|
71
|
+
if Gem::Version.new(Rails::VERSION::STRING) < Gem::Version.new('7.0.0')
|
72
|
+
ActiveRecord::Base.maintain_test_schema
|
73
|
+
else
|
74
|
+
ActiveRecord.maintain_test_schema
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
65
78
|
end
|
66
79
|
end
|
67
80
|
end
|
data/lib/wagons/installer.rb
CHANGED
data/lib/wagons/version.rb
CHANGED
@@ -1,138 +1,134 @@
|
|
1
1
|
PATH
|
2
2
|
remote: ../..
|
3
3
|
specs:
|
4
|
-
wagons (0.
|
4
|
+
wagons (0.6.1)
|
5
5
|
bundler (>= 1.1)
|
6
|
-
rails (>=
|
6
|
+
rails (>= 5.2)
|
7
7
|
seed-fu-ndo (>= 0.0.3)
|
8
8
|
|
9
9
|
GEM
|
10
10
|
remote: https://rubygems.org/
|
11
11
|
specs:
|
12
|
-
actioncable (5.2.
|
13
|
-
actionpack (= 5.2.
|
12
|
+
actioncable (5.2.8.1)
|
13
|
+
actionpack (= 5.2.8.1)
|
14
14
|
nio4r (~> 2.0)
|
15
15
|
websocket-driver (>= 0.6.1)
|
16
|
-
actionmailer (5.2.
|
17
|
-
actionpack (= 5.2.
|
18
|
-
actionview (= 5.2.
|
19
|
-
activejob (= 5.2.
|
16
|
+
actionmailer (5.2.8.1)
|
17
|
+
actionpack (= 5.2.8.1)
|
18
|
+
actionview (= 5.2.8.1)
|
19
|
+
activejob (= 5.2.8.1)
|
20
20
|
mail (~> 2.5, >= 2.5.4)
|
21
21
|
rails-dom-testing (~> 2.0)
|
22
|
-
actionpack (5.2.
|
23
|
-
actionview (= 5.2.
|
24
|
-
activesupport (= 5.2.
|
25
|
-
rack (~> 2.0)
|
22
|
+
actionpack (5.2.8.1)
|
23
|
+
actionview (= 5.2.8.1)
|
24
|
+
activesupport (= 5.2.8.1)
|
25
|
+
rack (~> 2.0, >= 2.0.8)
|
26
26
|
rack-test (>= 0.6.3)
|
27
27
|
rails-dom-testing (~> 2.0)
|
28
28
|
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
29
|
-
actionview (5.2.
|
30
|
-
activesupport (= 5.2.
|
29
|
+
actionview (5.2.8.1)
|
30
|
+
activesupport (= 5.2.8.1)
|
31
31
|
builder (~> 3.1)
|
32
32
|
erubi (~> 1.4)
|
33
33
|
rails-dom-testing (~> 2.0)
|
34
34
|
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
35
|
-
activejob (5.2.
|
36
|
-
activesupport (= 5.2.
|
35
|
+
activejob (5.2.8.1)
|
36
|
+
activesupport (= 5.2.8.1)
|
37
37
|
globalid (>= 0.3.6)
|
38
|
-
activemodel (5.2.
|
39
|
-
activesupport (= 5.2.
|
40
|
-
activerecord (5.2.
|
41
|
-
activemodel (= 5.2.
|
42
|
-
activesupport (= 5.2.
|
38
|
+
activemodel (5.2.8.1)
|
39
|
+
activesupport (= 5.2.8.1)
|
40
|
+
activerecord (5.2.8.1)
|
41
|
+
activemodel (= 5.2.8.1)
|
42
|
+
activesupport (= 5.2.8.1)
|
43
43
|
arel (>= 9.0)
|
44
|
-
activestorage (5.2.
|
45
|
-
actionpack (= 5.2.
|
46
|
-
activerecord (= 5.2.
|
47
|
-
marcel (~> 0.
|
48
|
-
activesupport (5.2.
|
44
|
+
activestorage (5.2.8.1)
|
45
|
+
actionpack (= 5.2.8.1)
|
46
|
+
activerecord (= 5.2.8.1)
|
47
|
+
marcel (~> 1.0.0)
|
48
|
+
activesupport (5.2.8.1)
|
49
49
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
50
50
|
i18n (>= 0.7, < 2)
|
51
51
|
minitest (~> 5.1)
|
52
52
|
tzinfo (~> 1.1)
|
53
53
|
arel (9.0.0)
|
54
|
-
builder (3.2.
|
55
|
-
concurrent-ruby (1.1.
|
56
|
-
crass (1.0.
|
57
|
-
erubi (1.
|
58
|
-
globalid (0.
|
59
|
-
activesupport (>=
|
60
|
-
i18n (1.
|
54
|
+
builder (3.2.4)
|
55
|
+
concurrent-ruby (1.1.10)
|
56
|
+
crass (1.0.6)
|
57
|
+
erubi (1.11.0)
|
58
|
+
globalid (1.0.0)
|
59
|
+
activesupport (>= 5.0)
|
60
|
+
i18n (1.12.0)
|
61
61
|
concurrent-ruby (~> 1.0)
|
62
|
-
loofah (2.
|
62
|
+
loofah (2.19.0)
|
63
63
|
crass (~> 1.0.2)
|
64
64
|
nokogiri (>= 1.5.9)
|
65
65
|
mail (2.7.1)
|
66
66
|
mini_mime (>= 0.1.1)
|
67
|
-
marcel (0.
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
mocha (1.9.0)
|
76
|
-
metaclass (~> 0.0.1)
|
77
|
-
nio4r (2.5.2)
|
78
|
-
nokogiri (1.10.4)
|
79
|
-
mini_portile2 (~> 2.4.0)
|
67
|
+
marcel (1.0.2)
|
68
|
+
method_source (1.0.0)
|
69
|
+
mini_mime (1.1.2)
|
70
|
+
minitest (5.16.3)
|
71
|
+
mocha (1.15.0)
|
72
|
+
nio4r (2.5.8)
|
73
|
+
nokogiri (1.13.8-x86_64-linux)
|
74
|
+
racc (~> 1.4)
|
80
75
|
open4 (1.3.4)
|
81
|
-
|
82
|
-
rack
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
76
|
+
racc (1.6.0)
|
77
|
+
rack (2.2.4)
|
78
|
+
rack-test (2.0.2)
|
79
|
+
rack (>= 1.3)
|
80
|
+
rails (5.2.8.1)
|
81
|
+
actioncable (= 5.2.8.1)
|
82
|
+
actionmailer (= 5.2.8.1)
|
83
|
+
actionpack (= 5.2.8.1)
|
84
|
+
actionview (= 5.2.8.1)
|
85
|
+
activejob (= 5.2.8.1)
|
86
|
+
activemodel (= 5.2.8.1)
|
87
|
+
activerecord (= 5.2.8.1)
|
88
|
+
activestorage (= 5.2.8.1)
|
89
|
+
activesupport (= 5.2.8.1)
|
94
90
|
bundler (>= 1.3.0)
|
95
|
-
railties (= 5.2.
|
91
|
+
railties (= 5.2.8.1)
|
96
92
|
sprockets-rails (>= 2.0.0)
|
97
|
-
rails-controller-testing (1.0.
|
98
|
-
actionpack (>= 5.0.1.
|
99
|
-
actionview (>= 5.0.1.
|
100
|
-
activesupport (>= 5.0.1.
|
93
|
+
rails-controller-testing (1.0.5)
|
94
|
+
actionpack (>= 5.0.1.rc1)
|
95
|
+
actionview (>= 5.0.1.rc1)
|
96
|
+
activesupport (>= 5.0.1.rc1)
|
101
97
|
rails-dom-testing (2.0.3)
|
102
98
|
activesupport (>= 4.2.0)
|
103
99
|
nokogiri (>= 1.6)
|
104
|
-
rails-html-sanitizer (1.3
|
100
|
+
rails-html-sanitizer (1.4.3)
|
105
101
|
loofah (~> 2.3)
|
106
|
-
railties (5.2.
|
107
|
-
actionpack (= 5.2.
|
108
|
-
activesupport (= 5.2.
|
102
|
+
railties (5.2.8.1)
|
103
|
+
actionpack (= 5.2.8.1)
|
104
|
+
activesupport (= 5.2.8.1)
|
109
105
|
method_source
|
110
106
|
rake (>= 0.8.7)
|
111
107
|
thor (>= 0.19.0, < 2.0)
|
112
|
-
rake (13.0.
|
108
|
+
rake (13.0.6)
|
113
109
|
seed-fu (2.3.9)
|
114
110
|
activerecord (>= 3.1)
|
115
111
|
activesupport (>= 3.1)
|
116
112
|
seed-fu-ndo (0.0.3)
|
117
113
|
seed-fu (>= 2.2.0)
|
118
|
-
sprockets (4.
|
114
|
+
sprockets (4.1.1)
|
119
115
|
concurrent-ruby (~> 1.0)
|
120
116
|
rack (> 1, < 3)
|
121
|
-
sprockets-rails (3.2
|
122
|
-
actionpack (>=
|
123
|
-
activesupport (>=
|
117
|
+
sprockets-rails (3.4.2)
|
118
|
+
actionpack (>= 5.2)
|
119
|
+
activesupport (>= 5.2)
|
124
120
|
sprockets (>= 3.0.0)
|
125
|
-
sqlite3 (1.
|
126
|
-
thor (
|
121
|
+
sqlite3 (1.5.3-x86_64-linux)
|
122
|
+
thor (1.2.1)
|
127
123
|
thread_safe (0.3.6)
|
128
|
-
tzinfo (1.2.
|
124
|
+
tzinfo (1.2.10)
|
129
125
|
thread_safe (~> 0.1)
|
130
|
-
websocket-driver (0.7.
|
126
|
+
websocket-driver (0.7.5)
|
131
127
|
websocket-extensions (>= 0.1.0)
|
132
|
-
websocket-extensions (0.1.
|
128
|
+
websocket-extensions (0.1.5)
|
133
129
|
|
134
130
|
PLATFORMS
|
135
|
-
|
131
|
+
x86_64-linux
|
136
132
|
|
137
133
|
DEPENDENCIES
|
138
134
|
mocha
|
@@ -143,4 +139,4 @@ DEPENDENCIES
|
|
143
139
|
wagons!
|
144
140
|
|
145
141
|
BUNDLED WITH
|
146
|
-
2.
|
142
|
+
2.3.19
|
@@ -0,0 +1,164 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ../..
|
3
|
+
specs:
|
4
|
+
wagons (0.6.1)
|
5
|
+
bundler (>= 1.1)
|
6
|
+
rails (>= 5.2)
|
7
|
+
seed-fu-ndo (>= 0.0.3)
|
8
|
+
|
9
|
+
GEM
|
10
|
+
remote: https://rubygems.org/
|
11
|
+
specs:
|
12
|
+
actioncable (6.0.6)
|
13
|
+
actionpack (= 6.0.6)
|
14
|
+
nio4r (~> 2.0)
|
15
|
+
websocket-driver (>= 0.6.1)
|
16
|
+
actionmailbox (6.0.6)
|
17
|
+
actionpack (= 6.0.6)
|
18
|
+
activejob (= 6.0.6)
|
19
|
+
activerecord (= 6.0.6)
|
20
|
+
activestorage (= 6.0.6)
|
21
|
+
activesupport (= 6.0.6)
|
22
|
+
mail (>= 2.7.1)
|
23
|
+
actionmailer (6.0.6)
|
24
|
+
actionpack (= 6.0.6)
|
25
|
+
actionview (= 6.0.6)
|
26
|
+
activejob (= 6.0.6)
|
27
|
+
mail (~> 2.5, >= 2.5.4)
|
28
|
+
rails-dom-testing (~> 2.0)
|
29
|
+
actionpack (6.0.6)
|
30
|
+
actionview (= 6.0.6)
|
31
|
+
activesupport (= 6.0.6)
|
32
|
+
rack (~> 2.0, >= 2.0.8)
|
33
|
+
rack-test (>= 0.6.3)
|
34
|
+
rails-dom-testing (~> 2.0)
|
35
|
+
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
36
|
+
actiontext (6.0.6)
|
37
|
+
actionpack (= 6.0.6)
|
38
|
+
activerecord (= 6.0.6)
|
39
|
+
activestorage (= 6.0.6)
|
40
|
+
activesupport (= 6.0.6)
|
41
|
+
nokogiri (>= 1.8.5)
|
42
|
+
actionview (6.0.6)
|
43
|
+
activesupport (= 6.0.6)
|
44
|
+
builder (~> 3.1)
|
45
|
+
erubi (~> 1.4)
|
46
|
+
rails-dom-testing (~> 2.0)
|
47
|
+
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
48
|
+
activejob (6.0.6)
|
49
|
+
activesupport (= 6.0.6)
|
50
|
+
globalid (>= 0.3.6)
|
51
|
+
activemodel (6.0.6)
|
52
|
+
activesupport (= 6.0.6)
|
53
|
+
activerecord (6.0.6)
|
54
|
+
activemodel (= 6.0.6)
|
55
|
+
activesupport (= 6.0.6)
|
56
|
+
activestorage (6.0.6)
|
57
|
+
actionpack (= 6.0.6)
|
58
|
+
activejob (= 6.0.6)
|
59
|
+
activerecord (= 6.0.6)
|
60
|
+
marcel (~> 1.0)
|
61
|
+
activesupport (6.0.6)
|
62
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
63
|
+
i18n (>= 0.7, < 2)
|
64
|
+
minitest (~> 5.1)
|
65
|
+
tzinfo (~> 1.1)
|
66
|
+
zeitwerk (~> 2.2, >= 2.2.2)
|
67
|
+
builder (3.2.4)
|
68
|
+
concurrent-ruby (1.1.10)
|
69
|
+
crass (1.0.6)
|
70
|
+
erubi (1.11.0)
|
71
|
+
globalid (1.0.0)
|
72
|
+
activesupport (>= 5.0)
|
73
|
+
i18n (1.12.0)
|
74
|
+
concurrent-ruby (~> 1.0)
|
75
|
+
loofah (2.19.0)
|
76
|
+
crass (~> 1.0.2)
|
77
|
+
nokogiri (>= 1.5.9)
|
78
|
+
mail (2.7.1)
|
79
|
+
mini_mime (>= 0.1.1)
|
80
|
+
marcel (1.0.2)
|
81
|
+
method_source (1.0.0)
|
82
|
+
mini_mime (1.1.2)
|
83
|
+
minitest (5.16.3)
|
84
|
+
mocha (1.15.0)
|
85
|
+
net-protocol (0.1.3)
|
86
|
+
timeout
|
87
|
+
net-smtp (0.3.2)
|
88
|
+
net-protocol
|
89
|
+
nio4r (2.5.8)
|
90
|
+
nokogiri (1.13.8-x86_64-linux)
|
91
|
+
racc (~> 1.4)
|
92
|
+
open4 (1.3.4)
|
93
|
+
racc (1.6.0)
|
94
|
+
rack (2.2.4)
|
95
|
+
rack-test (2.0.2)
|
96
|
+
rack (>= 1.3)
|
97
|
+
rails (6.0.6)
|
98
|
+
actioncable (= 6.0.6)
|
99
|
+
actionmailbox (= 6.0.6)
|
100
|
+
actionmailer (= 6.0.6)
|
101
|
+
actionpack (= 6.0.6)
|
102
|
+
actiontext (= 6.0.6)
|
103
|
+
actionview (= 6.0.6)
|
104
|
+
activejob (= 6.0.6)
|
105
|
+
activemodel (= 6.0.6)
|
106
|
+
activerecord (= 6.0.6)
|
107
|
+
activestorage (= 6.0.6)
|
108
|
+
activesupport (= 6.0.6)
|
109
|
+
bundler (>= 1.3.0)
|
110
|
+
railties (= 6.0.6)
|
111
|
+
sprockets-rails (>= 2.0.0)
|
112
|
+
rails-controller-testing (1.0.5)
|
113
|
+
actionpack (>= 5.0.1.rc1)
|
114
|
+
actionview (>= 5.0.1.rc1)
|
115
|
+
activesupport (>= 5.0.1.rc1)
|
116
|
+
rails-dom-testing (2.0.3)
|
117
|
+
activesupport (>= 4.2.0)
|
118
|
+
nokogiri (>= 1.6)
|
119
|
+
rails-html-sanitizer (1.4.3)
|
120
|
+
loofah (~> 2.3)
|
121
|
+
railties (6.0.6)
|
122
|
+
actionpack (= 6.0.6)
|
123
|
+
activesupport (= 6.0.6)
|
124
|
+
method_source
|
125
|
+
rake (>= 0.8.7)
|
126
|
+
thor (>= 0.20.3, < 2.0)
|
127
|
+
rake (13.0.6)
|
128
|
+
seed-fu (2.3.9)
|
129
|
+
activerecord (>= 3.1)
|
130
|
+
activesupport (>= 3.1)
|
131
|
+
seed-fu-ndo (0.0.3)
|
132
|
+
seed-fu (>= 2.2.0)
|
133
|
+
sprockets (4.1.1)
|
134
|
+
concurrent-ruby (~> 1.0)
|
135
|
+
rack (> 1, < 3)
|
136
|
+
sprockets-rails (3.4.2)
|
137
|
+
actionpack (>= 5.2)
|
138
|
+
activesupport (>= 5.2)
|
139
|
+
sprockets (>= 3.0.0)
|
140
|
+
sqlite3 (1.5.3-x86_64-linux)
|
141
|
+
thor (1.2.1)
|
142
|
+
thread_safe (0.3.6)
|
143
|
+
timeout (0.3.0)
|
144
|
+
tzinfo (1.2.10)
|
145
|
+
thread_safe (~> 0.1)
|
146
|
+
websocket-driver (0.7.5)
|
147
|
+
websocket-extensions (>= 0.1.0)
|
148
|
+
websocket-extensions (0.1.5)
|
149
|
+
zeitwerk (2.6.1)
|
150
|
+
|
151
|
+
PLATFORMS
|
152
|
+
x86_64-linux
|
153
|
+
|
154
|
+
DEPENDENCIES
|
155
|
+
mocha
|
156
|
+
net-smtp
|
157
|
+
open4
|
158
|
+
rails (~> 6.0.0)
|
159
|
+
rails-controller-testing
|
160
|
+
sqlite3
|
161
|
+
wagons!
|
162
|
+
|
163
|
+
BUNDLED WITH
|
164
|
+
2.3.19
|