Sha256: 2b2b7e027d49445a3d979bf422fdd1626a48917b6b03ae2940a1ce9468dfef87

Contents?: true

Size: 919 Bytes

Versions: 9

Compression:

Stored size: 919 Bytes

Contents

module Pione
  module Package
    # Package::Document provides functions that read PIONE document.
    class Document
      class << self
        # Load a PIONE rule document into the environment.
        def load(env, src, package_name, editor, tag, filename)
          _src = src.kind_of?(Location::DataLocation) ? src.read : src
          parse(_src, package_name, editor, tag, filename).eval(env)
        end

        # Parse a PIONE rule document as a string and return the package
        # context.
        def parse(src, package_name, editor, tag, filename)
          # make transformer options
          opt = {package_name: package_name, editor: editor, tag: tag, filename: filename}

          # parse the document
          stree = Lang::DocumentParser.new.parse(src)

          # model transformation
          return Lang::DocumentTransformer.new.apply(stree, opt)
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
pione-0.5.0 lib/pione/package/document.rb
pione-0.5.0.alpha.2 lib/pione/package/document.rb
pione-0.5.0.alpha.1 lib/pione/package/document.rb
pione-0.4.2 lib/pione/package/document.rb
pione-0.4.1 lib/pione/package/document.rb
pione-0.4.0 lib/pione/package/document.rb
pione-0.3.2 lib/pione/package/document.rb
pione-0.3.1 lib/pione/package/document.rb
pione-0.3.0 lib/pione/package/document.rb