class Stockroll::Commands
Constants
- CONF_FILE_PATH
Public Instance Methods
add(codes)
click to toggle source
# File lib/stockroll/commands.rb, line 24 def add(codes) is_valid , err_msg = self.check_codes(codes) if is_valid self.add_codes(codes) puts "Info: add code successfully.".yellow else err_msg.each do |msg| puts msg.red end end end
clear()
click to toggle source
# File lib/stockroll/commands.rb, line 43 def clear() self.remove_all_codes() puts "Info: clear all codes is successed.".yellow end
delete(code)
click to toggle source
# File lib/stockroll/commands.rb, line 37 def delete(code) self.remove_code(code) puts "Info: delete is ok.".yellow end
start()
click to toggle source
# File lib/stockroll/commands.rb, line 13 def start codes = self.get_stock_codes if codes.nil? or codes.strip.size == 0 isOk, cs = self.init_config Stockroll::Utils.run(cs) if isOk else Stockroll::Utils.run(codes) end end
Protected Instance Methods
add_codes(codes)
click to toggle source
# File lib/stockroll/commands.rb, line 55 def add_codes(codes) raise 'Please input stock codes.' if codes.nil? or codes.strip.size == 0 codes = codes.gsub(/(^\s+)|(\s+$)/,'') unless File.exists?(CONF_FILE_PATH) File.open(CONF_FILE_PATH,'w') do |f| f.write(codes) end else content = self.get_stock_codes if content.nil? or content.strip.size == 0 File.open(CONF_FILE_PATH,'w') do |f| f.write(codes) end else old_codes = content.split(',') added_codes = codes.split(',') new_codes = old_codes.concat(added_codes).uniq File.open(CONF_FILE_PATH,'w') do |f| f.write(new_codes.join(',')) end end end end
check_codes(codes)
click to toggle source
# File lib/stockroll/commands.rb, line 98 def check_codes(codes) is_valid = true err_msg = [] c_a = codes.split(',') c_a.each do |c| unless Stockroll::Utils.is_valid_stock_code(c) err_msg << "Error: invalid stock code: #{c}" is_valid = false end end [is_valid, err_msg] end
get_stock_codes()
click to toggle source
# File lib/stockroll/commands.rb, line 51 def get_stock_codes return nil unless File.exists?(CONF_FILE_PATH) return IO.read(CONF_FILE_PATH) end
init_config()
click to toggle source
# File lib/stockroll/commands.rb, line 110 def init_config print "Please input your stock codes: ".yellow cs = gets.chomp is_valid, err_msg = self.check_codes(cs) unless is_valid err_msg.each do |msg| puts msg.red end [false, ''] else self.add_codes(cs) [true, cs] end end
remove_all_codes()
click to toggle source
# File lib/stockroll/commands.rb, line 93 def remove_all_codes() File.open(CONF_FILE_PATH,'w') do |f| f.write('') end end
remove_code(code)
click to toggle source
# File lib/stockroll/commands.rb, line 79 def remove_code(code) old_codes = self.get_stock_codes unless old_codes.nil? n = [] old_codes.split(',').each do |c| if c.strip != code.strip n << c end end File.open(CONF_FILE_PATH,'w') do |f| f.write(n.join(',')) end end end