sequel-rake 0.1.0 → 0.2.0

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
  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: