Sha256: 2b58413ad3b3ce49cb6ce0348841a1bced8fee792ddc9d1e54e5ede2ac739675

Contents?: true

Size: 615 Bytes

Versions: 12

Compression:

Stored size: 615 Bytes

Contents

# frozen_string_literal: true

require "json"
require "cgi"
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

12 entries across 12 versions & 1 rubygems

Version Path
plurimath-0.8.26 lib/plurimath/html/parser.rb
plurimath-0.8.25 lib/plurimath/html/parser.rb
plurimath-0.8.24 lib/plurimath/html/parser.rb
plurimath-0.8.23 lib/plurimath/html/parser.rb
plurimath-0.8.22 lib/plurimath/html/parser.rb
plurimath-0.8.21 lib/plurimath/html/parser.rb
plurimath-0.8.20 lib/plurimath/html/parser.rb
plurimath-0.8.19 lib/plurimath/html/parser.rb
plurimath-0.8.18 lib/plurimath/html/parser.rb
plurimath-0.8.17 lib/plurimath/html/parser.rb
plurimath-0.8.16 lib/plurimath/html/parser.rb
plurimath-0.8.15 lib/plurimath/html/parser.rb