Module: StepSequencer::Refinements::StringRationalEval

Defined in:
lib/step_sequencer/refinements.rb

Overview

String#rational_eval


a method I’ve written to help work with rational numbers. It evals a string containing math, but wraps all number values in a call It raises an error if the result is not a rational

Instance Method Summary collapse

Instance Method Details

#rational_evalObject



58
59
60
61
62
63
64
65
# File 'lib/step_sequencer/refinements.rb', line 58

def rational_eval
  result = eval "    Rational(\#{\n      gsub(/\\d[\\d\\.\\_]*/) { |str| \"Rational(\#{str})\"}\n    })\n  RB\n  result.is_a?(Rational) ? result : raise(\"\#{result} is not Rational\")\nend\n"