class Doneyo::Yo

Constants

CONFIG_FILE_NAME
ENDPOINT

Public Class Methods

new(user) click to toggle source
# File lib/doneyo/yo.rb, line 55
def initialize(user)
  @user = user
end
send() click to toggle source
# File lib/doneyo/yo.rb, line 9
def send
  begin
    puts new(username).send
  rescue
    $stderr.puts $!.to_s
    abort
  end
end

Private Class Methods

ask_user() click to toggle source
# File lib/doneyo/yo.rb, line 33
def ask_user
  print 'Your Yo username? : '
  create_config_file gets
end
config_file() click to toggle source
# File lib/doneyo/yo.rb, line 21
def config_file
  File.join(ENV['HOME'], CONFIG_FILE_NAME)
end
create_config_file(user) click to toggle source
# File lib/doneyo/yo.rb, line 38
def create_config_file(user)
  user = user.to_s.strip
  raise 'Username required' if user == ''

  open(config_file, 'w') do |f|
    f.write "[user]\nname = #{user}"
  end
end
parse_into_hash(string) click to toggle source
# File lib/doneyo/yo.rb, line 47
def parse_into_hash(string)
  Hash[
    string.split(/(\[[^\[\]]+\])/)[1..-1].each_slice(2).to_a
  ]
end
username() click to toggle source
# File lib/doneyo/yo.rb, line 25
def username
  ask_user unless File.exists?(config_file)

  hash = parse_into_hash(File.read(config_file))
  hash['[user]'] =~ /name\s*=\s(\S+)/
  $1
end

Public Instance Methods

send() click to toggle source
# File lib/doneyo/yo.rb, line 59
def send
  response = Net::HTTP.post_form(URI.parse(ENDPOINT), user: @user)
  response.body
end