convergence 0.2.7 → 1.0.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: ef1510b43ccf48e6a03e2fd52d2db4bde278b310
4
- data.tar.gz: fc57a20928217ecdd52231365a9dbd76366e26ac
3
+ metadata.gz: c26bf3742a050cf1c1f19c5077900c5399eab4ed
4
+ data.tar.gz: f956e136b15aa7da59b076876130397a5541f2a8
5
5
  SHA512:
6
- metadata.gz: 9a83c88ec1b880cc029fa3ce993b907f51dc4e8987274a0a2d2fac2a1cef0ee1f5accf0d89f4ee603521a13863ae7a4b51e27671ea426887c8a590011054e55d
7
- data.tar.gz: a8e5a9ce6069bfb6285dd5855c4c8082c35989c4c537cbb9a5791eadabd5209b2161c93d7126ae6e514ed573e6a141132c434b8e8a785c5293a36e0274cebef2
6
+ metadata.gz: 69b9bf97488d41d38c77653cf670cd1d8dd83462e275609fb4b08d808def10802e23f7bb12666229cde592faf127503c2cd88f136c990614ce4b2d860b69436a
7
+ data.tar.gz: 760af609f15854528884f4861d44bad95a6c4e3038e82b489c69ebb081a5b9714a4615909180648019ed36325a7a5364b448ca54758cfc76137b2f92d49cd53f
@@ -1,3 +1,17 @@
1
+ ## Convergence 1.0.0 (August 28, 2018) ##
2
+
3
+ * [BREAKING CHANGE] Change flag style command to sub-command style (PR: #60)
4
+
5
+ A flag style command has been deprecated
6
+
7
+ e.g. convergence -c database.yml -i example.schema --apply
8
+
9
+ Introduce a sub command style.
10
+
11
+ e.g. convergence apply example.schema -c database.yml
12
+
13
+ *yujideveloper*
14
+
1
15
  ## Convergence 0.2.7 (August 20, 2018) ##
2
16
 
3
17
  * Fix issues of Convergence::Config (PR: #58)
@@ -1,11 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- convergence (0.2.7)
4
+ convergence (1.0.0)
5
5
  diff-lcs
6
6
  diffy
7
7
  mysql2
8
- slop (~> 3.6)
8
+ thor (~> 0.20)
9
9
 
10
10
  GEM
11
11
  remote: https://rubygems.org/
@@ -77,7 +77,6 @@ GEM
77
77
  ruby-progressbar (1.9.0)
78
78
  ruby_dep (1.5.0)
79
79
  shellany (0.0.1)
80
- slop (3.6.0)
81
80
  thor (0.20.0)
82
81
  unicode-display_width (1.3.0)
83
82
 
@@ -91,8 +90,8 @@ DEPENDENCIES
91
90
  guard-rspec
92
91
  pry
93
92
  rake (~> 10.0)
94
- rspec
93
+ rspec (>= 3.5)
95
94
  rubocop
96
95
 
97
96
  BUNDLED WITH
98
- 1.16.1
97
+ 1.16.3
data/README.md CHANGED
@@ -53,7 +53,7 @@ create_table 'test_tables' do |t|
53
53
  t.index :name
54
54
  end
55
55
 
56
- $ convergence -c database.yml -i example.schema --dryrun
56
+ $ convergence apply example.schema -c database.yml --dry-run
57
57
 
58
58
  # CREATE TABLE `test_tables` (
59
59
  # `id` int(11) NOT NULL AUTO_INCREMENT,
@@ -64,7 +64,7 @@ $ convergence -c database.yml -i example.schema --dryrun
64
64
  # KEY `index_test_tables_on_name` (`name`)
65
65
  # ) ENGINE=InnoDB ROW_FORMAT=Compact DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci;
66
66
 
67
- $ convergence -c database.yml -i example.schema --apply
67
+ $ convergence apply example.schema -c database.yml
68
68
 
69
69
  SET FOREIGN_KEY_CHECKS=0;
70
70
  --> 0.0005826340056955814s
@@ -89,7 +89,7 @@ create_table 'test_tables', comment: 'Table Comment Test', engine: 'MyISAM' do |
89
89
  t.datetime :posted_at
90
90
  end
91
91
 
92
- $ convergence -c database.yml -i changed_example.schema --dryrun
92
+ $ convergence apply changed_example.schema -c database.yml --dry-run
93
93
 
94
94
  # DROP INDEX `index_test_tables_on_name` ON `test_tables`;
95
95
  # ALTER TABLE `test_tables`
@@ -98,7 +98,7 @@ $ convergence -c database.yml -i changed_example.schema --dryrun
98
98
  # ADD COLUMN `posted_at` datetime NOT NULL AFTER `created_at`;
99
99
  # ALTER TABLE `test_tables` ENGINE=MyISAM COMMENT='Table Comment Test';
100
100
 
101
- $ convergence -c database.yml -i changed_example.schema --apply
101
+ $ convergence apply changed_example.schema -c database.yml
102
102
 
103
103
  SET FOREIGN_KEY_CHECKS=0;
104
104
  --> 0.0005331430002115667s
@@ -131,15 +131,12 @@ Create Table: CREATE TABLE `test_tables` (
131
131
  ## Usage
132
132
 
133
133
  ```
134
- Usage: convergence [options]
135
- -v, --version
136
- -c, --config Database Yaml Setting
137
- -d, --diff DSL1,DSL2
138
- -e, --export export db schema to dsl
139
- -i, --input Input DSL
140
- --dryrun
141
- --apply execute sql to your database
142
- -h, --help Display this help message.
134
+ Commands:
135
+ convergence apply FILE -c, --config=CONFIG # execute sql to your database
136
+ convergence diff FILE1 FILE2 # print diff of DSLs
137
+ convergence export -c, --config=CONFIG # export db schema to dsl
138
+ convergence help [COMMAND] # Describe available commands or one specific command
139
+ convergence version # print the version
143
140
  ```
144
141
 
145
142
  ### DB Config
@@ -161,7 +158,7 @@ First, you need to create database.yml.
161
158
  And then, execute command like below.
162
159
 
163
160
  ```
164
- $ convergence -c database.yml --export > example.schema
161
+ $ convergence export -c database.yml > example.schema
165
162
  ```
166
163
 
167
164
  Export DSL like this.
@@ -193,16 +190,16 @@ create_table "paper_authors", collate: "utf8_general_ci", comment: "Paper Author
193
190
  end
194
191
  ```
195
192
 
196
- ### Dryrun
193
+ ### Dry run
197
194
 
198
195
  ```
199
- $ convergence -c database.yml -i example.schema --dryrun
196
+ $ convergence apply example.schema -c database.yml --dry-run
200
197
  ```
201
198
 
202
199
  ### Apply
203
200
 
204
201
  ```
205
- $ convergence -c database.yml -i example.schema --apply
202
+ $ convergence apply example.schema -c database.yml
206
203
  ```
207
204
 
208
205
  ### Include Other Schema files
@@ -1,23 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
3
3
  require 'rubygems'
4
- require 'convergence'
5
- require 'slop'
4
+ require 'convergence/cli'
6
5
 
7
- opts = Slop.parse(help: true) do |opt|
8
- opt.banner 'Usage: convergence [options]'
9
-
10
- opt.on 'v', 'version' do
11
- puts "version #{Convergence::VERSION}"
12
- exit
13
- end
14
-
15
- opt.on 'c=', 'config=', 'Database Yaml Setting'
16
- opt.on 'd=', 'diff=', 'DSL1,DSL2', as: Array, limit: 2
17
- opt.on 'e', 'export', 'export db schema to dsl'
18
- opt.on 'i=', 'input=', 'Input DSL'
19
- opt.on 'dryrun'
20
- opt.on 'apply', 'execute sql to your database'
21
- end
22
-
23
- Convergence::Command.new(opts).execute
6
+ Convergence::CLI.start
@@ -21,13 +21,13 @@ Gem::Specification.new do |spec|
21
21
  spec.add_dependency 'mysql2'
22
22
  spec.add_dependency 'diff-lcs'
23
23
  spec.add_dependency 'diffy'
24
- spec.add_dependency 'slop', '~> 3.6'
24
+ spec.add_dependency 'thor', '~> 0.20'
25
25
 
26
26
  spec.required_ruby_version = ">= 2.3.0"
27
27
 
28
28
  spec.add_development_dependency 'bundler', '~> 1.7'
29
29
  spec.add_development_dependency 'rake', '~> 10.0'
30
- spec.add_development_dependency 'rspec'
30
+ spec.add_development_dependency 'rspec', '>= 3.5'
31
31
  spec.add_development_dependency 'rubocop'
32
32
  spec.add_development_dependency 'pry'
33
33
  spec.add_development_dependency 'guard'
@@ -1,24 +1,2 @@
1
1
  require 'convergence/module'
2
- require 'convergence/logger'
3
2
  require 'convergence/version'
4
- require 'convergence/config'
5
- require 'convergence/command'
6
- require 'convergence/command/diff'
7
- require 'convergence/command/export'
8
- require 'convergence/command/dryrun'
9
- require 'convergence/command/apply'
10
- require 'convergence/pretty_diff'
11
- require 'convergence/database_connector'
12
- require 'convergence/database_connector/mysql_connector'
13
- require 'convergence/column'
14
- require 'convergence/index'
15
- require 'convergence/foreign_key'
16
- require 'convergence/table'
17
- require 'convergence/dsl'
18
- require 'convergence/diff'
19
- require 'convergence/sql_generator'
20
- require 'convergence/sql_generator/mysql_generator'
21
- require 'convergence/dumper'
22
- require 'convergence/dumper/mysql_schema_dumper'
23
- require 'convergence/default_parameter'
24
- require 'convergence/default_parameter/mysql_default_parameter'
@@ -0,0 +1,104 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'thor'
4
+ require 'convergence/module'
5
+ require 'convergence/config'
6
+
7
+ class Convergence::CLI < Thor
8
+ default_command :__fallback # TODO: `__fallback` will be removed in a future version(maybe v0.4.0)
9
+
10
+ map %w[--version -v] => :version
11
+
12
+ desc 'apply FILE', 'execute sql to your database'
13
+ method_option :config, aliases: '-c', type: :string, required: true, desc: 'Database Yaml Setting'
14
+ method_option :dry_run, type: :boolean
15
+ def apply(file)
16
+ opts = { input: file }
17
+ if options[:dry_run]
18
+ require 'convergence/command/dryrun'
19
+ Convergence::Command::Dryrun.new(opts, config: config).execute
20
+ else
21
+ require 'convergence/command/apply'
22
+ Convergence::Command::Apply.new(opts, config: config).execute
23
+ end
24
+ end
25
+
26
+ desc 'diff FILE1 FILE2', 'print diff of DSLs'
27
+ def diff(file1, file2)
28
+ require 'convergence/command/diff'
29
+ opts = { diff: [file1, file2] }
30
+ Convergence::Command::Diff.new(opts, config: config).execute
31
+ end
32
+
33
+ desc 'export', 'export db schema to dsl'
34
+ method_option :config, aliases: '-c', type: :string, required: true, desc: 'Database Yaml Setting'
35
+ def export
36
+ require 'convergence/command/export'
37
+ opts = {}
38
+ Convergence::Command::Export.new(opts, config: config).execute
39
+ end
40
+
41
+ desc 'version', 'print the version'
42
+ def version
43
+ require 'convergence/version'
44
+ puts "version #{Convergence::VERSION}"
45
+ end
46
+
47
+ # TODO: `__fallback` will be removed in a future version(maybe v0.4.0)
48
+ desc '', '', hide: true
49
+ method_option :config,
50
+ aliases: '-c', type: :string,
51
+ desc: 'Database Yaml Setting'
52
+ method_option :diff,
53
+ aliases: '-d', type: :array, default: nil,
54
+ banner: 'DSL1 DSL2'
55
+ method_option :export,
56
+ aliases: '-e', type: :boolean, default: false,
57
+ desc: 'export db schema to dsl'
58
+ method_option :input,
59
+ aliases: '-i', type: :string,
60
+ desc: 'Input DSL'
61
+ method_option :dryrun,
62
+ type: :boolean, default: false
63
+ method_option :apply,
64
+ type: :boolean, default: false,
65
+ desc: 'execute sql to your database'
66
+ def __fallback
67
+ command_klass =
68
+ if !options[:diff].nil? && !options[:diff].empty?
69
+ require 'convergence/command/diff'
70
+ opts = { diff: options[:diff] }
71
+ Convergence::Command::Diff
72
+ elsif options[:export]
73
+ require 'convergence/command/export'
74
+ opts = {}
75
+ Convergence::Command::Export
76
+ elsif options[:dryrun]
77
+ require 'convergence/command/dryrun'
78
+ opts = { input: options[:input] }
79
+ Convergence::Command::Dryrun
80
+ elsif options[:apply]
81
+ require 'convergence/command/apply'
82
+ opts = { input: options[:input] }
83
+ Convergence::Command::Apply
84
+ end
85
+
86
+ if command_klass
87
+ deprecation_warning
88
+ command_klass.new(opts, config: config).execute
89
+ else
90
+ help
91
+ end
92
+ end
93
+
94
+ private
95
+
96
+ def config
97
+ return unless options[:config]
98
+ @config ||= Convergence::Config.load(options[:config])
99
+ end
100
+
101
+ def deprecation_warning
102
+ warn '[DEPRECATION] Option style is deprecated. Please use subscommand style.'
103
+ end
104
+ end
@@ -1,3 +1,7 @@
1
+ require 'convergence/config'
2
+ require 'convergence/logger'
3
+ require 'convergence/database_connector'
4
+
1
5
  class Convergence::Command
2
6
  def initialize(opts, config: nil)
3
7
  @opts = opts
@@ -8,24 +12,6 @@ class Convergence::Command
8
12
  end
9
13
  end
10
14
 
11
- def execute
12
- execute_klass =
13
- if @opts[:diff]
14
- Convergence::Command::Diff
15
- elsif @opts[:export]
16
- Convergence::Command::Export
17
- elsif @opts[:dryrun]
18
- Convergence::Command::Dryrun
19
- elsif @opts[:apply]
20
- Convergence::Command::Apply
21
- end
22
- if execute_klass.nil?
23
- puts @opts
24
- else
25
- execute_klass.new(@opts, config: @config).execute
26
- end
27
- end
28
-
29
15
  def database_adapter
30
16
  @config.nil? ? 'mysql' : @config.adapter
31
17
  end
@@ -37,6 +23,7 @@ class Convergence::Command
37
23
  def dumper
38
24
  @dumper ||= case database_adapter
39
25
  when 'mysql', 'mysql2'
26
+ require 'convergence/dumper/mysql_schema_dumper'
40
27
  Convergence::Dumper::MysqlSchemaDumper.new(connector)
41
28
  else
42
29
  fail NotImplementedError.new('unknown database adapter')
@@ -46,6 +33,7 @@ class Convergence::Command
46
33
  def sql_generator
47
34
  @sql_generator ||= case database_adapter
48
35
  when 'mysql', 'mysql2'
36
+ require 'convergence/sql_generator/mysql_generator'
49
37
  SQLGenerator::MysqlGenerator.new
50
38
  else
51
39
  fail NotImplementedError.new('unknown database adapter')
@@ -1,10 +1,14 @@
1
1
  require 'benchmark'
2
2
  require 'pathname'
3
+ require 'convergence/command'
4
+ require 'convergence/dsl'
5
+ require 'convergence/default_parameter'
6
+ require 'convergence/diff'
3
7
 
4
8
  class Convergence::Command::Apply < Convergence::Command
5
9
  def validate!
6
- fail ArgumentError.new('--config required') if @config.nil?
7
- fail ArgumentError.new('--input required') unless @opts[:input]
10
+ fail ArgumentError.new('config required') if @config.nil?
11
+ fail ArgumentError.new('input required') unless @opts[:input]
8
12
  end
9
13
 
10
14
  def execute
@@ -1,3 +1,9 @@
1
+ require 'pathname'
2
+ require 'convergence/command'
3
+ require 'convergence/default_parameter'
4
+ require 'convergence/pretty_diff'
5
+ require 'convergence/dsl'
6
+
1
7
  class Convergence::Command::Diff < Convergence::Command
2
8
  def validate!
3
9
  unless @opts[:diff].size == 2
@@ -1,8 +1,14 @@
1
1
  require 'pathname'
2
+ require 'convergence/command'
3
+ require 'convergence/command/apply'
4
+ require 'convergence/dsl'
5
+ require 'convergence/default_parameter'
6
+ require 'convergence/pretty_diff'
7
+
2
8
  class Convergence::Command::Dryrun < Convergence::Command
3
9
  def validate!
4
- fail ArgumentError.new('--config required') if @config.nil?
5
- fail ArgumentError.new('--input required') unless @opts[:input]
10
+ fail ArgumentError.new('config required') if @config.nil?
11
+ fail ArgumentError.new('input required') unless @opts[:input]
6
12
  end
7
13
 
8
14
  def execute
@@ -1,7 +1,11 @@
1
+ require 'convergence/command'
2
+ require 'convergence/dumper'
3
+ require 'convergence/default_parameter'
4
+
1
5
  class Convergence::Command::Export < Convergence::Command
2
6
  def validate!
3
7
  if @config.nil?
4
- fail ArgumentError.new('--config required')
8
+ fail ArgumentError.new('config required')
5
9
  end
6
10
  end
7
11
 
@@ -5,6 +5,7 @@ class Convergence::DatabaseConnector
5
5
  @connector =
6
6
  case config.adapter
7
7
  when 'mysql', 'mysql2'
8
+ require 'convergence/database_connector/mysql_connector'
8
9
  Convergence::DatabaseConnector::MysqlConnector.new(config)
9
10
  else
10
11
  fail NotImplementedError.new("#{config.adapter} not supported yet")
@@ -1,4 +1,6 @@
1
1
  require 'mysql2'
2
+ require 'convergence/database_connector'
3
+
2
4
  class Convergence::DatabaseConnector::MysqlConnector
3
5
  attr_reader :config
4
6
 
@@ -2,6 +2,7 @@ class Convergence::DefaultParameter
2
2
  def initialize(adapter)
3
3
  case adapter.downcase
4
4
  when 'mysql', 'mysql2'
5
+ require 'convergence/default_parameter/mysql_default_parameter'
5
6
  @parameter_klass = Convergence::DefaultParameter::MysqlDefaultParameter.new
6
7
  else
7
8
  fail NotImplementedError.new("unknown adapter #{config.adapter}.")
@@ -1,3 +1,5 @@
1
+ require 'convergence/default_parameter'
2
+
1
3
  class Convergence::DefaultParameter::MysqlDefaultParameter
2
4
  DEFAULT_TABLE_PARAMETERS = {
3
5
  engine: 'InnoDB',
@@ -1,3 +1,5 @@
1
+ require 'convergence/table'
2
+
1
3
  class Convergence::DSL
2
4
  attr_accessor :tables, :current_dir_path
3
5
 
@@ -1,3 +1,6 @@
1
+ require 'convergence/dumper'
2
+ require 'convergence/table'
3
+
1
4
  class Convergence::Dumper::MysqlSchemaDumper
2
5
  def initialize(connector)
3
6
  @connector = connector
@@ -1,4 +1,6 @@
1
1
  require 'diffy'
2
+ require 'convergence/diff'
3
+ require 'convergence/dumper'
2
4
 
3
5
  class Convergence::PrettyDiff
4
6
  def initialize(from_tables, to_tables)
@@ -1,3 +1,5 @@
1
+ require 'convergence/sql_generator'
2
+
1
3
  class SQLGenerator::MysqlGenerator < SQLGenerator
2
4
  OPTION_MAPPING = {
3
5
  engine: 'ENGINE',
@@ -1,3 +1,7 @@
1
+ require 'convergence/column'
2
+ require 'convergence/index'
3
+ require 'convergence/foreign_key'
4
+
1
5
  class Convergence::Table
2
6
  attr_accessor :table_name, :table_options, :columns, :indexes, :foreign_keys
3
7
 
@@ -1,3 +1,3 @@
1
1
  module Convergence
2
- VERSION = '0.2.7'
2
+ VERSION = '1.0.0'
3
3
  end
@@ -1,4 +1,6 @@
1
1
  require 'spec_helper'
2
+ require 'convergence/diff'
3
+ require 'convergence/table'
2
4
 
3
5
  describe Convergence::DSL do
4
6
  describe '#diff' do
@@ -1,4 +1,5 @@
1
1
  require 'spec_helper'
2
+ require 'convergence/dsl'
2
3
 
3
4
  describe Convergence::DSL do
4
5
  let(:dsl_single_table) do
@@ -1,4 +1,6 @@
1
1
  require 'spec_helper'
2
+ require 'convergence/dumper/mysql_schema_dumper'
3
+ require 'convergence/database_connector'
2
4
 
3
5
  describe Convergence::Dumper::MysqlSchemaDumper do
4
6
  before do
@@ -1,4 +1,6 @@
1
1
  require 'spec_helper'
2
+ require 'convergence/dumper'
3
+ require 'convergence/table'
2
4
 
3
5
  describe Convergence::Dumper do
4
6
  let(:table1) do
@@ -1,4 +1,5 @@
1
1
  require 'spec_helper'
2
+ require 'convergence/table'
2
3
 
3
4
  describe Convergence::Table do
4
5
  let(:table_name) { 'dummy_table' }
@@ -1,12 +1,12 @@
1
1
  require 'spec_helper'
2
+ require 'convergence/command/dryrun'
2
3
 
3
4
  describe 'Command::Dryrun#execute' do
4
5
  def execute(dsl_path)
5
6
  parse_option = {
6
- dryrun: true,
7
7
  input: File.expand_path("#{File.dirname(__FILE__)}/../fixtures/#{dsl_path}")
8
8
  }
9
- Convergence::Command.new(parse_option, config: mysql_settings).execute
9
+ Convergence::Command::Dryrun.new(parse_option, config: mysql_settings).execute
10
10
  end
11
11
 
12
12
  describe 'change table options' do
@@ -1,4 +1,5 @@
1
1
  require 'spec_helper'
2
+ require 'convergence/command/apply'
2
3
 
3
4
  describe 'Changeable Foreign key' do
4
5
  after(:each) do
@@ -7,10 +8,9 @@ describe 'Changeable Foreign key' do
7
8
 
8
9
  def execute(dsl_path)
9
10
  parse_option = {
10
- apply: true,
11
11
  input: File.expand_path("#{File.dirname(__FILE__)}/../fixtures/#{dsl_path}")
12
12
  }
13
- Convergence::Command.new(parse_option, config: mysql_settings).execute
13
+ Convergence::Command::Apply.new(parse_option, config: mysql_settings).execute
14
14
  end
15
15
 
16
16
  describe 'drop foreign key' do
@@ -3,6 +3,7 @@ require 'bundler/setup'
3
3
  require 'rspec'
4
4
  require 'pry'
5
5
  require 'convergence'
6
+ require 'convergence/database_connector'
6
7
  Dir["#{File.dirname(__FILE__)}/integrations/**/*.rb"].each { |f| require f }
7
8
 
8
9
  $default_output = File.open('/dev/null', 'w')
@@ -20,14 +21,12 @@ def rollback
20
21
  .map(&:strip)
21
22
  .reject(&:empty?)
22
23
  sqls.each do |sql|
23
- Convergence::Command.new({}, config: mysql_settings)
24
- .connector
24
+ Convergence::DatabaseConnector.new(mysql_settings)
25
25
  .client
26
26
  .query("#{sql};")
27
27
  end
28
28
  end
29
29
 
30
30
  RSpec.configure do |config|
31
- config.filter_run :focus
32
- config.run_all_when_everything_filtered = true
31
+ config.filter_run_when_matching :focus
33
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: convergence
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shinsuke Nishio
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-20 00:00:00.000000000 Z
11
+ date: 2018-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mysql2
@@ -53,19 +53,19 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: slop
56
+ name: thor
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '3.6'
61
+ version: '0.20'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '3.6'
68
+ version: '0.20'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bundler
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: '3.5'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
110
+ version: '3.5'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rubocop
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -187,6 +187,7 @@ files:
187
187
  - convergence.gemspec
188
188
  - database.yml.example
189
189
  - lib/convergence.rb
190
+ - lib/convergence/cli.rb
190
191
  - lib/convergence/column.rb
191
192
  - lib/convergence/command.rb
192
193
  - lib/convergence/command/apply.rb