Top Level Namespace
Defined Under Namespace
Modules: ZVK
Instance Method Summary collapse
-
#dlog(*args) ⇒ Object
мониторим наших овечек и записываем все их изменения/обновления: 1.
- #friends_diff(uid, friends, nfriends) ⇒ Object
- #info_diff(uid, info, ninfo) ⇒ Object
Instance Method Details
#dlog(*args) ⇒ Object
мониторим наших овечек и записываем все их изменения/обновления:
-
Подтягиваем из монги список друзей, профилей для мониторинга
-
Для всех получаем актуальные данные, сравниваем - если ==, то пропускаем
если расходятся - тогда обновляем запись в монге и пишем в лог инфу об изменении
15 16 17 |
# File 'lib/watch-ships.rb', line 15 def dlog(*args) STDERR.puts args end |
#friends_diff(uid, friends, nfriends) ⇒ Object
38 39 40 41 42 43 44 45 46 47 |
# File 'lib/watch-ships.rb', line 38 def friends_diff(uid, friends, nfriends) f, nf = Set.new(friends), Set.new(nfriends) return [] if (f==nf) diffs=[] # new friends diffs << (nf-f).map{|fuid| {at: Time.now.to_i, diff: 'new friends', friends: [uid, fuid]} } diffs << (f-nf).map{|fuid| {at: Time.now.to_i, diff: 'del friends', friends: [uid, fuid]} } diffs end |
#info_diff(uid, info, ninfo) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/watch-ships.rb', line 19 def info_diff(uid, info, ninfo) diffs=[] Set.new(infos.keys+ninfos.keys).each do |fld| ofval, nfval = infos[fld], ninfos[fld] next if ofval == nfval if not ofval # значит до обновления филда не было diffs << {at: Time.now.to_i, diff: 'new field', field: {fld=>nfval}} #ninfos_col.update({uid: uid}, {'$set'=>diffs.last}) # и в бд elsif not nfval # а теперь филд удалился diffs << {at: Time.now.to_i, diff: 'del field', field: {fld=>ofval}} #! в базе не оставляем #ninfos_col.update({uid: uid}, {'$set'=>diffs.last}) # и в бд elsif nfval != ofval diffs << {at: Time.now.to_i, diff: 'upd field', field: fld, vals: [ofval,nfval]} # филд+старое и новое end end diffs end |