Sha256: e1110a6fe21ce0092e0825dcc14217b32e1d815c1d08d57089cb6898349ceb9c

Contents?: true

Size: 599 Bytes

Versions: 43

Compression:

Stored size: 599 Bytes

Contents

# frozen_string_literal: true

require "json"
require_relative "parse"
require_relative "constants"
require_relative "transform"
module Plurimath
  class Html
    class Parser
      attr_accessor :text

      def initialize(text)
        @text = CGI.unescapeHTML(text)
      end

      def parse
        nodes = Parse.new.parse(text)
        nodes = JSON.parse(nodes.to_json, symbolize_names: true)
        transformed_tree = Transform.new.apply(nodes)
        return transformed_tree if transformed_tree.is_a?(Math::Formula)

        Math::Formula.new(transformed_tree)
      end
    end
  end
end

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
plurimath-0.8.14 lib/plurimath/html/parser.rb
plurimath-0.8.13 lib/plurimath/html/parser.rb
plurimath-0.8.12 lib/plurimath/html/parser.rb
plurimath-0.8.11 lib/plurimath/html/parser.rb
plurimath-0.8.10 lib/plurimath/html/parser.rb
plurimath-0.8.9 lib/plurimath/html/parser.rb
plurimath-0.8.8 lib/plurimath/html/parser.rb
plurimath-0.8.7 lib/plurimath/html/parser.rb
plurimath-0.8.6 lib/plurimath/html/parser.rb
plurimath-0.8.5 lib/plurimath/html/parser.rb
plurimath-0.8.4 lib/plurimath/html/parser.rb
plurimath-0.8.2 lib/plurimath/html/parser.rb
plurimath-0.8.1 lib/plurimath/html/parser.rb
plurimath-0.8.0 lib/plurimath/html/parser.rb
plurimath-0.7.2 lib/plurimath/html/parser.rb
plurimath-0.7.1 lib/plurimath/html/parser.rb
plurimath-0.7.0 lib/plurimath/html/parser.rb
plurimath-0.6.0 lib/plurimath/html/parser.rb
plurimath-0.5.0 lib/plurimath/html/parser.rb
plurimath-0.4.4 lib/plurimath/html/parser.rb