ExOsrsApi.Models.SkillEntry (ExOsrsApi v0.1.0) View Source

SkillEntry

Represents Highscore skill data (attack, defence, strength etc..) entry

Link to this section Summary

Functions

Check if ExOsrsApi.Models.SkillEntry has no data from OSRS highscore API (if rank is too low OSRS api will return "-1,-1" in level and rank fields)

Creates new %ExOsrsApi.Models.SkillEntry{} from "CSV" like string seperated by commas ","

Link to this section Types

Specs

t() :: %ExOsrsApi.Models.SkillEntry{
  empty: boolean(),
  experience: 0..200_000_000 | nil,
  level: 0..99 | nil,
  rank: 1..2_000_000 | nil,
  skill: atom()
}

Link to this section Functions

Specs

is_empty?(t()) :: boolean()

Check if ExOsrsApi.Models.SkillEntry has no data from OSRS highscore API (if rank is too low OSRS api will return "-1,-1" in level and rank fields)

Examples:

iex(1)> data = %ExOsrsApi.Models.SkillEntry{
  empty: true,
  experience: nil,
  level: nil,
  rank: nil,
  skill: :magic
}
iex(2)> ExOsrsApi.Models.SkillEntry.is_empty?(data)
true

iex(1)> {:ok, data} = ExOsrsApi.Models.SkillEntry.new_from_line(:attack, "4719223,2,102")
{:ok,
%ExOsrsApi.Models.SkillEntry{
  empty: false,
  experience: 102,
  level: 2,
  rank: 4719223,
  skill: :attack
}}
iex(2)> ExOsrsApi.Models.SkillEntry.is_empty?(data)
false
Link to this function

new_from_line(skill, line)

View Source

Specs

new_from_line(atom(), String.t()) ::
  {:error, ExOsrsApi.Errors.Error.t()} | {:ok, t()}

Creates new %ExOsrsApi.Models.SkillEntry{} from "CSV" like string seperated by commas ","

Examples:

iex> ExOsrsApi.Models.SkillEntry.new_from_line(:attack, "4719223,2,102")
{:ok,
%ExOsrsApi.Models.SkillEntry{
  empty: false,
  experience: 102,
  level: 2,
  rank: 4719223,
  skill: :attack
}}

iex> ExOsrsApi.Models.SkillEntry.new_from_line(:defence, "2,102")
{:error, "Error parsing SkillEntry (skill: defence)"}

iex>ExOsrsApi.Models.SkillEntry.new_from_line(:defence, "invalid,input")
{:error, "Error parsing SkillEntry (skill: defence)"}

iex> ExOsrsApi.Models.SkillEntry.new_from_line(:magic, "-1,-1")
{:ok,
%ExOsrsApi.Models.SkillEntry{
  empty: true,
  experience: nil,
  level: nil,
  rank: nil,
  skill: :magic
}}