module Josef::Remote
Public Instance Methods
remote()
click to toggle source
# File lib/josef/remote.rb, line 9 def remote @_remote ||= remote! end
remote!()
click to toggle source
# File lib/josef/remote.rb, line 13 def remote! groups.map do | group | { group_mail_address: group.email, members: member_mail_addreses(group) } end end
remote_apply(local)
click to toggle source
# File lib/josef/remote.rb, line 23 def remote_apply(local) remote_diff(remote, local) local.each do | local_group | next unless should_be_tareget?(local_group) if be_create?(local_group) create_group(local_group[:group_mail_address]) local_group[:members].each do | member | add_member(local_group[:group_mail_address], member) end elsif changed?(local_group) remote_members = remote.find{|g| g[:group_mail_address] == local_group[:group_mail_address]}[:members] add = local_group[:members] - remote_members del = remote_members - local_group[:members] add.each do | add_member_mail_address | add_member(local_group[:group_mail_address], add_member_mail_address) end del.each do | del_member_mail_address | del_member(local_group[:group_mail_address], del_member_mail_address) end end end remote.each do | remote_group | next unless should_be_tareget?(remote_group) if be_delete?(remote_group) delete_group(remote_group[:group_mail_address]) end end end
remote_dump()
click to toggle source
# File lib/josef/remote.rb, line 19 def remote_dump YAML.dump(remote.map{|h| h.deep_stringify_keys}, File.open('dump.yml', 'w')) end