class ROdds::OddConverter::ImpliedProbabilityToAmerican

Attributes

implied_probability[R]

Public Class Methods

call(implied_probability) click to toggle source
# File lib/r_odds/odd_converters/implied_probability_to_american.rb, line 5
def self.call(implied_probability)
  new(implied_probability).call
end
new(implied_probability) click to toggle source
# File lib/r_odds/odd_converters/implied_probability_to_american.rb, line 9
def initialize(implied_probability)
  @implied_probability = implied_probability
end

Public Instance Methods

call() click to toggle source
# File lib/r_odds/odd_converters/implied_probability_to_american.rb, line 13
def call
  if implied_probability.greater_than_50_percent?
    convert_to_negative_american_odd
  else
    convert_to_positive_american_odd
  end
end

Private Instance Methods

convert_to_negative_american_odd() click to toggle source
# File lib/r_odds/odd_converters/implied_probability_to_american.rb, line 24
def convert_to_negative_american_odd
  value = (100 * implied_probability.fraction) / (1 - implied_probability.fraction)

  ROdds::Odd::American.new(value: -value)
end
convert_to_positive_american_odd() click to toggle source
# File lib/r_odds/odd_converters/implied_probability_to_american.rb, line 30
def convert_to_positive_american_odd
  value = ((100 * implied_probability.fraction) - 100) / -(implied_probability.fraction)

  ROdds::Odd::American.new(value: value)
end