class Achievement
Constants
- MAX_LENGTH
- PADDING
- PADDING_LENGTH
- SPACE
Attributes
description[RW]
id[RW]
name[RW]
xp[RW]
Public Class Methods
locked_achievements(credentials)
click to toggle source
# File lib/minitest/naga/achievement.rb, line 23 def locked_achievements(credentials) options = { headers: { "Content-Type" => "application/json" } } url = NagaApiClient.BASE_URL + "achievements?" + "authentication_token=" + credentials[:authentication_token] + "&email=" + credentials[:email] response = HTTParty.get(url, options) locked_achievements = {} response.parsed_response["locked_achievements"].each do |locked_achievement| achievement = Achievement.new(locked_achievement["id"], locked_achievement["name"], locked_achievement["description"], locked_achievement["xp"], locked_achievement["link"], locked_achievement["comment"]) locked_achievements[achievement.name] = achievement end locked_achievements end
new(id, name, description, xp, link, comment)
click to toggle source
# File lib/minitest/naga/achievement.rb, line 12 def initialize(id, name, description, xp, link, comment) @id = id @name = name @description = description @xp = xp @link = link @comment = comment end
Public Instance Methods
to_s()
click to toggle source
# File lib/minitest/naga/achievement.rb, line 54 def to_s puts @id puts @name puts @description puts @xp puts @link puts @comment end
to_s_unlock()
click to toggle source
# File lib/minitest/naga/achievement.rb, line 63 def to_s_unlock puts SPACE * MAX_LENGTH puts PADDING + "Achievement unlocked!".ljust(MAX_LENGTH-PADDING_LENGTH).colorize(:yellow).colorize( :background => :black ) puts PADDING + @name.ljust(MAX_LENGTH-PADDING_LENGTH).colorize(:yellow).colorize( :background => :black ) description = "> " + @description puts PADDING + description.ljust(MAX_LENGTH-PADDING_LENGTH).colorize(:yellow).colorize( :background => :black ) xp = "> " + @xp.to_s + " XP" if @comment && !@link puts PADDING + @comment.ljust(MAX_LENGTH-PADDING_LENGTH).colorize(:yellow).colorize( :background => :black ) elsif @link && @comment puts PADDING + @link.ljust(MAX_LENGTH-PADDING_LENGTH).colorize(:yellow).colorize( :background => :black ) puts PADDING + @comment.ljust(MAX_LENGTH-PADDING_LENGTH).colorize(:yellow).colorize( :background => :black ) end puts PADDING + xp.ljust(MAX_LENGTH-PADDING_LENGTH).colorize(:yellow).colorize( :background => :black ) puts SPACE * MAX_LENGTH end
unlock(credentials)
click to toggle source
public instance methods
# File lib/minitest/naga/achievement.rb, line 37 def unlock(credentials) url = NagaApiClient.BASE_URL + "achievements/unlock" options = { headers: { "Content-Type" => "application/x-www-form-urlencoded" } } options[:body] = "email=" + credentials[:email] + "&authentication_token=" + credentials[:authentication_token] + "&achievement_id=" + self.id.to_s response = HTTParty.post(url, options) parsed_response = response.parsed_response if parsed_response["error"] STDERR.puts(("Error: " + parsed_response["error"]).colorize(:red)) else self.to_s_unlock if parsed_response["level_up"] puts "You just grew a level!".colorize(:black).colorize( :background => :green ) puts "You are now Level #{parsed_response["level"]["number"].to_s} and have #{parsed_response["level"]["xp"].to_s} XP." end end end