class Oddsmaker::Odd::Fractional

Fractional odds express the fraction of a dollar that would be won from a $1 bet.

Public Class Methods

new(value, id = nil) click to toggle source
# File lib/oddsmaker/odd/fractional.rb, line 6
def initialize(value, id = nil)
  @id    = id || value
  @value = value.is_a?(String) ? value.to_r : value.rationalize
end

Public Instance Methods

american() click to toggle source

Convert to American odds, returning a new object.

@return [American]

# File lib/oddsmaker/odd/fractional.rb, line 21
def american
  @american ||= implied_probability.american
end
decimal() click to toggle source

Convert to decimal odds, returning a new object.

@return [Decimal]

# File lib/oddsmaker/odd/fractional.rb, line 28
def decimal
  @decimal ||= implied_probability.decimal
end
fractional() click to toggle source

Returns self. This creates a consistent API for all odds.

@return [self]

# File lib/oddsmaker/odd/fractional.rb, line 14
def fractional
  self
end

Private Instance Methods

calculate_probability() click to toggle source

Calculate implied probability of an odd.

@return [Float]

# File lib/oddsmaker/odd/fractional.rb, line 42
def calculate_probability
  @value.denominator.fdiv(@value.denominator + @value.numerator)
end
calculate_profit(amount) click to toggle source

Calculate profit for a wager.

@return [Float, Integer]

# File lib/oddsmaker/odd/fractional.rb, line 49
def calculate_profit(amount)
  @value * amount
end
type() click to toggle source

Allows for implied probability to create a vigged/unvigged odd and convert it back to source format.

# File lib/oddsmaker/odd/fractional.rb, line 35
def type
  :fractional
end