sequel-rake 0.1.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5c87cab3732a1ecd2a079afc7428096a97d45d1a
4
- data.tar.gz: ab876b7698e792d3b6063806a14541768fe3ed32
3
+ metadata.gz: 1ccdfb23726e6677ced06b16ab6cf388b126cc24
4
+ data.tar.gz: 1f6851e683a0af6e36b48584c3b1fd7d095714a7
5
5
  SHA512:
6
- metadata.gz: 33f38bf1623a696053ce84e891ad806902da2e4b8adfd292ad14f4d1de3b77ec65c42b128553e9ed593189a89d7fdae8641115ff48e83331ca3675a92c879146
7
- data.tar.gz: 77ca6b4608f1f6ed48c769f5849a65ae24ff993ec85794fab7e1747b5d15f8a52e665db17ae4447746002c20b879bc7373b81f6766d5181c879739d36c7a1c19
6
+ metadata.gz: e25f8cf8b7a37b32a7592acc6a86aac0cc456bf4e65ff62cb4e800e9f3b1c13c3a2915e9762b574a7854c3f5215d07319e9d295e714da67d71f3bf6769c6661f
7
+ data.tar.gz: 7b2ac8a1e85d194fcf3442420c3c8c49614f8b57f86cf2967c917822b8e3458de37771f39c4148db66555d842d9b8e525c5dc9e35f604fe1bf86929ec9a88a72
data/.editorconfig ADDED
@@ -0,0 +1,12 @@
1
+ root = true
2
+
3
+ [*]
4
+ indent_style = space
5
+ indent_size = 2
6
+ end_of_line = lf
7
+ charset = utf-8
8
+ trim_trailing_whitespace = true
9
+ insert_final_newline = true
10
+
11
+ [*.md]
12
+ trim_trailing_whitespace = false
data/.rubocop.yml ADDED
@@ -0,0 +1,14 @@
1
+ Layout/MultilineMethodCallIndentation:
2
+ EnforcedStyle: indented
3
+ Layout/IndentArray:
4
+ EnforcedStyle: consistent
5
+
6
+ Style/StringLiterals:
7
+ EnforcedStyle: double_quotes
8
+
9
+ Metrics/BlockLength:
10
+ Exclude:
11
+ - '**/*.rake'
12
+
13
+ AllCops:
14
+ TargetRubyVersion: 2.3
data/Gemfile CHANGED
@@ -1,2 +1,4 @@
1
- source 'https://rubygems.org'
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
2
4
  gemspec
data/README.md CHANGED
@@ -27,6 +27,7 @@ Or install it yourself as:
27
27
  # Rakefile
28
28
 
29
29
  require 'sequel/rake'
30
+ Sequel::Rake.load!
30
31
  ```
31
32
 
32
33
  ```
@@ -52,4 +53,4 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/sandel
52
53
 
53
54
  ## License
54
55
 
55
- The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
56
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
data/Rakefile CHANGED
@@ -1,15 +1,17 @@
1
- require 'bundler/gem_tasks'
2
- require 'rake/testtask'
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "rake/testtask"
3
5
 
4
6
  Rake::TestTask.new do |t|
5
- t.pattern = 'test/**/*_test.rb'
6
- t.libs.push 'test'
7
+ t.pattern = "test/**/*_test.rb"
8
+ t.libs.push "test"
7
9
  end
8
10
 
9
11
  namespace :test do
10
12
  task :coverage do
11
- ENV['COVERAGE'] = 'true'
12
- Rake::Task['test'].invoke
13
+ ENV["COVERAGE"] = "true"
14
+ Rake::Task["test"].invoke
13
15
  end
14
16
  end
15
17
 
data/lib/sequel/rake.rb CHANGED
@@ -1,22 +1,23 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "rake/version"
4
+
3
5
  module Sequel
4
6
  #
5
7
  # @example
6
8
  # Sequel::Rake.configure do
7
9
  # set :connection, ENV["DATABASE_URL"]
8
10
  # set :migrations, "#{__dir__}/lib/db/migrations"
11
+ # set :namespace, "db"
9
12
  # end
10
13
  #
11
14
  module Rake
12
- # Current version number.
13
- VERSION = '0.1.0'
14
-
15
15
  class << self
16
16
  def configuration
17
17
  @configuration ||= {
18
18
  connection: ENV["DATABASE_URL"],
19
- migrations: "db/migrations"
19
+ migrations: "db/migrations",
20
+ namespace: "sequel"
20
21
  }
21
22
  end
22
23
 
@@ -1,19 +1,31 @@
1
- namespace :sequel do
1
+ # frozen_string_literal: true
2
+
3
+ namespace Sequel::Rake.get(:namespace) do
2
4
  require "sequel"
3
5
  require "fileutils"
4
6
 
7
+ task :environment unless Rake::Task.task_defined?("sequel:environment")
8
+
5
9
  desc "Creates the migrations directory"
6
- task :init do
7
- FileUtils::mkdir_p migrations
10
+ task init: :environment do
11
+ FileUtils.mkdir_p migrations
8
12
  puts "generated: #{migrations}"
9
13
  end
10
14
 
11
15
  desc "Generate a new migration file `sequel:generate[create_books]`"
12
- task :generate, :name do |_, args|
16
+ task :generate, [:name] => :environment do |_, args|
13
17
  name = args[:name]
14
18
  abort("Missing migration file name") if name.nil?
15
19
 
16
- content = "# frozen_string_literal: true\n\nSequel.migration do\n change do\n \n end\nend\n"
20
+ content = <<~STR
21
+ # frozen_string_literal: true
22
+
23
+ Sequel.migration do
24
+ change do
25
+ end
26
+ end
27
+ STR
28
+
17
29
  timestamp = Time.now.to_i
18
30
  filename = File.join(migrations, "#{timestamp}_#{name}.rb")
19
31
  File.write(filename, content)
@@ -21,19 +33,25 @@ namespace :sequel do
21
33
  end
22
34
 
23
35
  desc "Migrate the database (you can specify the version with `db:migrate[N]`)"
24
- task :migrate, [:version] do |task, args|
36
+ task :migrate, [:version] => :environment do |_task, args|
25
37
  version = args[:version] ? Integer(args[:version]) : nil
26
38
  migrate(version)
27
39
  puts "Migration complete"
28
40
  end
29
41
 
30
- desc "Rollback the database N steps (you can specify the version with `db:rollback[N]`"
31
- task :rollback, [:step] do |task, args|
42
+ desc "Rollback the database N steps " \
43
+ "(you can specify the version with `db:rollback[N]`)"
44
+ task :rollback, [:step] => :environment do |_task, args|
32
45
  step = args[:step] ? Integer(args[:step]) : 1
33
46
  version = 0
34
47
 
35
- if row = connection[:schema_migrations].order(Sequel.desc(:filename)).offset(step).first
36
- version = Integer(row[:filename].match(/([\d]+)/)[0])
48
+ target_migration =
49
+ connection[:schema_migrations]
50
+ .reverse_order(:filename)
51
+ .offset(step)
52
+ .first
53
+ if target_migration
54
+ version = Integer(target_migration[:filename].match(/([\d]+)/)[0])
37
55
  end
38
56
 
39
57
  migrate(version)
@@ -42,7 +60,7 @@ namespace :sequel do
42
60
  end
43
61
 
44
62
  desc "Undo all migrations and migrate again"
45
- task :remigrate do
63
+ task remigrate: :environment do
46
64
  migrate(0)
47
65
  migrate
48
66
  puts "Remigration complete"
@@ -54,7 +72,11 @@ namespace :sequel do
54
72
  end
55
73
 
56
74
  def connection
57
- @connection ||= Sequel.connect(Sequel::Rake.get(:connection))
75
+ if Sequel::Rake.get(:connection).is_a?(Sequel::Database)
76
+ Sequel::Rake.get(:connection)
77
+ else
78
+ @connection ||= Sequel.connect(Sequel::Rake.get(:connection))
79
+ end
58
80
  end
59
81
 
60
82
  def migrations
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sequel
4
+ module Rake
5
+ # Current version number.
6
+ VERSION = "0.2.0"
7
+ end
8
+ end
data/sequel-rake.gemspec CHANGED
@@ -1,28 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/sequel/rake/version"
4
+
1
5
  Gem::Specification.new do |spec|
2
- spec.name = 'sequel-rake'
3
- spec.version = File.read('lib/sequel/rake.rb')[/VERSION += +([\'])([\d][\w\.]+)\1/, 2]
4
- spec.summary = 'Rake tasks for the Sequel gem.'
6
+ spec.name = "sequel-rake"
7
+ spec.version = Sequel::Rake::VERSION
8
+ spec.summary = "Rake tasks for the Sequel gem."
5
9
 
6
- spec.required_ruby_version = '>= 2.3.0'
7
- spec.required_rubygems_version = '>= 2.5.0'
10
+ spec.required_ruby_version = ">= 2.3.0"
11
+ spec.required_rubygems_version = ">= 2.5.0"
8
12
 
9
- spec.license = 'MIT'
13
+ spec.license = "MIT"
10
14
 
11
- spec.author = 'Tobias Sandelius'
12
- spec.email = 'tobias@sandeli.use'
13
- spec.homepage = 'https://github.com/sandelius/sequel-rake'
15
+ spec.author = "Tobias Sandelius"
16
+ spec.email = "tobias@sandeli.use"
17
+ spec.homepage = "https://github.com/sandelius/sequel-rake"
14
18
 
15
19
  spec.files = `git ls-files -z`.split("\x0")
16
20
  spec.test_files = spec.files.grep(%r{^(test)/})
17
- spec.require_paths = ['lib']
21
+ spec.require_paths = ["lib"]
18
22
 
19
- spec.add_dependency 'thor', '~> 0.19'
23
+ spec.add_dependency "thor", "~> 0.19"
20
24
 
21
- spec.add_development_dependency 'sequel'
22
- spec.add_development_dependency 'pg'
23
- spec.add_development_dependency 'bundler'
24
- spec.add_development_dependency 'minitest', '>= 5.7.0'
25
- spec.add_development_dependency 'rake'
26
- spec.add_development_dependency 'simplecov'
27
- spec.add_development_dependency 'codeclimate-test-reporter'
25
+ spec.add_development_dependency "sequel"
26
+ spec.add_development_dependency "pg"
27
+ spec.add_development_dependency "bundler"
28
+ spec.add_development_dependency "minitest", ">= 5.7.0"
29
+ spec.add_development_dependency "rake"
30
+ spec.add_development_dependency "simplecov"
31
+ spec.add_development_dependency "codeclimate-test-reporter"
28
32
  end
data/test/test_helper.rb CHANGED
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- ENV['RACK_ENV'] = 'test'
3
+ ENV["RACK_ENV"] = "test"
4
4
 
5
- require 'bundler/setup'
5
+ require "bundler/setup"
6
6
 
7
- if ENV['COVERAGE'] == 'true'
8
- require 'simplecov'
9
- require 'codeclimate-test-reporter'
7
+ if ENV["COVERAGE"] == "true"
8
+ require "simplecov"
9
+ require "codeclimate-test-reporter"
10
10
 
11
11
  SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([
12
12
  SimpleCov::Formatter::HTMLFormatter,
@@ -14,12 +14,12 @@ if ENV['COVERAGE'] == 'true'
14
14
  ])
15
15
 
16
16
  SimpleCov.start do
17
- command_name 'test'
18
- add_filter 'test'
17
+ command_name "test"
18
+ add_filter "test"
19
19
  end
20
20
  end
21
21
 
22
- require 'minitest/autorun'
22
+ require "minitest/autorun"
23
23
 
24
- $LOAD_PATH.unshift File.expand_path('../lib', __dir__)
25
- require 'sequel/rake'
24
+ $LOAD_PATH.unshift File.expand_path("../lib", __dir__)
25
+ require "sequel/rake"
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'test_helper'
3
+ require "test_helper"
4
4
 
5
5
  describe Sequel::Rake do
6
- it 'has a version number' do
6
+ it "has a version number" do
7
7
  assert Sequel::Rake::VERSION
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel-rake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Sandelius
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-13 00:00:00.000000000 Z
11
+ date: 2017-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -128,7 +128,9 @@ executables: []
128
128
  extensions: []
129
129
  extra_rdoc_files: []
130
130
  files:
131
+ - ".editorconfig"
131
132
  - ".gitignore"
133
+ - ".rubocop.yml"
132
134
  - ".travis.yml"
133
135
  - CODE_OF_CONDUCT.md
134
136
  - Gemfile
@@ -137,6 +139,7 @@ files:
137
139
  - Rakefile
138
140
  - lib/sequel/rake.rb
139
141
  - lib/sequel/rake/tasks.rake
142
+ - lib/sequel/rake/version.rb
140
143
  - sequel-rake.gemspec
141
144
  - test/test_helper.rb
142
145
  - test/unit/rake_test.rb
@@ -160,11 +163,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
163
  version: 2.5.0
161
164
  requirements: []
162
165
  rubyforge_project:
163
- rubygems_version: 2.5.1
166
+ rubygems_version: 2.6.11
164
167
  signing_key:
165
168
  specification_version: 4
166
169
  summary: Rake tasks for the Sequel gem.
167
170
  test_files:
168
171
  - test/test_helper.rb
169
172
  - test/unit/rake_test.rb
170
- has_rdoc: