diff --git a/lib/Item.rb b/lib/Item.rb index b6964be..ffd5f93 100644 --- a/lib/Item.rb +++ b/lib/Item.rb @@ -24,8 +24,7 @@ module MPW attr_accessor :created def initialize(options={}) - if not defined?(options[:id]) or not options[:id].to_s.empty? or - not defined?(options[:created]) or not options[:created].to_s.empty? + if not options.has_key?(:id) or options[:id].to_s.empty? or not options.has_key?(:created) or options[:created].to_s.empty? @id = generate_id @created = Time.now.to_i else @@ -37,19 +36,19 @@ module MPW end def update(options={}) - if defined?(options[:name]) and options[:name].to_s.empty? + if options.has_key?(:name) and options[:name].to_s.empty? @error_msg = I18n.t('error.update.name_empty') return false end - @name = options[:name] if defined?(options[:name]) - @group = options[:group] if defined?(options[:group]) - @host = options[:host] if defined?(options[:host]) - @protocol = options[:protocol] if defined?(options[:protocol]) - @user = options[:user] if defined?(options[:user]) - @password = options[:password] if defined?(options[:password]) - @port = options[:port].to_i if defined?(options[:port]) - @comment = options[:comment] if defined?(options[:comment]) + @name = options[:name] if options.has_key?(:name) + @group = options[:group] if options.has_key?(:group) + @host = options[:host] if options.has_key?(:host) + @protocol = options[:protocol] if options.has_key?(:protocol) + @user = options[:user] if options.has_key?(:user) + @password = options[:password] if options.has_key?(:password) + @port = options[:port].to_i if options.has_key?(:port) and not options[:port].to_s.empty? + @comment = options[:comment] if options.has_key?(:comment) @last_edit = Time.now.to_i return true @@ -63,16 +62,6 @@ module MPW return false end - private - def set_name(name) - if name.to_s.empty? - return false - end - - @name = name - return true - end - private def generate_id return ([*('A'..'Z'),*('a'..'z'),*('0'..'9')]).sample(16).join diff --git a/lib/MPW.rb b/lib/MPW.rb index 9401382..9bb0e1a 100644 --- a/lib/MPW.rb +++ b/lib/MPW.rb @@ -40,7 +40,7 @@ module MPW group: d['group'], host: d['host'], protocol: d['protocol'], - user: d['login'], + user: d['user'], password: d['password'], port: d['port'], comment: d['comment'], @@ -62,9 +62,10 @@ module MPW # @rtrn: true if the file has been encrypted def encrypt FileUtils.cp(@file_gpg, "#{@file_gpg}.bk") if File.exist?(@file_gpg) + + data_to_encrypt = {} @data.each do |item| - puts item.class next if item.empty? data_to_encrypt.merge!(item.id => {'id' => item.id, diff --git a/lib/UI/Cli.rb b/lib/UI/Cli.rb index 4b468b0..8636c69 100644 --- a/lib/UI/Cli.rb +++ b/lib/UI/Cli.rb @@ -233,7 +233,7 @@ class Cli options[:host] = ask(I18n.t('form.add.server')).to_s options[:protocol] = ask(I18n.t('form.add.protocol')).to_s options[:user] = ask(I18n.t('form.add.login')).to_s - options[:passwd] = ask(I18n.t('form.add.password')).to_s + options[:password] = ask(I18n.t('form.add.password')).to_s options[:port] = ask(I18n.t('form.add.port')).to_s options[:comment] = ask(I18n.t('form.add.comment')).to_s @@ -246,7 +246,7 @@ class Cli puts "#{I18n.t('display.error')} #12: #{@mpw.error_msg}".red end else - puts "#{I18n.t('display.error')} #13: #{@mpw.error_msg}".red + puts "#{I18n.t('display.error')} #13: #{item.error_msg}".red end end @@ -255,19 +255,23 @@ class Cli def update(id) item = @mpw.search_by_id(id) - if not row.empty? + if not item.nil? + options = {} + puts I18n.t('form.update.title') puts '--------------------' - name = ask(I18n.t('form.update.name' , name: item.name)).to_s - group = ask(I18n.t('form.update.group' , group: item.group)).to_s - server = ask(I18n.t('form.update.server' , server: item.host)).to_s - protocol = ask(I18n.t('form.update.protocol', protocol: item.protocol)).to_s - login = ask(I18n.t('form.update.login' , login: item.user)).to_s - passwd = ask(I18n.t('form.update.password')).to_s - port = ask(I18n.t('form.update.port' , port: item.port)).to_s - comment = ask(I18n.t('form.update.comment' , comment: item.comment)).to_s + options[:name] = ask(I18n.t('form.update.name' , name: item.name)).to_s + options[:group] = ask(I18n.t('form.update.group' , group: item.group)).to_s + options[:host] = ask(I18n.t('form.update.server' , server: item.host)).to_s + options[:protocol] = ask(I18n.t('form.update.protocol', protocol: item.protocol)).to_s + options[:user] = ask(I18n.t('form.update.login' , login: item.user)).to_s + options[:password] = ask(I18n.t('form.update.password')).to_s + options[:port] = ask(I18n.t('form.update.port' , port: item.port)).to_s + options[:comment] = ask(I18n.t('form.update.comment' , comment: item.comment)).to_s + + options.delete_if { |k,v| v.empty? } - if @mpw.update(name, group, server, protocol, login, passwd, port, comment, id) + if item.update(options) if @mpw.encrypt sync puts "#{I18n.t('form.update.valid')}".green @@ -275,7 +279,7 @@ class Cli puts "#{I18n.t('display.error')} #14: #{@mpw.error_msg}".red end else - puts "#{I18n.t('display.error')} #15: #{@mpw.error_msg}".red + puts "#{I18n.t('display.error')} #15: #{item.error_msg}".red end else puts I18n.t('display.nothing')