Sha256: eace7caf1792a88ccad2aefa9e85ba01d32ccf9711ffcdeafb98d83ae30f7ac0
Contents?: true
Size: 1.58 KB
Versions: 3
Compression:
Stored size: 1.58 KB
Contents
module Pione module Util # Evaluatable is a module for providing to ability to evaluate PIONE # expression string. module Evaluatable # Evaluate the string as a PIONE expression and get the result value as model object. # # @param str [String] # a PIONE expression string # @param domain_info [DomainInfo] # domain info # @return [BasicModel] # the result of evaluation def val!(str, domain_info=nil) domain_info = load_domain_info unless domain_info env = domain_info.env option = {package_name: env.current_package_id, filename: "pione-eval"} Lang::DocumentTransformer.new.apply( Lang::DocumentParser.new.expr.parse(str), option ).eval(env) end # Evaluate the string as a PIONE expression and get the result value as a textized string. # # @param str [String] # a PIONE expression string # @param domain_info [DomainInfo] # domain info # @return [String] # the result of evaluation as an embeddable string def val(str, domain_info=nil) domain_info = load_domain_info unless domain_info env = domain_info.env val!(str, domain_info).call_pione_method(env, "textize", []).first.value end private # Load default domain info file. def load_domain_info location = Location["./.domain.dump"] if location.exist? System::DomainInfo.read(location) else System::DomainInfo.new(Lang::Environment.new) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
pione-0.3.2 | lib/pione/util/evaluatable.rb |
pione-0.3.1 | lib/pione/util/evaluatable.rb |
pione-0.3.0 | lib/pione/util/evaluatable.rb |