Sha256: 158cf51a104993e28fa8fdee08f48b91bd144a5aee178f849bfbcb46f5d1f871

Contents?: true

Size: 937 Bytes

Versions: 4

Compression:

Stored size: 937 Bytes

Contents

# frozen_string_literal: true

require 'net/http'
require 'uri'

class FetchEmails
  def initialize
    @email_list_url = 'https://docs.google.com/spreadsheets/d/e/2PACX-1vSqPiedBeGk0N75cxZApEohj5LrIWlHWUxTjfhkmK9aOsUltcqCn24sD1haIasUjVfd8UT8VdUKUc4h/pub?gid=703649940&single=true&output=csv'
  end

  def fetch_emails
    response = get_emails(@email_list_url)
    response = handle_redirection(response) if response.is_a?(Net::HTTPRedirection)
    format_response(response)
  end

  def run(_args)
    say '# Here is a complete list of Renuo email addresses'.colorize :green
    say fetch_emails.join("\n")
  end

  private

  def get_emails(url)
    uri = URI.parse(url)
    Net::HTTP.get_response(uri)
  end

  def handle_redirection(response)
    location = response['location']
    get_emails(location)
  end

  def format_response(response)
    response.body.gsub("\r\n", "\n").split("\n").reject { |add| add == 'n/a' }
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
renuo-cli-4.5.0 lib/renuo/cli/app/fetch_emails.rb
renuo-cli-4.3.0 lib/renuo/cli/app/fetch_emails.rb
renuo-cli-4.2.1 lib/renuo/cli/app/fetch_emails.rb
renuo-cli-4.2.0 lib/renuo/cli/app/fetch_emails.rb