Class: MGit::MGitConfig
- Inherits:
-
Object
- Object
- MGit::MGitConfig
- Defined in:
- lib/m-git/foundation/mgit_config.rb
Constant Summary collapse
- CONFIG_KEY =
{ :managegit => { :info => '是否将.git实体托管给MGit,托管后仓库内的.git目录是软链 (true/false)', :type => 'Boolean', :default => true }, :maxconcurrentcount => { :info => 'MGit操作的最大并发数? (Integer)', :type => 'Integer', :default => MGit::Utils.logical_cpu_num }, :syncworkspace => { :info => '是否按照配置表同步工作区? (true/false)', :type => 'Boolean', :default => true }, :savecache => { :info => '同步工作区时回收的仓库是否保留到缓存中? (true/false)', :type => 'Boolean', :default => false }, :logenable => { :info => '是否开启日志打印,操作日志会收集到.mgit/log目录下? (true/false)', :type => 'Boolean', :default => true }, :loglevel => { :info => '日志的打印级别, DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3, FATAL = 4', :type => 'Integer', :default => 1 } }
Class Method Summary collapse
-
.dump_config(root) ⇒ Object
列出所有配置.
-
.query(root) ⇒ Object
查询配置.
-
.query_with_key(root, key_symbol) ⇒ Object
Description of #query_with_key.
-
.to_suitable_value_for_key(root, key, value) ⇒ Object
验证一个value的值是否符合key的类型.
-
.update(root) {|config| ... } ⇒ Object
更新配置.
Class Method Details
.dump_config(root) ⇒ Object
列出所有配置
120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/m-git/foundation/mgit_config.rb', line 120 def dump_config(root) query(root) { |config| CONFIG_KEY.each_with_index { |(key, value_dict), index| line = "#{Output.("[#{value_dict[:info]}]")}\n#{key.to_s}: " set_value = config[key.to_s] if !set_value.nil? line += "#{set_value}\n\n" else line += "#{value_dict[:default]}\n\n" end puts line } } end |
.query(root) ⇒ Object
查询配置
49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/m-git/foundation/mgit_config.rb', line 49 def query(root) config, error = __load_file(root) if !error.nil? raise Error.new(error) return elsif block_given? # 如果文件存在但无内容,此时读取到的数据类型是FalseClass,此处统一规范化 config = {} if !config.is_a?(Hash) yield(config) end end |
.query_with_key(root, key_symbol) ⇒ Object
Description of #query_with_key
70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/m-git/foundation/mgit_config.rb', line 70 def query_with_key(root, key_symbol) query(root) { |config| if !config[key_symbol.to_s].nil? return config[key_symbol.to_s] elsif !CONFIG_KEY[key_symbol].nil? return CONFIG_KEY[key_symbol][:default] else return nil end } end |
.to_suitable_value_for_key(root, key, value) ⇒ Object
验证一个value的值是否符合key的类型
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 |
# File 'lib/m-git/foundation/mgit_config.rb', line 145 def to_suitable_value_for_key(root, key, value) return unless CONFIG_KEY.keys.include?(key.to_sym) return nil if !value.is_a?(String) key_dict = CONFIG_KEY[key.to_sym] set_value = nil # 是否是数字 if key_dict[:type] == 'Integer' && value.to_i.to_s == value set_value = value.to_i # 是否是true elsif key_dict[:type] == 'Boolean' && value.to_s.downcase == 'true' set_value = true # 是否是false elsif key_dict[:type] == 'Boolean' && value.to_s.downcase == 'false' set_value = false # 是否是其他字符串 elsif key_dict[:type] == 'String' && value.is_a?(String) set_value = value end set_value end |
.update(root) {|config| ... } ⇒ Object
更新配置
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/m-git/foundation/mgit_config.rb', line 88 def update(root) # 加载配置 config, error = __load_file(root) if !error.nil? raise Error.new(error) return end # 如果文件存在但无内容,此时读取到的数据类型是FalseClass,此处统一规范化 config = {} if !config.is_a?(Hash) # 更新 yield(config) if block_given? # 更新完后校验格式 if !config.is_a?(Hash) raise Error.new("工具配置更新数据格式错误,更新失败!") return end # 写回配置 error = write_to_file(root, config) if !error.nil? raise Error.new(error) return end end |