convergence 0.2.7 → 1.0.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: 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