class ROdds::OddStandardizer::ImpliedProbability

Attributes

odd[R]

Public Class Methods

call(params) click to toggle source
# File lib/r_odds/odd_standardizers/implied_probability.rb, line 5
def self.call(params)
  new(params).call
end
new(params) click to toggle source
# File lib/r_odds/odd_standardizers/implied_probability.rb, line 9
def initialize(params)
  @odd = params[:odd]
end

Public Instance Methods

call() click to toggle source
# File lib/r_odds/odd_standardizers/implied_probability.rb, line 13
def call
  if odd_is_a_probability_fraction
    rational_odd = odd.to_r

    ROdds::Odd::ImpliedProbability.new(
      numerator: rational_odd.numerator,
      denominator: rational_odd.denominator
    )
  elsif odd_is_a_percentage
    rational_odd = odd.to_r

    ROdds::Odd::ImpliedProbability.new(
      numerator: rational_odd,
      denominator: Rational(100)
    )
  end
end

Private Instance Methods

odd_is_a_percentage() click to toggle source
# File lib/r_odds/odd_standardizers/implied_probability.rb, line 38
def odd_is_a_percentage
  /\d*.?\d++%/.match?(odd)
end
odd_is_a_probability_fraction() click to toggle source
# File lib/r_odds/odd_standardizers/implied_probability.rb, line 34
def odd_is_a_probability_fraction
  /\d+\/\d+/.match?(odd)
end