mycmd 0.0.2 → 0.0.3

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: bf1b833907aa455e71b88d4fd93f821274103a13
4
- data.tar.gz: 1dc6c7315cd5d5f157c5bb2b1bfaf5ab6106d9d9
3
+ metadata.gz: a8c336e5ee888d89abcf88b847b4b014992d5d53
4
+ data.tar.gz: 0314ddffcabc62fa4de866899f4497be744795b3
5
5
  SHA512:
6
- metadata.gz: a7eb2b0c883a5207ab4466b251c5e4fd01026126e98a4865ef6ff2069be2ac8b8ea7dd87c8ce4cd4a9c74b79a40e8e368e95ebd275e25493419b4465ddaaf7d4
7
- data.tar.gz: 1fdda7ab25c75dcb20b47498328475dc9b1eb0a8ff3e778fa266baf28915cb8409aaab6dd3ee9f276a52b256864e02558ae17f97b82f547e0b5165d7440b6a84
6
+ metadata.gz: b67247b0b25dcf6b14fab62bf02da1dabdd26e646edf1f42eb812e28605d1740230e47b84cdca6033367d4ca0ee0d9b3783f45ea5d730d013e513b875596c73a
7
+ data.tar.gz: 33fad2267c9e8a4ab357e397433b5b3fc64ba17397d6df5ff9be3b0e0f28a7fbdf277d836858278431adccd87ce3c52cea3b9f238085a0ed92f5ac7c26bb1008
@@ -11,7 +11,7 @@ module Mycmd
11
11
 
12
12
  desc "console", "console will start sql shell."
13
13
  def console
14
- raise "mysql not found" unless system("which mysql > /dev/null")
14
+ raise "mysql not found" unless Kernel.system("which mysql > /dev/null")
15
15
  conf = Configuration.new
16
16
  cmd = conf.to_hash.inject(["mysql"]) do |c,(k,v)|
17
17
  case k
@@ -23,7 +23,7 @@ module Mycmd
23
23
  end
24
24
  end
25
25
 
26
- system(cmd.join(" "))
26
+ Kernel.system(cmd.join(" "))
27
27
  end
28
28
 
29
29
  desc 'query "[SQL]"', "query will execute sql."
@@ -14,14 +14,14 @@ module Mycmd
14
14
  def cat
15
15
  conf = Configuration.config_find
16
16
  raise "config not found" if conf.nil?
17
- open(conf, "r").each {|line| puts line}
17
+ File.open(conf, "r").each {|line| puts line}
18
18
  end
19
19
 
20
20
  desc "edit", "edit will edit configuration"
21
21
  def edit
22
22
  conf = Configuration.config_find
23
23
  raise "config not found" if conf.nil?
24
- system("#{ENV['EDITOR']} #{conf}")
24
+ Kernel.system("#{ENV['EDITOR']} #{conf}")
25
25
  end
26
26
  end
27
27
  end
@@ -4,11 +4,75 @@ module Mycmd
4
4
  class SettingsCommands < Thor
5
5
  namespace :settings
6
6
 
7
+ GLOBAL_BUFFERS = [
8
+ :innodb_buffer_pool_size,
9
+ :innodb_log_buffer_size,
10
+ :innodb_additional_mem_pool_size,
11
+ :key_buffer_size,
12
+ :query_cache_size
13
+ ].freeze
14
+
15
+ THREAD_BUFFERS = [
16
+ :sort_buffer_size,
17
+ :read_buffer_size,
18
+ :read_rnd_buffer_size,
19
+ :join_buffer_size,
20
+ :tmp_table_size,
21
+ :max_heap_table_size,
22
+ :net_buffer_length,
23
+ :max_allowed_packet,
24
+ :thread_stack
25
+ ].freeze
26
+
7
27
  desc "search innodb_buffer_pool_size", "search will print settings"
8
28
  def search(keyword)
9
29
  client = Configuration.connect
10
30
  printer = Printer.new(client.query("SHOW GLOBAL VARIABLES LIKE \"%#{keyword}%\""))
11
31
  printer.print
12
32
  end
33
+
34
+ desc "memories", "memories will print memory settings"
35
+ def memories
36
+ variables = Configuration.get_variables
37
+ global, gtotal = create_result_variables(GLOBAL_BUFFERS, variables)
38
+ thread, ttotal = create_result_variables(THREAD_BUFFERS, variables)
39
+ expected = expected_memory_used(gtotal, variables)
40
+ Printer.print_title("GLOBAL BUFFERS")
41
+ Printer.new(global).print
42
+ Printer.print_title("THREAD BUFFERS", true)
43
+ Printer.new(thread).print
44
+ Printer.print_title("EXPECTED MEMORY USED", true)
45
+ Printer.new(expected).print
46
+ end
47
+
48
+ private
49
+ def create_result_variables(keys, variables)
50
+ rows = []
51
+ total = keys.inject(0) do |t,key|
52
+ bytes = variables[key].to_i
53
+ rows << [key.to_s ,"#{bytes} bytes (#{bytes.to_f/1024/1024} MB)"]
54
+ t + bytes
55
+ end
56
+ return rows, total
57
+ end
58
+
59
+ def expected_memory_used(global, variables)
60
+ max_connections = variables[:max_connections].to_i
61
+ threads = expected_threads(variables, max_connections)
62
+ total = global + threads
63
+ [
64
+ ["max_connections", "#{max_connections} connections"],
65
+ ["expected memory use of global", "#{global} bytes (#{global.to_f/1024/1024} MB)"],
66
+ ["expected memory use of threads", "#{threads} bytes (#{threads.to_f/1024/1024} MB)"],
67
+ ["expected total", "#{total} bytes (#{total.to_f/1024/1024} MB)"]
68
+ ]
69
+ end
70
+
71
+ def expected_threads(variables, max_connections)
72
+ base = variables[:net_buffer_length].to_i + variables[:thread_stack].to_i
73
+ tmp = variables[:tmp_table_size].to_i * 0.1
74
+ buffer = THREAD_BUFFERS[0..3].inject(0){|b,k| b + (variables[k].to_i * 0.5)}
75
+ ((base + tmp + buffer) * max_connections)
76
+ end
13
77
  end
14
78
  end
@@ -67,6 +67,16 @@ module Mycmd
67
67
  conf.connect
68
68
  end
69
69
 
70
+ def get_variables
71
+ sql = "SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES"
72
+ client = self.connect
73
+ variables = {}
74
+ client.query(sql).each do |row|
75
+ variables.store(row["VARIABLE_NAME"].downcase.to_sym, row["VARIABLE_VALUE"])
76
+ end
77
+ variables
78
+ end
79
+
70
80
  def config_find(path = File.expand_path("."))
71
81
  file = File.join(path, CONFIG_FILE)
72
82
  if File.exists?(file)
@@ -2,25 +2,36 @@
2
2
 
3
3
  module Mycmd
4
4
  class Printer
5
+ BORDER = "*" * 30
6
+ attr_accessor :result, :header, :width
7
+
5
8
  def initialize(result, header=false)
6
- @result = result
7
- @header = header
9
+ @result = result.is_a?(Mysql2::Result) ? result_to_array(result) : result
10
+ @header = result.is_a?(Mysql2::Result) ? result.fields : header
8
11
  end
9
12
 
10
13
  def print
11
14
  if @result.respond_to? :each
12
15
  set_width
13
- print_line(@result.fields) if @header
14
- @result.each(as: :array) do |row|
16
+ print_line(@header) if @header
17
+ @result.each do |row|
15
18
  print_line(row)
16
19
  end
17
20
  end
18
21
  end
19
22
 
20
23
  private
24
+ def result_to_array(result)
25
+ result_array = []
26
+ result.each(as: :array) do |row|
27
+ result_array << row
28
+ end
29
+ result_array
30
+ end
31
+
21
32
  def set_width
22
- @width = @result.fields.map{|f| f.size}
23
- @result.each(as: :array) do |row|
33
+ @width = @header ? @header.map{|f| f.size} : Array.new(@result.first.size){0}
34
+ @result.each do |row|
24
35
  row.each_with_index do |v,i|
25
36
  @width[i] = v.to_s.size if @width[i] < v.to_s.size
26
37
  end
@@ -30,5 +41,12 @@ module Mycmd
30
41
  def print_line(line_array)
31
42
  puts line_array.map.with_index {|f,i| f.to_s.ljust(@width[i], " ")}.join("\t")
32
43
  end
44
+
45
+ class << self
46
+ def print_title(title, empty_line=false)
47
+ puts if empty_line
48
+ puts "#{BORDER}\n#{title}\n#{BORDER}"
49
+ end
50
+ end
33
51
  end
34
52
  end
@@ -1,3 +1,3 @@
1
1
  module Mycmd
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -1,4 +1,89 @@
1
1
  require "spec_helper"
2
2
 
3
- describe Mycmd::CLI do
3
+ describe Mycmd::CLI do
4
+ let(:conn_mock) {double("connection mock").as_null_object}
5
+ let(:printer_mock) {double("printer mock").as_null_object}
6
+
7
+ describe "#console" do
8
+ let(:args) {["console"]}
9
+
10
+ before do
11
+ Mycmd::Configuration.stub(:config_find).and_return(nil)
12
+ end
13
+
14
+ it "should call Kernel.system" do
15
+ conf = Mycmd::Configuration.new
16
+ conf.password = "secret"
17
+ conf.database = "test"
18
+ Mycmd::Configuration.should_receive(:new).and_return(conf)
19
+ Kernel.should_receive(:system).exactly(2).and_return(true)
20
+ expect {
21
+ Mycmd::CLI.start(args)
22
+ }.not_to raise_error
23
+ end
24
+
25
+ it "should generate exception if mysql command not found" do
26
+ Kernel.should_receive(:system).and_return(false)
27
+ expect {
28
+ Mycmd::CLI.start(args)
29
+ }.to raise_error
30
+ end
31
+ end
32
+
33
+ describe "#query" do
34
+ before do
35
+ Mycmd::Configuration.stub(:connect).and_return(conn_mock)
36
+ Mycmd::Printer.stub(:new).and_return(printer_mock)
37
+ end
38
+
39
+ after do
40
+ expect {
41
+ Mycmd::CLI.start(["query", "some sql"])
42
+ }.not_to raise_error
43
+ end
44
+
45
+ it "should call Configuration.connect" do
46
+ Mycmd::Configuration.should_receive(:connect).and_return(conn_mock)
47
+ end
48
+
49
+ it "should create Printer object" do
50
+ Mycmd::Printer.should_receive(:new).with(conn_mock, true).and_return(printer_mock)
51
+ end
52
+
53
+ it "should call Printer#print" do
54
+ printer_mock.should_receive(:print)
55
+ end
56
+ end
57
+
58
+ describe "#tasks" do
59
+ let(:config_mock) {double("configuration mock").as_null_object}
60
+
61
+ before do
62
+ config_mock.stub(:connect).and_return(conn_mock)
63
+ Mycmd::Configuration.stub(:new).and_return(config_mock)
64
+ Mycmd::Printer.stub(:new).and_return(printer_mock)
65
+ end
66
+
67
+ after do
68
+ expect {
69
+ Mycmd::CLI.start(["tasks", "some task"])
70
+ }.not_to raise_error
71
+ end
72
+
73
+ it "should create Configuration object" do
74
+ Mycmd::Configuration.should_receive(:new).and_return(config_mock)
75
+ end
76
+
77
+ it "should call Configuration#connect" do
78
+ config_mock.should_receive(:connect).and_return(conn_mock)
79
+ end
80
+
81
+ it "should create Printer object" do
82
+ Mycmd::Printer.should_receive(:new).with(conn_mock, true).and_return(printer_mock)
83
+ end
84
+
85
+ it "should call Printer#print" do
86
+ printer_mock.should_receive(:print)
87
+ end
88
+ end
4
89
  end
@@ -0,0 +1,75 @@
1
+ require "spec_helper"
2
+
3
+ describe Mycmd::ConfigCommands do
4
+ describe "#which" do
5
+ let(:args) {["which"]}
6
+
7
+ it "should call Configuration.config_find" do
8
+ Mycmd::Configuration.should_receive(:config_find).and_return(nil)
9
+ expect(
10
+ capture(:stdout){
11
+ Mycmd::ConfigCommands.start(args)
12
+ }
13
+ ).not_to be_nil
14
+ end
15
+
16
+ it "should print not found message if file not found" do
17
+ Mycmd::Configuration.stub(:config_find).and_return(nil)
18
+ expect(
19
+ capture(:stdout){
20
+ Mycmd::ConfigCommands.start(args)
21
+ }
22
+ ).to eq("config not found\n")
23
+ end
24
+
25
+ it "should print config path" do
26
+ config = "/Users/i2bskn/.mycmd.yml"
27
+ Mycmd::Configuration.stub(:config_find).and_return(config)
28
+ expect(
29
+ capture(:stdout){
30
+ Mycmd::ConfigCommands.start(args)
31
+ }
32
+ ).to eq("#{config}\n")
33
+ end
34
+ end
35
+
36
+ describe "#edit" do
37
+ let(:args) {["edit"]}
38
+
39
+ it "should execute edit command" do
40
+ Mycmd::Configuration.stub(:config_find).and_return(".mycmd.yml")
41
+ Kernel.should_receive(:system).with("#{ENV['EDITOR']} .mycmd.yml")
42
+ Mycmd::ConfigCommands.start(args)
43
+ end
44
+
45
+ it "should generate exception if file not found" do
46
+ Mycmd::Configuration.stub(:config_find).and_return(nil)
47
+ expect {
48
+ Mycmd::ConfigCommands.start(args)
49
+ }.to raise_error(RuntimeError)
50
+ end
51
+
52
+ it "should call Configuration.config_find" do
53
+ Mycmd::Configuration.should_receive(:config_find).and_return(".mycmd.yml")
54
+ Kernel.stub(:system)
55
+ Mycmd::ConfigCommands.start(args)
56
+ end
57
+ end
58
+
59
+ describe "#cat" do
60
+ let(:args) {["cat"]}
61
+
62
+ it "should call Configuration.config_find" do
63
+ Mycmd::Configuration.should_receive(:config_find).and_return(".mycmd.yml")
64
+ File.stub(:open).and_return([])
65
+ Mycmd::ConfigCommands.start(args)
66
+ end
67
+
68
+ it "should generate exception if file not found" do
69
+ Mycmd::Configuration.stub(:config_find).and_return(nil)
70
+ expect {
71
+ Mycmd::ConfigCommands.start(args)
72
+ }.to raise_error(RuntimeError)
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,47 @@
1
+ require "spec_helper"
2
+
3
+ describe Mycmd::SettingsCommands do
4
+ describe "#search" do
5
+ let(:args) {["search", "param_name"]}
6
+ let(:conn_mock) do
7
+ mock = double("connection mock")
8
+ mock.stub(:query).and_return(create_result)
9
+ mock
10
+ end
11
+
12
+ before {Mycmd::Configuration.stub(:connect).and_return(conn_mock)}
13
+
14
+ after do
15
+ expect(
16
+ capture(:stdout) {
17
+ Mycmd::SettingsCommands.start(args)
18
+ }
19
+ ).not_to be_nil
20
+ end
21
+
22
+ it "should call Configuration.connect" do
23
+ Mycmd::Configuration.should_receive(:connect).and_return(conn_mock)
24
+ end
25
+
26
+ it "should create Printer object" do
27
+ Mycmd::Printer.should_receive(:new).and_return(double.as_null_object)
28
+ end
29
+
30
+ it "should call Printer#print" do
31
+ Mycmd::Printer.any_instance.should_receive(:print)
32
+ end
33
+ end
34
+
35
+ describe "#memories" do
36
+ let(:args){["memories"]}
37
+
38
+ it "returns expected threads" do
39
+ Mycmd::Configuration.stub(:get_variables).and_return(create_variables)
40
+ expect(
41
+ capture(:stdout) {
42
+ Mycmd::SettingsCommands.start(args)
43
+ }
44
+ ).not_to be_nil
45
+ end
46
+ end
47
+ end
@@ -53,21 +53,21 @@ describe Mycmd::Configuration do
53
53
  end
54
54
 
55
55
  describe "#reset" do
56
+ after do
57
+ expect {
58
+ Mycmd::Configuration.new
59
+ }.not_to raise_error
60
+ end
61
+
56
62
  it "should load yaml file" do
57
63
  Mycmd::Configuration.should_receive(:config_find).and_return(conf_file)
58
64
  Mycmd::Configuration.any_instance.should_receive(:merge)
59
65
  YAML.should_receive(:load_file).with(conf_file)
60
- expect {
61
- Mycmd::Configuration.new
62
- }.not_to raise_error
63
66
  end
64
67
 
65
68
  it "should call #default if config not found" do
66
69
  Mycmd::Configuration.should_receive(:config_find).and_return(nil)
67
70
  Mycmd::Configuration.any_instance.should_receive(:default)
68
- expect {
69
- Mycmd::Configuration.new
70
- }.not_to raise_error
71
71
  end
72
72
  end
73
73
 
@@ -87,7 +87,7 @@ describe Mycmd::Configuration do
87
87
  end
88
88
  end
89
89
 
90
- describe ".connect" do
90
+ describe ".#connect" do
91
91
  it "should call #connect" do
92
92
  mock = double("configuration mock")
93
93
  mock.should_receive(:connect)
@@ -98,7 +98,34 @@ describe Mycmd::Configuration do
98
98
  end
99
99
  end
100
100
 
101
- describe ".config_find" do
101
+ describe ".#get_variables" do
102
+ let(:conn_mock) {double("connection mock")}
103
+
104
+ before do
105
+ conn_mock.stub(:query).and_return([{"VARIABLE_NAME" => "innodb_buffer_pool_size", "VARIABLE_VALUE" => "268435456"}])
106
+ Mycmd::Configuration.stub(:connect).and_return(conn_mock)
107
+ end
108
+
109
+ after do
110
+ expect {
111
+ Mycmd::Configuration.get_variables
112
+ }.not_to raise_error
113
+ end
114
+
115
+ it "should call .#connect" do
116
+ Mycmd::Configuration.should_receive(:connect).and_return(conn_mock)
117
+ end
118
+
119
+ it "should call Mysql2::Client#query" do
120
+ conn_mock.should_receive(:query).and_return([])
121
+ end
122
+
123
+ it "should return variables" do
124
+ expect(Mycmd::Configuration.get_variables).to eq({innodb_buffer_pool_size: "268435456"})
125
+ end
126
+ end
127
+
128
+ describe ".#config_find" do
102
129
  let(:path) {Mycmd::Configuration.config_find(home_dir)}
103
130
 
104
131
  it "returns config path" do
@@ -0,0 +1,89 @@
1
+ require "spec_helper"
2
+
3
+ describe Mycmd::Printer do
4
+ let(:result) {create_result}
5
+ let(:printer) {Mycmd::Printer.new(result)}
6
+
7
+ describe "#initialize" do
8
+ it "should set specified result" do
9
+ expect(printer.result).to eq(result)
10
+ end
11
+
12
+ it "should set default header flug" do
13
+ expect(printer.header).to be_false
14
+ end
15
+
16
+ it "should set specified header flug" do
17
+ printer = Mycmd::Printer.new(result, true)
18
+ expect(printer.header).to be_true
19
+ end
20
+
21
+ it "should generate exception if not specified arguments" do
22
+ expect {
23
+ Mycmd::Printer.new
24
+ }.to raise_error
25
+ end
26
+ end
27
+
28
+ describe "#print" do
29
+ after do
30
+ expect {
31
+ printer.print
32
+ }.not_to raise_error
33
+ end
34
+
35
+ it "should call #set_width" do
36
+ printer.send(:set_width)
37
+ Mycmd::Printer.any_instance.should_receive(:set_width)
38
+ Mycmd::Printer.any_instance.stub(:print_line).and_return(nil)
39
+ end
40
+
41
+ it "should call #print_line" do
42
+ Mycmd::Printer.any_instance.should_receive(:print_line).exactly(3)
43
+ end
44
+
45
+ it "should not call #print_line if each method not found" do
46
+ Mycmd::Printer.any_instance.should_not_receive(:print_line)
47
+ result.should_receive(:respond_to?).and_return(false)
48
+ end
49
+ end
50
+
51
+ describe "#result_to_array" do
52
+ it "should convert to array from result" do
53
+ expect(printer.send(:result_to_array, create_result)).to eq([
54
+ ["first", "one"],
55
+ ["second", "two"],
56
+ ["third", "three"]
57
+ ])
58
+ end
59
+ end
60
+
61
+ describe "#set_width" do
62
+ it "should set max length" do
63
+ printer.send(:set_width)
64
+ expect(printer.width).to eq([6,5])
65
+ end
66
+
67
+ it "should hoge" do
68
+ printer.header = result.fields
69
+ printer.send(:set_width)
70
+ expect(printer.width).to eq([6,6])
71
+ end
72
+ end
73
+
74
+ describe "#print_line" do
75
+ it "should print line" do
76
+ expect(capture(:stdout){printer.print}).not_to be_nil
77
+ end
78
+ end
79
+
80
+ describe "#print_title" do
81
+ it "should print title" do
82
+ expect(capture(:stdout){Mycmd::Printer.print_title("title")}).not_to be_nil
83
+ end
84
+
85
+ it "should print empty line" do
86
+ expect(capture(:stdout){Mycmd::Printer.print_title("title", true)}).to match(/^\n/)
87
+ end
88
+ end
89
+ end
@@ -14,6 +14,10 @@ end
14
14
 
15
15
  require "mycmd"
16
16
 
17
+ support_files = File.join(File.expand_path("..", __FILE__), "support/*.rb")
18
+ Dir[support_files].each {|f| require f}
19
+
17
20
  RSpec.configure do |config|
18
21
  config.order = "random"
22
+ config.include(SpecUtils)
19
23
  end
@@ -0,0 +1,61 @@
1
+ require "stringio"
2
+
3
+ module SpecUtils
4
+ def capture(stream)
5
+ begin
6
+ stream = stream.to_s
7
+ eval "$#{stream} = StringIO.new"
8
+ yield
9
+ result = eval("$#{stream}").string
10
+ ensure
11
+ eval("$#{stream} = #{stream.upcase}")
12
+ end
13
+ result
14
+ end
15
+
16
+ def create_variables
17
+ {
18
+ innodb_buffer_pool_size: "268435456",
19
+ innodb_log_buffer_size: "8388608",
20
+ innodb_additional_mem_pool_size: "16777216",
21
+ key_buffer_size: "16777216",
22
+ query_cache_size: "0",
23
+ sort_buffer_size: "524288",
24
+ read_buffer_size: "262144",
25
+ read_rnd_buffer_size: "524288",
26
+ join_buffer_size: "262144",
27
+ tmp_table_size: "16777216",
28
+ max_heap_table_size: "16777216",
29
+ net_buffer_length: "16384",
30
+ max_allowed_packet: "1048576",
31
+ thread_stack: "262144"
32
+ }
33
+ end
34
+
35
+ def create_result
36
+ Result.new
37
+ end
38
+
39
+ class Result
40
+ attr_reader :fields
41
+
42
+ def initialize
43
+ @data = [
44
+ ["first", "one"],
45
+ ["second", "two"],
46
+ ["third", "three"]
47
+ ]
48
+ @fields = ["order", "number"]
49
+ end
50
+
51
+ def first
52
+ @data.first
53
+ end
54
+
55
+ def each(params={})
56
+ @data.each do |d|
57
+ yield(d)
58
+ end
59
+ end
60
+ end
61
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mycmd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - i2bskn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-21 00:00:00.000000000 Z
11
+ date: 2013-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -105,8 +105,12 @@ files:
105
105
  - lib/mycmd/version.rb
106
106
  - mycmd.gemspec
107
107
  - spec/mycmd/cli_spec.rb
108
+ - spec/mycmd/clis/config_commands_spec.rb
109
+ - spec/mycmd/clis/settings_commands_spec.rb
108
110
  - spec/mycmd/configuration_spec.rb
111
+ - spec/mycmd/printer_spec.rb
109
112
  - spec/spec_helper.rb
113
+ - spec/support/spec_utils.rb
110
114
  homepage: https://github.com/i2bskn/mycmd
111
115
  licenses:
112
116
  - MIT
@@ -133,5 +137,9 @@ specification_version: 4
133
137
  summary: MySQL command line tool
134
138
  test_files:
135
139
  - spec/mycmd/cli_spec.rb
140
+ - spec/mycmd/clis/config_commands_spec.rb
141
+ - spec/mycmd/clis/settings_commands_spec.rb
136
142
  - spec/mycmd/configuration_spec.rb
143
+ - spec/mycmd/printer_spec.rb
137
144
  - spec/spec_helper.rb
145
+ - spec/support/spec_utils.rb