BigKeeper/big-keeper

View on GitHub
lib/big_keeper/command/release.rb

Summary

Maintainability
D
1 day
Test Coverage
require 'big_keeper/command/release/home'
require 'big_keeper/command/release/module'
require 'big_keeper/util/leancloud_logger'
require 'big_keeper/command/release/start'
require 'big_keeper/command/release/finish'
require 'big_keeper/util/command_line_util'
 
module BigKeeper
Method `release_command` has a Cognitive Complexity of 44 (exceeds 5 allowed). Consider refactoring.
Method `release_command` has 79 lines of code (exceeds 25 allowed). Consider refactoring.
def self.release_command
desc 'Gitflow release operations'
command :release do |c|
 
c.desc 'release project start'
Similar blocks of code found in 2 locations. Consider refactoring.
c.command :start do |start|
start.action do |global_options, options, args|
path = File.expand_path(global_options[:path])
version = global_options[:ver]
user = global_options[:user].gsub(/[^0-9A-Za-z]/, '').downcase
modules = args[(0...args.length)] if args.length > 0
release_start(path, version, user, modules)
end
end
 
c.desc 'release project finish'
Similar blocks of code found in 2 locations. Consider refactoring.
c.command :finish do |finish|
finish.action do |global_options, options, args|
path = File.expand_path(global_options[:path])
version = global_options[:ver]
user = global_options[:user].gsub(/[^0-9A-Za-z]/, '').downcase
modules = args[(0...args.length)] if args.length > 0
release_finish(path, version, user, modules)
end
end
 
c.desc 'Release home project operations'
c.command :home do |home|
home.desc 'Start release home project'
home.command :start do |start|
start.action do |global_options, options, args|
path = File.expand_path(global_options[:path])
version = global_options[:ver]
user = global_options[:user].gsub(/[^0-9A-Za-z]/, '').downcase
LeanCloudLogger.instance.set_command("release/home/start")
 
help_now!('user name is required') if user and user.empty?
raise Logger.error("release version is required") if version == nil
release_home_start(path, version, user)
end
end
 
home.desc 'Finish release home project'
home.command :finish do |finish|
finish.action do |global_options, options, args|
path = File.expand_path(global_options[:path])
version = global_options[:ver]
LeanCloudLogger.instance.set_command("release/home/finish")
 
raise Logger.error("release version is required") if version == nil
release_home_finish(path, version)
end
end
end
 
c.desc 'release module'
c.switch [:i,:ignore]
c.command :module do |m|
m.desc 'Start release module project'
Similar blocks of code found in 2 locations. Consider refactoring.
m.command :start do |start|
start.action do |global_options, options, args|
path = File.expand_path(global_options[:path])
version = global_options[:ver]
user = global_options[:user].gsub(/[^0-9A-Za-z]/, '').downcase
LeanCloudLogger.instance.set_command("release/module/start")
 
help_now!('module name is required') if args.length != 1
raise Logger.error("release version is required") if version == nil
module_name = args[0]
release_module_start(path, version, user, module_name, options[:ignore])
end
end
 
m.desc 'finish release module project'
m.switch [:s,:spec]
Similar blocks of code found in 2 locations. Consider refactoring.
m.command :finish do |finish|
finish.action do |global_options, options, args|
path = File.expand_path(global_options[:path])
version = global_options[:ver]
user = global_options[:user].gsub(/[^0-9A-Za-z]/, '').downcase
LeanCloudLogger.instance.set_command("release/module/finish")
 
help_now!('module name is required') if args.length != 1
raise Logger.error("release version is required") if version == nil
module_name = args[0]
release_module_finish(path, version, user, module_name, options[:spec])
end
end
end
end
end
end