sequel-rails 0.9.3 → 0.9.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3a1cd2895c74ba9e4a8a5ef09818780374a39a5a
4
- data.tar.gz: d7411b415c0f316fba662ed2ef5480d100e3965d
3
+ metadata.gz: b6d26dfaf8ce3dc258c5310ecc590fa8ef164de5
4
+ data.tar.gz: 82495e78e217391ca5a50ab5ea6f45ec77516890
5
5
  SHA512:
6
- metadata.gz: 56005f7d3bd105d08938c3f7f14a8b256a9015deac144b7c685481e4b2af7b90ad1d6b027eacedb5794c10745ea5778361e7b2fdbcbb05cac02b6c5dea2dbb9e
7
- data.tar.gz: ad9e912ed38c60d59c73649d5b08ef1ad615ebe72e31cc31c8d176588b320db1c79bfacde4d232daa9b6ef426596e57c9016818b86cc8629c433fe6cdc7632a8
6
+ metadata.gz: f7d5d6dce632081523febcbe316f6cfbbb922febf43607f076649844c931ca68abbba550a8bfb9515925bafe24640cd32b887b47da50d6bb475e55b9a054f84c
7
+ data.tar.gz: b5f3c6394d30180d2476e4057aa3f0930990e479632a65c033eea8a2461d181f94198bcac651121e2fcf04fc4e186b633141bd6433d34042100d7b2460db59df
data/History.md CHANGED
@@ -1,7 +1,16 @@
1
+ 0.9.4 (2014-07-24)
2
+ ==================
3
+
4
+ * Put a note in README about plugins which could not be added to `Sequel::Model`
5
+ (Thanks to Dave Myron) [#68](https://github.com/TalentBox/sequel-rails/issues/68)
6
+ * Implements `rake db:rollback` and fix `rake db:migrate:redo`
7
+ [#67](https://github.com/TalentBox/sequel-rails/issues/67)
8
+
1
9
  0.9.3 (2014-05-18)
2
10
  ==================
3
11
 
4
- * Use `ENV['DATABASE_URL']` for connection if set [#66](https://github.com/TalentBox/sequel-rails/issues/66)
12
+ * Use `ENV['DATABASE_URL']` for connection if set
13
+ [#66](https://github.com/TalentBox/sequel-rails/issues/66)
5
14
 
6
15
  0.9.2 (2014-02-11)
7
16
  ==================
data/README.md CHANGED
@@ -231,6 +231,10 @@ loaded. Loading plugins into `Sequel::Model` after subclasses are already
231
231
  created is not supported by Sequel. You can also load extensions in
232
232
  `after_connect` or perform any custom actions that you need.
233
233
 
234
+ Please note: some plugins require a `dataset` to work, which means they can't
235
+ be added via `Sequel::Model.plugin`, they need to be added to a `Sequel::Model`
236
+ subclass whose underlying table exists.
237
+
234
238
  Using the `SequelStore` to store session in database
235
239
  ====================================================
236
240
 
@@ -43,6 +43,30 @@ module SequelRails
43
43
  Rails.root.join('db/migrate')
44
44
  end
45
45
 
46
+ def current_migration
47
+ return unless available_migrations?
48
+
49
+ migrator_class = ::Sequel::Migrator.send(:migrator_class, migrations_dir)
50
+ migrator = migrator_class.new ::Sequel::Model.db, migrations_dir
51
+ if migrator.respond_to?(:applied_migrations)
52
+ migrator.applied_migrations.last
53
+ elsif migrator.respond_to?(:current_version)
54
+ migrator.current_version
55
+ end
56
+ end
57
+
58
+ def previous_migration
59
+ return unless available_migrations?
60
+
61
+ migrator_class = ::Sequel::Migrator.send(:migrator_class, migrations_dir)
62
+ migrator = migrator_class.new ::Sequel::Model.db, migrations_dir
63
+ if migrator.respond_to?(:applied_migrations)
64
+ migrator.applied_migrations[-2] || '0'
65
+ elsif migrator.respond_to?(:current_version)
66
+ migrator.current_version - 1
67
+ end
68
+ end
69
+
46
70
  def available_migrations?
47
71
  File.exist?(migrations_dir) && Dir[File.join(migrations_dir, '*')].any?
48
72
  end
@@ -163,6 +163,17 @@ namespace :db do
163
163
  Rake::Task['db:dump'].invoke if SequelRails.configuration.schema_dump
164
164
  end
165
165
 
166
+ desc 'Rollback the latest migration file or down to specified VERSION=x'
167
+ task :rollback => 'migrate:load' do
168
+ version = if ENV['VERSION']
169
+ ENV['VERSION'].to_i
170
+ else
171
+ SequelRails::Migrations.previous_migration
172
+ end
173
+ SequelRails::Migrations.migrate_down! version
174
+ Rake::Task['db:dump'].invoke if SequelRails.configuration.schema_dump
175
+ end
176
+
166
177
  desc 'Load the seed data from db/seeds.rb'
167
178
  task :seed => :abort_if_pending_migrations do
168
179
  seed_file = File.join(Rails.root, 'db', 'seeds.rb')
@@ -1,3 +1,3 @@
1
1
  module SequelRails
2
- VERSION = '0.9.3'
2
+ VERSION = '0.9.4'
3
3
  end
@@ -1,9 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe 'Database rake tasks' do
3
+ describe 'Database rake tasks', :no_transaction => true do
4
4
 
5
5
  let(:app) { Combustion::Application }
6
6
  let(:app_root) { app.root }
7
+ let(:schema) { "#{app_root}/db/schema.rb" }
7
8
 
8
9
  around do |example|
9
10
  begin
@@ -15,8 +16,6 @@ describe 'Database rake tasks' do
15
16
  end
16
17
 
17
18
  describe 'db:schema:dump' do
18
- let(:schema) { "#{app_root}/db/schema.rb" }
19
-
20
19
  it "dumps the schema in 'db/schema.rb'" do
21
20
  Dir.chdir app_root do
22
21
  `rake db:schema:dump`
@@ -62,4 +61,31 @@ EOS
62
61
  end
63
62
  end
64
63
  end
64
+
65
+ describe 'db:rollback' do
66
+ it 'revert latest migration' do
67
+ Dir.chdir app_root do
68
+ begin
69
+ expect do
70
+ `rake db:rollback`
71
+ end.to change { SequelRails::Migrations.current_migration }.from(
72
+ '1273253849_add_twitter_handle_to_users.rb'
73
+ ).to(nil)
74
+ ensure
75
+ SequelRails::Migrations.migrate_up!
76
+ end
77
+ end
78
+ end
79
+ end
80
+
81
+ describe 'db:migrate:redo' do
82
+ it 'run down then up of the latest migration' do
83
+ Dir.chdir app_root do
84
+ SequelRails::Migrations.migrate_up!
85
+ expect do
86
+ `rake db:migrate:redo`
87
+ end.not_to change { SequelRails::Migrations.current_migration }
88
+ end
89
+ end
90
+ end
65
91
  end
@@ -22,8 +22,12 @@ RSpec.configure do |config|
22
22
  config.treat_symbols_as_metadata_keys_with_true_values = true
23
23
  config.filter_run_excluding rspec_exclusions
24
24
  config.around :each do |example|
25
- Sequel::Model.db.transaction(:rollback => :always) do
25
+ if example.metadata[:no_transaction]
26
26
  example.run
27
+ else
28
+ Sequel::Model.db.transaction(:rollback => :always) do
29
+ example.run
30
+ end
27
31
  end
28
32
  end
29
33
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.3
4
+ version: 0.9.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brasten Sager (brasten)
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-05-18 00:00:00.000000000 Z
12
+ date: 2014-07-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel
@@ -259,7 +259,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
259
259
  version: '0'
260
260
  requirements: []
261
261
  rubyforge_project:
262
- rubygems_version: 2.2.2
262
+ rubygems_version: 2.2.1
263
263
  signing_key:
264
264
  specification_version: 4
265
265
  summary: Use Sequel with Rails (3.x and 4.x)