class SlackInvitation::Invitator
Attributes
admin_email[W]
admin_password[W]
team[W]
Public Class Methods
new()
click to toggle source
# File lib/slack_invitation/invitator.rb, line 11 def initialize @driver = nil @headless = nil end
Public Instance Methods
config(team, email, password)
click to toggle source
# File lib/slack_invitation/invitator.rb, line 41 def config(team, email, password) @team = team @admin_email = email @admin_password = password end
headless_destroy()
click to toggle source
# File lib/slack_invitation/invitator.rb, line 31 def headless_destroy @headless.destroy end
headless_start()
click to toggle source
# File lib/slack_invitation/invitator.rb, line 26 def headless_start @headless = Headless.new @headless.start end
invite(email)
click to toggle source
# File lib/slack_invitation/invitator.rb, line 35 def invite(email) login send_invitation_mail(email) test_success end
quit()
click to toggle source
# File lib/slack_invitation/invitator.rb, line 22 def quit @driver.quit end
start()
click to toggle source
# File lib/slack_invitation/invitator.rb, line 16 def start @driver = Selenium::WebDriver.for :firefox target_size = Selenium::WebDriver::Dimension.new(1024, 768) @driver.manage.window.size = target_size end
Private Instance Methods
invitation_url()
click to toggle source
# File lib/slack_invitation/invitator.rb, line 86 def invitation_url "https://#{ @team }.slack.com/admin/invites/full" end
login()
click to toggle source
# File lib/slack_invitation/invitator.rb, line 49 def login @driver.navigate.to slack_url @driver.find_element(:id, 'email').send_keys(@admin_email) @driver.find_element(:id, 'password').send_keys(@admin_password) @driver.find_element(:id, 'signin_btn').click true rescue Selenium::WebDriver::Error::NoSuchElementError false end
send_invitation_mail(email)
click to toggle source
# File lib/slack_invitation/invitator.rb, line 59 def send_invitation_mail(email) return false if email !~ /@/ tries ||= 0 @driver.navigate.to invitation_url wait tries @driver.find_element(:class, 'email_field').send_keys(email) @driver.find_element(:class, 'api_send_invites').click wait tries rescue Selenium::WebDriver::Error::NoSuchElementError wait tries retry unless (tries += 1) == 5 return false end
slack_url()
click to toggle source
# File lib/slack_invitation/invitator.rb, line 82 def slack_url "http://#{ @team }.slack.com/" end
test_success()
click to toggle source
# File lib/slack_invitation/invitator.rb, line 74 def test_success error = @driver.find_element(:class, 'error_msg').displayed? success = @driver.find_element(:class, 'seafoam_green').displayed? return true if success return false if error end
wait(try = nil)
click to toggle source
# File lib/slack_invitation/invitator.rb, line 90 def wait(try = nil) sleep(3) unless try sleep(0.5 + try*1) if try end