Module: Oddx

Defined in:
lib/oddx.rb,
lib/oddx/odds.rb,
lib/oddx/version.rb,
lib/oddx/oddx_error.rb,
lib/oddx/decimal_odds.rb,
lib/oddx/moneyline_odds.rb,
lib/oddx/fractional_odds.rb,
lib/oddx/probability_odds.rb

Overview

The main Oddx driver

Defined Under Namespace

Classes: DecimalOdds, FractionalOdds, MoneylineOdds, Odds, OddxError, ProbabilityOdds

Constant Summary collapse

ODDS_FORMATS =

Convert sporting odds to any format

Example:

>> odds = Oddx.parse "3/1"
>> odds.moneyline
=> "+300"
>> odds.decimal
=> "4"
>> odds.probability
=> "25%"
>> odds.fractional
=> "3/1"

Supported formats:

1. moneyline (e.g. +300, -300)
2. fractional (e.g. 3/1, 1/5)
3. decimal (e.g. 1.2, 4)
4. probability (e.g. 95%, 30%)
[
  FractionalOdds,
  MoneylineOdds,
  DecimalOdds,
  ProbabilityOdds
]
VERSION =
"0.1.5"

Class Method Summary collapse

Class Method Details

.parse(odds) ⇒ Object

Raises:



39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/oddx.rb', line 39

def self.parse(odds)
  begin
    ODDS_FORMATS.each do |format|
      if odds.match format::REGEX
        return format.new(odds)
      end
    end
  rescue NoMethodError
    raise OddxError.new(msg: "Error parsing odds, provide as String to avoid ambiguity. e.g: '+4000'", odds: odds)
  end
  raise OddxError.new(odds: odds)
end