Advertisement
Guest User

Untitled

a guest
Jul 30th, 2017
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. class GmailMessagesService < Service
  2. @@service_name = "GMail Messages"
  3.  
  4. has_settings :username, :password
  5.  
  6. def sync_labels
  7. unless gmail_labels_in_sync?
  8. GMailer.connect(:username=> self.username, :password=> self.password ) do |g|
  9. missing_gmail_labels.each { |missing_label| g.create_label(missing_label) }
  10. end
  11. end
  12. end
  13.  
  14. protected
  15.  
  16. def basecamp_projects
  17. session = self.account.basecamp_session
  18. session.projects.collect {|project| project.name}
  19. end
  20.  
  21. def gmail_labels
  22. labels = []
  23. GMailer.connect(:username=> self.username, :password=> self.password ) do |g|
  24. labels = g.labels
  25. end
  26. labels
  27. end
  28.  
  29. def gmail_labels_in_sync?
  30. basecamp_projects == gmail_labels
  31. end
  32.  
  33. def missing_gmail_labels
  34. basecamp_projects - gmail_labels
  35. end
  36.  
  37. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement