Sha256: f859c03ab797c2c86d7bd9f620bf830caa7d3901c35193992f14667dd668d302
Contents?: true
Size: 1.75 KB
Versions: 2
Compression:
Stored size: 1.75 KB
Contents
# frozen_string_literal: true require_relative "unicode" require_relative "asciimath" require_relative "omml" require_relative "mathml" require_relative "html" require_relative "latex" require_relative "unitsml" require_relative "math/base" require_relative "math/number" require_relative "math/symbol" require_relative "math/unicode" require_relative "math/formula" require_relative "math/function" require_relative "asciimath/parser" require_relative "mathml/parser" require_relative "latex/parser" require_relative "html/parser" require_relative "omml/parser" require_relative "utility" require "ox" Ox.default_options = { encoding: "UTF-8" } module Plurimath module Math class Error < StandardError; end VALID_TYPES = { omml: Omml, html: Html, latex: Latex, mathml: Mathml, unitsml: Unitsml, unicode: Unicode, asciimath: Asciimath, }.freeze def parse(text, type) raise_error! unless valid_type?(type) klass = VALID_TYPES[type.to_sym] klass.new(text).to_formula rescue => ee message = <<~MESSAGE An error occurred while processing the input. Please check your input to ensure it is valid or open an issue on Github If you believe the input is correct. ---- INPUT START ---- #{text} ---- INPUT END ---- MESSAGE raise Math::Error.new(message), cause: nil end private def raise_error! raise Plurimath::Math::Error, Error.new("Type is not valid, "\ "please enter string or symbol") end def valid_type?(type) (type.is_a?(::Symbol) || type.is_a?(String)) && VALID_TYPES.key?(type.to_sym) end module_function :parse, :raise_error!, :valid_type? end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
plurimath-0.3.0 | lib/plurimath/math.rb |
plurimath-0.2.9 | lib/plurimath/math.rb |