From fbac3df19341042212116ef2162cae6dbba2dacf Mon Sep 17 00:00:00 2001 From: Adrien Waksberg Date: Sun, 16 Oct 2016 09:41:13 +0200 Subject: [PATCH] re add id for item --- lib/mpw/item.rb | 16 +++++++++++++--- lib/mpw/mpw.rb | 9 ++++++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/lib/mpw/item.rb b/lib/mpw/item.rb index 626db72..2e2459b 100644 --- a/lib/mpw/item.rb +++ b/lib/mpw/item.rb @@ -21,6 +21,7 @@ require 'i18n' module MPW class Item + attr_accessor :id attr_accessor :group attr_accessor :host attr_accessor :protocol @@ -40,9 +41,11 @@ class Item raise I18n.t('error.update.name_empty') end - if not options.has_key?(:id) or options[:id].to_s.empty? or not options.has_key?(:created) or 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 + @id = options[:id] @created = options[:created] @last_edit = options[:last_edit] options[:no_update_last_edit] = true @@ -74,6 +77,7 @@ class Item # Delete all data def delete + @id = nil @group = nil @host = nil @protocol = nil @@ -86,11 +90,17 @@ class Item end def empty? - return @host.to_s.empty? + return @id.to_s.empty? end def nil? return false end + + # Generate an random id + private + def generate_id + return ([*('A'..'Z'),*('a'..'z'),*('0'..'9')]).sample(16).join + end +end end -end diff --git a/lib/mpw/mpw.rb b/lib/mpw/mpw.rb index fe80f40..0c1609e 100644 --- a/lib/mpw/mpw.rb +++ b/lib/mpw/mpw.rb @@ -82,7 +82,8 @@ class MPW if not data.nil? and not data.empty? YAML.load(data).each_value do |d| - @data.push(Item.new(group: d['group'], + @data.push(Item.new(id: d['id'], + group: d['group'], host: d['host'], protocol: d['protocol'], user: d['user'], @@ -108,7 +109,8 @@ class MPW @data.each do |item| next if item.empty? - data.merge!("#{item.user}@#{item.host}" => {'group' => item.group, + data.merge!("#{item.user}@#{item.host}" => {'id' => item.id, + 'group' => item.group, 'host' => item.host, 'protocol' => item.protocol, 'user' => item.user, @@ -389,7 +391,8 @@ class MPW remote.list.each do |r| next if r.last_edit <= get_last_sync - item = Item.new(group: r.group, + item = Item.new(id: r.id, + group: r.group, host: r.host, protocol: r.protocol, user: r.user,