Sha256: 52141add934e4a12c4bf758dce3af9195e33d210752f041b38eb433544a8d215

Contents?: true

Size: 820 Bytes

Versions: 7

Compression:

Stored size: 820 Bytes

Contents

module RubyHackernews

  class LoginService
    include MechanizeContext

    def login(username, password)
      page = agent.get(ConfigurationService.base_url)
      login_url = page.search(".pagetop/a").last['href'].sub("/","")
      login_page = agent.get(ConfigurationService.base_url + login_url)
      form = login_page.forms.first
      form.u = username
      form.p = password
      page = form.submit
      return page.title != nil
    end

    def logout
      require_authentication
      page = agent.get(ConfigurationService.base_url)
      login_url = page.search(".pagetop/a").last['href'].sub("/","")
      logout_page = agent.get(ConfigurationService.base_url + login_url)
      agent.cookie_jar.jar.clear
      return logout_page.search(".pagetop/a").last.inner_html == "login"
    end

  end

end  

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ruby-hackernews-1.3.7 lib/ruby-hackernews/services/login_service.rb
ruby-hackernews-1.3.6 lib/ruby-hackernews/services/login_service.rb
ruby-hackernews-1.3.5 lib/ruby-hackernews/services/login_service.rb
ruby-hackernews-1.3.3 lib/ruby-hackernews/services/login_service.rb
ruby-hackernews-1.3.2 lib/ruby-hackernews/services/login_service.rb
ruby-hackernews-1.3.1 lib/ruby-hackernews/services/login_service.rb
ruby-hackernews-1.3.0 lib/ruby-hackernews/services/login_service.rb