Class: Puppet::Pops::Model::Factory
- Inherits:
-
Object
- Object
- Puppet::Pops::Model::Factory
show all
- Defined in:
- lib/puppet/pops/model/factory.rb
Overview
TODO:
All those uppercase methods … they look bad in one way, but stand out nicely in the grammar… decide if they should change into lower case names (some of the are lower case)…
Factory is a helper class that makes construction of a Pops Model much more convenient. It can be viewed as a small internal DSL for model constructions. For usage see tests using the factory.
Constant Summary
collapse
- Model =
Puppet::Pops::Model
- @@build_visitor =
Shared build_visitor, since there are many instances of Factory being used
Puppet::Pops::Visitor.new(self, "build")
Instance Attribute Summary collapse
Class Method Summary
collapse
-
.ATTR(name, type_expr = nil) ⇒ Object
-
.ATTRIBUTE_OP(name, op, expr) ⇒ Object
-
.block(*args) ⇒ Object
-
.block_or_expression(*args) ⇒ Object
Builds a BlockExpression if args size > 1, else the single expression/value in args.
-
.CALL_METHOD(functor, argument_list) ⇒ Object
-
.CALL_NAMED(name, rval_required, argument_list) ⇒ Object
-
.CASE(test_e, *options) ⇒ Object
-
.COLLECT(type_expr, query_expr, attribute_operations) ⇒ Object
-
.DEFINITION(name, parameters, body) ⇒ Object
-
.ENUM(*args) ⇒ Object
-
.EXPORTED_QUERY(query_expr) ⇒ Object
-
.fqn(o) ⇒ Object
Creates a QualifiedName representation of o, unless o already represents a QualifiedName in which case it is returned.
-
.fqr(o) ⇒ Object
Creates a QualifiedName representation of o, unless o already represents a QualifiedName in which case it is returned.
-
.HASH(entries) ⇒ Object
-
.HOSTCLASS(name, parameters, parent, body) ⇒ Object
-
.IF(test_e, then_e, else_e) ⇒ Object
-
.IMPORT(files) ⇒ Object
-
.INSTANCE(type_name, name_expressions) ⇒ Object
Used by regular grammar, egrammar creates an AccessExpression instead, and evaluation determines if access is to instances or something else.
-
.KEY_ENTRY(key, val) ⇒ Object
-
.LAMBDA(parameters, body) ⇒ Object
-
.LIST(entries) ⇒ Object
-
.literal(o) ⇒ Object
-
.MAP(match, value) ⇒ Object
-
.minus(o) ⇒ Object
-
.NAMED_ACCESS(type_name, bodies) ⇒ Object
-
.NODE(hosts, parent, body) ⇒ Object
-
.nop?(o) ⇒ Boolean
-
.PARAM(name, expr = nil) ⇒ Object
-
.QNAME(name) ⇒ Object
TODO: This is the same a fqn factory method, don’t know if callers to fqn and QNAME can live with the same result or not yet - refactor into one method when decided.
-
.QNAME_OR_NUMBER(name) ⇒ Object
Convert input string to either a qualified name, or a LiteralNumber with radix.
-
.QREF(name) ⇒ Object
-
.RESOURCE(type_name, bodies) ⇒ Object
-
.RESOURCE_BODY(resource_title, attribute_operations) ⇒ Object
-
.RESOURCE_DEFAULTS(type_name, attribute_operations) ⇒ Object
-
.RESOURCE_OVERRIDE(resource_ref, attribute_operations) ⇒ Object
-
.resource_shape(expr) ⇒ Object
Returns symbolic information about an expected share of a resource expression given the LHS of a resource expr.
-
.string(*args) ⇒ Object
-
.TEXT(expr) ⇒ Object
-
.text(o) ⇒ Object
-
.transform_calls(expressions) ⇒ Object
Transforms an array of expressions containing literal name expressions to calls if followed by an expression, or expression list.
-
.TYPE(name, super_name = nil) ⇒ Object
-
.UNLESS(test_e, then_e, else_e) ⇒ Object
-
.var(o) ⇒ Object
-
.VIRTUAL_QUERY(query_expr) ⇒ Object
-
.WHEN(values_list, block) ⇒ Object
Instance Method Summary
collapse
-
#%(r) ⇒ Object
-
#*(r) ⇒ Object
-
#+(r) ⇒ Object
-
#-(r) ⇒ Object
-
#/(r) ⇒ Object
-
#<(r) ⇒ Object
-
#<<(r) ⇒ Object
-
#<=(r) ⇒ Object
-
#==(r) ⇒ Object
-
#=~(r) ⇒ Object
-
#>(r) ⇒ Object
-
#>=(r) ⇒ Object
-
#>>(r) ⇒ Object
-
#[](*r) ⇒ Object
-
#and(r) ⇒ Object
-
#attributes(*args) ⇒ Object
-
#build(o, *args) ⇒ Object
-
#build_AccessExpression(o, left, *keys) ⇒ Object
-
#build_ArithmeticExpression(o, op, a, b) ⇒ Object
Building of Model classes.
-
#build_Array(o) ⇒ Object
Creates a LiteralList instruction from an Array, where the entries are built.
-
#build_AssignmentExpression(o, op, a, b) ⇒ Object
-
#build_AttributeOperation(o, name, op, value) ⇒ Object
-
#build_BinaryExpression(o, left, right) ⇒ Object
-
#build_BlockExpression(o, *args) ⇒ Object
-
#build_CallExpression(o, functor, rval_required, *args) ⇒ Object
-
#build_CallMethodExpression(o, functor, rval_required, lambda, *args) ⇒ Object
# @param rval_required [Boolean] if the call must produce a value def build_CallNamedFunctionExpression(o, name, rval_required, *args) build_CallExpression(o, name, rval_required, *args) o.functor_expr = build(name) o.rval_required = rval_required args.each {|x| o.addArguments(build(x)) } o end.
-
#build_CaseExpression(o, test, *args) ⇒ Object
-
#build_CaseOption(o, value_list, then_expr) ⇒ Object
-
#build_Class(o, *args) ⇒ Object
Build a Class by creating an instance of it, and then calling build on the created instance with the given arguments.
-
#build_CollectExpression(o, type_expr, query_expr, attribute_operations) ⇒ Object
-
#build_ComparisonExpression(o, op, a, b) ⇒ Object
-
#build_ConcatenatedString(o, *args) ⇒ Object
-
#build_CreateAttributeExpression(o, name, datatype_expr) ⇒ Object
-
#build_CreateEnumExpression(o, *args) ⇒ Object
-
#build_CreateTypeExpression(o, name, super_name = nil) ⇒ Object
-
#build_Definition(o, parameters, body) ⇒ Object
-
#build_Factory(o) ⇒ Object
If building a factory, simply unwrap the model oject contained in the factory.
-
#build_FalseClass(o) ⇒ Object
-
#build_Fixnum(o) ⇒ Object
-
#build_Float(o) ⇒ Object
-
#build_Hash(o) ⇒ Object
Create a LiteralHash instruction from a hash, where keys and values are built The hash entries are added in sorted order based on key.to_s.
-
#build_HostClassDefinition(o, name, parameters, parent_class_name, body) ⇒ Model::HostClassDefinition
Configured from the parameters.
-
#build_IfExpression(o, t, ift, els) ⇒ Object
-
#build_ImportExpression(o, files) ⇒ Object
-
#build_InstanceReferences(o, type_name, name_expressions) ⇒ Object
-
#build_KeyedEntry(o, k, v) ⇒ Object
-
#build_LiteralHash(o, *keyed_entries) ⇒ Object
-
#build_LiteralList(o, *values) ⇒ Object
-
#build_LiteralNumber(o, val, radix) ⇒ Object
-
#build_MatchExpression(o, op, a, b) ⇒ Object
-
#build_NamedDefinition(o, name, parameters, body) ⇒ Object
-
#build_NilClass(o) ⇒ Object
-
#build_NodeDefinition(o, hosts, parent, body) ⇒ Object
-
#build_Parameter(o, name, expr) ⇒ Object
-
#build_QualifiedName(o, name) ⇒ Object
-
#build_QualifiedReference(o, name) ⇒ Object
-
#build_QueryExpression(o, expr) ⇒ Object
-
#build_Regexp(o) ⇒ Object
-
#build_RelationshipExpression(o, op, a, b) ⇒ Object
-
#build_ResourceBody(o, title_expression, attribute_operations) ⇒ Object
-
#build_ResourceDefaultsExpression(o, type_ref, attribute_operations) ⇒ Object
-
#build_ResourceExpression(o, type_name, bodies) ⇒ Object
-
#build_ResourceOverrideExpression(o, resources, attribute_operations) ⇒ Object
# @param name [String] a valid classname # @param parameters [Array<Model::Parameter>] may be empty # @param body [Array<Expression>, Expression, nil] expression that constitute the body # @return [Model::HostClassDefinition] configured from the parameters # def build_ResourceTypeDefinition(o, name, parameters, body) build_NamedDefinition(o, name, parameters, body) o.name = name parameters.each {|p| o.addParameters(build(p)) } b = f_build_body(body) o.body = b.current if b o end.
-
#build_SelectorEntry(o, matching, value) ⇒ Object
-
#build_SelectorExpression(o, left, *selectors) ⇒ Object
-
#build_String(o) ⇒ Object
Building model equivalences of Ruby objects Allows passing regular ruby objects to the factory to produce instructions that when evaluated produce the same thing.
-
#build_Symbol(o) ⇒ Object
Creates a String literal, unless the symbol is one of the special :undef, or :default which instead creates a LiterlUndef, or a LiteralDefault.
-
#build_TrueClass(o) ⇒ Object
-
#build_UnaryExpression(o, expr) ⇒ Object
-
#default(r) ⇒ Object
For CaseExpression, setting the default for an already build CaseExpression.
-
#doc ⇒ String?
Returns documentation string, or nil if not available.
-
#doc=(doc_string) ⇒ Object
-
#dot(r) ⇒ Object
-
#f_arithmetic(op, r) ⇒ Object
-
#f_build_binary(klazz, left, right) ⇒ Object
-
#f_build_binary_op(klazz, op, left, right) ⇒ Object
-
#f_build_body(body) ⇒ Object
Builds body :) from different kinds of input.
-
#f_build_unary(klazz, expr) ⇒ Object
Puppet::Pops::Model::Factory helpers.
-
#f_build_vararg(klazz, left, *arg) ⇒ Object
-
#f_comparison(op, r) ⇒ Object
-
#f_match(op, r) ⇒ Object
-
#in(r) ⇒ Object
-
#initialize(popsobj, *args) ⇒ Factory
constructor
Initialize a factory with a single object, or a class with arguments applied to build of created instance.
-
#lambda=(lambda) ⇒ Object
-
#loc ⇒ Puppet::Pops::Adapters::SourcePosAdapter
With location information.
-
#method_missing(meth, *args, &block) ⇒ Object
Catch all delegation to current.
-
#minus ⇒ Object
-
#mne(r) ⇒ Object
-
#ne(r) ⇒ Object
-
#not ⇒ Object
-
#or(r) ⇒ Object
-
#paren ⇒ Object
-
#plus_set(r) ⇒ Object
-
#record_origin(file) ⇒ Factory
Records the origin file of an element Does nothing if file is nil.
-
#record_position(start_pos, end_pos) ⇒ Object
Records the position (start -> end) and computes the resulting length.
-
#relop(op, r) ⇒ Object
-
#respond_to?(meth) ⇒ Boolean
-
#select(*args) ⇒ Object
-
#set(r) ⇒ Object
-
#text ⇒ Object
-
#to_ops(o, *args) ⇒ Object
Checks if the object is already a model object, or build it.
-
#var ⇒ Object
Constructor Details
#initialize(popsobj, *args) ⇒ Factory
Initialize a factory with a single object, or a class with arguments applied to build of created instance
21
22
23
|
# File 'lib/puppet/pops/model/factory.rb', line 21
def initialize popsobj, *args
@current = to_ops(popsobj, *args)
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(meth, *args, &block) ⇒ Object
Catch all delegation to current
407
408
409
410
411
412
413
|
# File 'lib/puppet/pops/model/factory.rb', line 407
def method_missing(meth, *args, &block)
if current.respond_to?(meth)
current.send(meth, *args, &block)
else
super
end
end
|
Instance Attribute Details
#current ⇒ Object
Also known as:
model
12
13
14
|
# File 'lib/puppet/pops/model/factory.rb', line 12
def current
@current
end
|
Class Method Details
.ATTR(name, type_expr = nil) ⇒ Object
514
|
# File 'lib/puppet/pops/model/factory.rb', line 514
def self.ATTR(name, type_expr=nil); new(Model::CreateAttributeExpression, name, type_expr); end
|
.ATTRIBUTE_OP(name, op, expr) ⇒ Object
586
587
588
|
# File 'lib/puppet/pops/model/factory.rb', line 586
def self.ATTRIBUTE_OP(name, op, expr)
new(Model::AttributeOperation, name, op, expr)
end
|
.block(*args) ⇒ Object
496
|
# File 'lib/puppet/pops/model/factory.rb', line 496
def self.block(*args); new(Model::BlockExpression, *args); end
|
.block_or_expression(*args) ⇒ Object
Builds a BlockExpression if args size > 1, else the single expression/value in args
630
631
632
633
634
635
636
|
# File 'lib/puppet/pops/model/factory.rb', line 630
def self.block_or_expression(*args)
if args.size > 1
new(Model::BlockExpression, *args)
else
new(args[0])
end
end
|
.CALL_METHOD(functor, argument_list) ⇒ Object
597
598
599
|
# File 'lib/puppet/pops/model/factory.rb', line 597
def self.CALL_METHOD(functor, argument_list)
new(Model::CallMethodExpression, functor, true, nil, *argument_list)
end
|
.CALL_NAMED(name, rval_required, argument_list) ⇒ Object
590
591
592
593
594
595
|
# File 'lib/puppet/pops/model/factory.rb', line 590
def self.CALL_NAMED(name, rval_required, argument_list)
unless name.kind_of?(Model::PopsObject)
name = Puppet::Pops::Model::Factory.fqn(name) unless name.is_a?(Puppet::Pops::Model::Factory)
end
new(Model::CallNamedFunctionExpression, name, rval_required, *argument_list)
end
|
.CASE(test_e, *options) ⇒ Object
506
|
# File 'lib/puppet/pops/model/factory.rb', line 506
def self.CASE(test_e,*options); new(Model::CaseExpression, test_e, *options); end
|
.COLLECT(type_expr, query_expr, attribute_operations) ⇒ Object
601
602
603
|
# File 'lib/puppet/pops/model/factory.rb', line 601
def self.COLLECT(type_expr, query_expr, attribute_operations)
new(Model::CollectExpression, Puppet::Pops::Model::Factory.fqr(type_expr), query_expr, attribute_operations)
end
|
.DEFINITION(name, parameters, body) ⇒ Object
642
643
644
|
# File 'lib/puppet/pops/model/factory.rb', line 642
def self.DEFINITION(name, parameters, body)
new(Model::ResourceTypeDefinition, name, parameters, body)
end
|
.ENUM(*args) ⇒ Object
516
|
# File 'lib/puppet/pops/model/factory.rb', line 516
def self.ENUM(*args); new(Model::CreateEnumExpression, *args); end
|
.EXPORTED_QUERY(query_expr) ⇒ Object
575
576
577
|
# File 'lib/puppet/pops/model/factory.rb', line 575
def self.EXPORTED_QUERY(query_expr)
new(Model::ExportedQuery, query_expr)
end
|
Creates a QualifiedName representation of o, unless o already represents a QualifiedName in which case it is returned.
531
532
533
534
535
|
# File 'lib/puppet/pops/model/factory.rb', line 531
def self.fqn(o)
o = o.current if o.is_a?(Puppet::Pops::Model::Factory)
o = new(Model::QualifiedName, o) unless o.is_a? Model::QualifiedName
o
end
|
Creates a QualifiedName representation of o, unless o already represents a QualifiedName in which case it is returned.
540
541
542
543
544
|
# File 'lib/puppet/pops/model/factory.rb', line 540
def self.fqr(o)
o = o.current if o.is_a?(Puppet::Pops::Model::Factory)
o = new(Model::QualifiedReference, o) unless o.is_a? Model::QualifiedReference
o
end
|
.HASH(entries) ⇒ Object
520
|
# File 'lib/puppet/pops/model/factory.rb', line 520
def self.HASH(entries); new(Model::LiteralHash, *entries); end
|
.HOSTCLASS(name, parameters, parent, body) ⇒ Object
638
639
640
|
# File 'lib/puppet/pops/model/factory.rb', line 638
def self.HOSTCLASS(name, parameters, parent, body)
new(Model::HostClassDefinition, name, parameters, parent, body)
end
|
.IF(test_e, then_e, else_e) ⇒ Object
502
|
# File 'lib/puppet/pops/model/factory.rb', line 502
def self.IF(test_e,then_e,else_e); new(Model::IfExpression, test_e, then_e, else_e); end
|
.IMPORT(files) ⇒ Object
605
606
607
|
# File 'lib/puppet/pops/model/factory.rb', line 605
def self.IMPORT(files)
new(Model::ImportExpression, files)
end
|
.INSTANCE(type_name, name_expressions) ⇒ Object
Used by regular grammar, egrammar creates an AccessExpression instead, and evaluation determines if access is to instances or something else.
582
583
584
|
# File 'lib/puppet/pops/model/factory.rb', line 582
def self.INSTANCE(type_name, name_expressions)
new(Model::InstanceReferences, type_name, name_expressions)
end
|
.KEY_ENTRY(key, val) ⇒ Object
518
|
# File 'lib/puppet/pops/model/factory.rb', line 518
def self.KEY_ENTRY(key, val); new(Model::KeyedEntry, key, val); end
|
.LAMBDA(parameters, body) ⇒ Object
646
647
648
|
# File 'lib/puppet/pops/model/factory.rb', line 646
def self.LAMBDA(parameters, body)
new(Model::LambdaExpression, parameters, body)
end
|
.LIST(entries) ⇒ Object
522
|
# File 'lib/puppet/pops/model/factory.rb', line 522
def self.LIST(entries); new(Model::LiteralList, *entries); end
|
.literal(o) ⇒ Object
490
|
# File 'lib/puppet/pops/model/factory.rb', line 490
def self.literal(o); new(o); end
|
.MAP(match, value) ⇒ Object
510
|
# File 'lib/puppet/pops/model/factory.rb', line 510
def self.MAP(match, value); new(Model::SelectorEntry, match, value); end
|
492
|
# File 'lib/puppet/pops/model/factory.rb', line 492
def self.minus(o); new(o).minus; end
|
.NAMED_ACCESS(type_name, bodies) ⇒ Object
609
610
611
|
# File 'lib/puppet/pops/model/factory.rb', line 609
def self.NAMED_ACCESS(type_name, bodies)
new(Model::NamedAccessExpression, type_name, bodies)
end
|
.NODE(hosts, parent, body) ⇒ Object
526
|
# File 'lib/puppet/pops/model/factory.rb', line 526
def self.NODE(hosts, parent, body); new(Model::NodeDefinition, hosts, parent, body); end
|
.nop?(o) ⇒ Boolean
650
651
652
|
# File 'lib/puppet/pops/model/factory.rb', line 650
def self.nop? o
o.nil? || o.is_a?(Puppet::Pops::Model::Nop)
end
|
.PARAM(name, expr = nil) ⇒ Object
524
|
# File 'lib/puppet/pops/model/factory.rb', line 524
def self.PARAM(name, expr=nil); new(Model::Parameter, name, expr); end
|
.QNAME(name) ⇒ Object
TODO: This is the same a fqn factory method, don’t know if callers to fqn and QNAME can live with the same result or not yet - refactor into one method when decided.
553
554
555
|
# File 'lib/puppet/pops/model/factory.rb', line 553
def self.QNAME(name)
new(Model::QualifiedName, name)
end
|
.QNAME_OR_NUMBER(name) ⇒ Object
Convert input string to either a qualified name, or a LiteralNumber with radix
559
560
561
562
563
564
565
|
# File 'lib/puppet/pops/model/factory.rb', line 559
def self.QNAME_OR_NUMBER(name)
if n_radix = Puppet::Pops::Utils.to_n_with_radix(name)
new(Model::LiteralNumber, *n_radix)
else
new(Model::QualifiedName, name)
end
end
|
.QREF(name) ⇒ Object
567
568
569
|
# File 'lib/puppet/pops/model/factory.rb', line 567
def self.QREF(name)
new(Model::QualifiedReference, name)
end
|
.RESOURCE(type_name, bodies) ⇒ Object
613
614
615
|
# File 'lib/puppet/pops/model/factory.rb', line 613
def self.RESOURCE(type_name, bodies)
new(Model::ResourceExpression, type_name, bodies)
end
|
.RESOURCE_BODY(resource_title, attribute_operations) ⇒ Object
625
626
627
|
# File 'lib/puppet/pops/model/factory.rb', line 625
def self.RESOURCE_BODY(resource_title, attribute_operations)
new(Model::ResourceBody, resource_title, attribute_operations)
end
|
.RESOURCE_DEFAULTS(type_name, attribute_operations) ⇒ Object
617
618
619
|
# File 'lib/puppet/pops/model/factory.rb', line 617
def self.RESOURCE_DEFAULTS(type_name, attribute_operations)
new(Model::ResourceDefaultsExpression, type_name, attribute_operations)
end
|
.RESOURCE_OVERRIDE(resource_ref, attribute_operations) ⇒ Object
621
622
623
|
# File 'lib/puppet/pops/model/factory.rb', line 621
def self.RESOURCE_OVERRIDE(resource_ref, attribute_operations)
new(Model::ResourceOverrideExpression, resource_ref, attribute_operations)
end
|
.resource_shape(expr) ⇒ Object
Returns symbolic information about an expected share of a resource expression given the LHS of a resource expr.
-
‘name { }` => :resource, create a resource of the given type
-
‘Name { }` => ’:defaults`, set defaults for the referenced type
-
‘Name[] { }` => :override, overrides instances referenced by LHS
-
_any other_ => ‘:error’, all other are considered illegal
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
|
# File 'lib/puppet/pops/model/factory.rb', line 473
def self.resource_shape(expr)
expr = expr.current if expr.is_a?(Puppet::Pops::Model::Factory)
case expr
when Model::QualifiedName
:resource
when Model::QualifiedReference
:defaults
when Model::AccessExpression
:override
when 'class'
:class
else
:error
end
end
|
.string(*args) ⇒ Object
498
|
# File 'lib/puppet/pops/model/factory.rb', line 498
def self.string(*args); new(Model::ConcatenatedString, *args); end
|
.TEXT(expr) ⇒ Object
546
547
548
|
# File 'lib/puppet/pops/model/factory.rb', line 546
def self.TEXT(expr)
new(Model::TextExpression, expr)
end
|
500
|
# File 'lib/puppet/pops/model/factory.rb', line 500
def self.text(o); new(o).text; end
|
Transforms an array of expressions containing literal name expressions to calls if followed by an expression, or expression list. Also transforms a “call” to import into an ImportExpression.
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
|
# File 'lib/puppet/pops/model/factory.rb', line 657
def self.transform_calls(expressions)
expressions.reduce([]) do |memo, expr|
expr = expr.current if expr.is_a?(Puppet::Pops::Model::Factory)
name = memo[-1]
if name.is_a? Model::QualifiedName
if name.value() == 'import'
memo[-1] = Puppet::Pops::Model::Factory.IMPORT(expr.is_a?(Array) ? expr : [expr])
else
memo[-1] = Puppet::Pops::Model::Factory.CALL_NAMED(name, false, expr.is_a?(Array) ? expr : [expr])
if expr.is_a?(Model::CallNamedFunctionExpression)
expr.rval_required = true
end
end
else
memo << expr
if expr.is_a?(Model::CallNamedFunctionExpression)
expr.rval_required = false
end
end
memo
end
end
|
.TYPE(name, super_name = nil) ⇒ Object
512
|
# File 'lib/puppet/pops/model/factory.rb', line 512
def self.TYPE(name, super_name=nil); new(Model::CreateTypeExpression, name, super_name); end
|
.UNLESS(test_e, then_e, else_e) ⇒ Object
504
|
# File 'lib/puppet/pops/model/factory.rb', line 504
def self.UNLESS(test_e,then_e,else_e); new(Model::UnlessExpression, test_e, then_e, else_e); end
|
494
|
# File 'lib/puppet/pops/model/factory.rb', line 494
def self.var(o); new(o).var; end
|
.VIRTUAL_QUERY(query_expr) ⇒ Object
571
572
573
|
# File 'lib/puppet/pops/model/factory.rb', line 571
def self.VIRTUAL_QUERY(query_expr)
new(Model::VirtualQuery, query_expr)
end
|
.WHEN(values_list, block) ⇒ Object
508
|
# File 'lib/puppet/pops/model/factory.rb', line 508
def self.WHEN(values_list, block); new(Model::CaseOption, values_list, block); end
|
Instance Method Details
348
|
# File 'lib/puppet/pops/model/factory.rb', line 348
def % r; f_arithmetic(:%, r); end
|
346
|
# File 'lib/puppet/pops/model/factory.rb', line 346
def * r; f_arithmetic(:*, r); end
|
340
|
# File 'lib/puppet/pops/model/factory.rb', line 340
def + r; f_arithmetic(:+, r); end
|
342
|
# File 'lib/puppet/pops/model/factory.rb', line 342
def - r; f_arithmetic(:-, r); end
|
344
|
# File 'lib/puppet/pops/model/factory.rb', line 344
def / r; f_arithmetic(:/, r); end
|
354
|
# File 'lib/puppet/pops/model/factory.rb', line 354
def < r; f_comparison(:<, r); end
|
350
|
# File 'lib/puppet/pops/model/factory.rb', line 350
def << r; f_arithmetic(:<<, r); end
|
356
|
# File 'lib/puppet/pops/model/factory.rb', line 356
def <= r; f_comparison(:<=, r); end
|
362
|
# File 'lib/puppet/pops/model/factory.rb', line 362
def == r; f_comparison(:==, r); end
|
366
|
# File 'lib/puppet/pops/model/factory.rb', line 366
def =~ r; f_match(:'=~', r); end
|
358
|
# File 'lib/puppet/pops/model/factory.rb', line 358
def > r; f_comparison(:>, r); end
|
360
|
# File 'lib/puppet/pops/model/factory.rb', line 360
def >= r; f_comparison(:>=, r); end
|
352
|
# File 'lib/puppet/pops/model/factory.rb', line 352
def >> r; f_arithmetic(:>>, r); end
|
336
|
# File 'lib/puppet/pops/model/factory.rb', line 336
def [](*r); f_build_vararg(Model::AccessExpression, current, *r); end
|
326
|
# File 'lib/puppet/pops/model/factory.rb', line 326
def and(r) f_build_binary(Model::AndExpression, current, r); end
|
#attributes(*args) ⇒ Object
401
402
403
404
|
# File 'lib/puppet/pops/model/factory.rb', line 401
def attributes(*args)
args.each {|a| current.addAttributes(build(a)) }
self
end
|
#build(o, *args) ⇒ Object
26
27
28
29
30
31
32
33
|
# File 'lib/puppet/pops/model/factory.rb', line 26
def build(o, *args)
begin
@@build_visitor.visit_this(self, o, *args)
rescue =>e
raise e
end
end
|
#build_AccessExpression(o, left, *keys) ⇒ Object
54
55
56
57
58
|
# File 'lib/puppet/pops/model/factory.rb', line 54
def build_AccessExpression(o, left, *keys)
o.left_expr = to_ops(left)
keys.each {|expr| o.addKeys(to_ops(expr)) }
o
end
|
#build_ArithmeticExpression(o, op, a, b) ⇒ Object
Building of Model classes
37
38
39
40
|
# File 'lib/puppet/pops/model/factory.rb', line 37
def build_ArithmeticExpression(o, op, a, b)
o.operator = op
build_BinaryExpression(o, a, b)
end
|
#build_Array(o) ⇒ Object
Creates a LiteralList instruction from an Array, where the entries are built.
750
751
752
753
754
|
# File 'lib/puppet/pops/model/factory.rb', line 750
def build_Array(o)
x = Model::LiteralList.new
o.each { |v| x.addValues(build(v)) }
x
end
|
#build_AssignmentExpression(o, op, a, b) ⇒ Object
42
43
44
45
|
# File 'lib/puppet/pops/model/factory.rb', line 42
def build_AssignmentExpression(o, op, a, b)
o.operator = op
build_BinaryExpression(o, a, b)
end
|
#build_AttributeOperation(o, name, op, value) ⇒ Object
47
48
49
50
51
52
|
# File 'lib/puppet/pops/model/factory.rb', line 47
def build_AttributeOperation(o, name, op, value)
o.operator = op
o.attribute_name = name.to_s o.value_expr = build(value)
o
end
|
#build_BinaryExpression(o, left, right) ⇒ Object
60
61
62
63
64
|
# File 'lib/puppet/pops/model/factory.rb', line 60
def build_BinaryExpression(o, left, right)
o.left_expr = to_ops(left)
o.right_expr = to_ops(right)
o
end
|
#build_BlockExpression(o, *args) ⇒ Object
66
67
68
69
|
# File 'lib/puppet/pops/model/factory.rb', line 66
def build_BlockExpression(o, *args)
args.each {|expr| o.addStatements(to_ops(expr)) }
o
end
|
#build_CallExpression(o, functor, rval_required, *args) ⇒ Object
766
767
768
769
770
771
|
# File 'lib/puppet/pops/model/factory.rb', line 766
def build_CallExpression(o, functor, rval_required, *args)
o.functor_expr = to_ops(functor)
o.rval_required = rval_required
args.each {|x| o.addArguments(to_ops(x)) }
o
end
|
#build_CallMethodExpression(o, functor, rval_required, lambda, *args) ⇒ Object
# @param rval_required [Boolean] if the call must produce a value
def build_CallNamedFunctionExpression(o, name, rval_required, *args)
build_CallExpression(o, name, rval_required, *args)
o.functor_expr = build(name)
o.rval_required = rval_required
args.each {|x| o.addArguments(build(x)) }
o
end
782
783
784
785
786
|
# File 'lib/puppet/pops/model/factory.rb', line 782
def build_CallMethodExpression(o, functor, rval_required, lambda, *args)
build_CallExpression(o, functor, rval_required, *args)
o.lambda = lambda
o
end
|
#build_CaseExpression(o, test, *args) ⇒ Object
788
789
790
791
792
|
# File 'lib/puppet/pops/model/factory.rb', line 788
def build_CaseExpression(o, test, *args)
o.test = build(test)
args.each {|opt| o.addOptions(build(opt)) }
o
end
|
#build_CaseOption(o, value_list, then_expr) ⇒ Object
794
795
796
797
798
799
800
|
# File 'lib/puppet/pops/model/factory.rb', line 794
def build_CaseOption(o, value_list, then_expr)
value_list = [value_list] unless value_list.is_a? Array
value_list.each { |v| o.addValues(build(v)) }
b = f_build_body(then_expr)
o.then_expr = to_ops(b) if b
o
end
|
#build_Class(o, *args) ⇒ Object
Build a Class by creating an instance of it, and then calling build on the created instance with the given arguments
804
805
806
|
# File 'lib/puppet/pops/model/factory.rb', line 804
def build_Class(o, *args)
build(o.new(), *args)
end
|
#build_CollectExpression(o, type_expr, query_expr, attribute_operations) ⇒ Object
71
72
73
74
75
76
|
# File 'lib/puppet/pops/model/factory.rb', line 71
def build_CollectExpression(o, type_expr, query_expr, attribute_operations)
o.type_expr = to_ops(type_expr)
o.query = build(query_expr)
attribute_operations.each {|op| o.addOperations(build(op)) }
o
end
|
#build_ComparisonExpression(o, op, a, b) ⇒ Object
78
79
80
81
|
# File 'lib/puppet/pops/model/factory.rb', line 78
def build_ComparisonExpression(o, op, a, b)
o.operator = op
build_BinaryExpression(o, a, b)
end
|
#build_ConcatenatedString(o, *args) ⇒ Object
83
84
85
86
|
# File 'lib/puppet/pops/model/factory.rb', line 83
def build_ConcatenatedString(o, *args)
args.each {|expr| o.addSegments(build(expr)) }
o
end
|
#build_CreateAttributeExpression(o, name, datatype_expr) ⇒ Object
100
101
102
103
104
|
# File 'lib/puppet/pops/model/factory.rb', line 100
def build_CreateAttributeExpression(o, name, datatype_expr)
o.name = name
o.type = to_ops(datatype_expr)
o
end
|
#build_CreateEnumExpression(o, *args) ⇒ Object
94
95
96
97
98
|
# File 'lib/puppet/pops/model/factory.rb', line 94
def build_CreateEnumExpression(o, *args)
o.name = args.slice(0) if args.size == 2
o.values = build(args.last)
o
end
|
#build_CreateTypeExpression(o, name, super_name = nil) ⇒ Object
88
89
90
91
92
|
# File 'lib/puppet/pops/model/factory.rb', line 88
def build_CreateTypeExpression(o, name, super_name = nil)
o.name = name
o.super_name = super_name
o
end
|
#build_Definition(o, parameters, body) ⇒ Object
204
205
206
207
208
209
|
# File 'lib/puppet/pops/model/factory.rb', line 204
def build_Definition(o, parameters, body)
parameters.each {|p| o.addParameters(build(p)) }
b = f_build_body(body)
o.body = b.current if b
o
end
|
#build_Factory(o) ⇒ Object
If building a factory, simply unwrap the model oject contained in the factory.
732
733
734
|
# File 'lib/puppet/pops/model/factory.rb', line 732
def build_Factory(o)
o.current
end
|
#build_FalseClass(o) ⇒ Object
707
708
709
710
711
|
# File 'lib/puppet/pops/model/factory.rb', line 707
def build_FalseClass(o)
x = Model::LiteralBoolean.new
x.value = o
x
end
|
#build_Fixnum(o) ⇒ Object
713
714
715
716
717
|
# File 'lib/puppet/pops/model/factory.rb', line 713
def build_Fixnum(o)
x = Model::LiteralNumber.new
x.value = o;
x
end
|
#build_Float(o) ⇒ Object
719
720
721
722
723
|
# File 'lib/puppet/pops/model/factory.rb', line 719
def build_Float(o)
x = Model::LiteralNumber.new
x.value = o;
x
end
|
#build_Hash(o) ⇒ Object
Create a LiteralHash instruction from a hash, where keys and values are built The hash entries are added in sorted order based on key.to_s
759
760
761
762
763
|
# File 'lib/puppet/pops/model/factory.rb', line 759
def build_Hash(o)
x = Model::LiteralHash.new
(o.sort_by {|k,v| k.to_s}).each {|k,v| x.addEntries(build(Model::KeyedEntry.new, k, v)) }
x
end
|
#build_HostClassDefinition(o, name, parameters, parent_class_name, body) ⇒ Model::HostClassDefinition
Returns configured from the parameters.
112
113
114
115
116
|
# File 'lib/puppet/pops/model/factory.rb', line 112
def build_HostClassDefinition(o, name, parameters, parent_class_name, body)
build_NamedDefinition(o, name, parameters, body)
o.parent_class = parent_class_name if parent_class_name
o
end
|
#build_IfExpression(o, t, ift, els) ⇒ Object
172
173
174
175
176
177
|
# File 'lib/puppet/pops/model/factory.rb', line 172
def build_IfExpression(o, t, ift, els)
o.test = build(t)
o.then_expr = build(ift)
o.else_expr= build(els)
o
end
|
#build_ImportExpression(o, files) ⇒ Object
166
167
168
169
170
|
# File 'lib/puppet/pops/model/factory.rb', line 166
def build_ImportExpression(o, files)
files.each {|f| o.addFiles(to_ops(f)) }
o
end
|
#build_InstanceReferences(o, type_name, name_expressions) ⇒ Object
160
161
162
163
164
|
# File 'lib/puppet/pops/model/factory.rb', line 160
def build_InstanceReferences(o, type_name, name_expressions)
o.type_name = build(type_name)
name_expressions.each {|n| o.addNames(build(n)) }
o
end
|
#build_KeyedEntry(o, k, v) ⇒ Object
138
139
140
141
142
|
# File 'lib/puppet/pops/model/factory.rb', line 138
def build_KeyedEntry(o, k, v)
o.key = build(k)
o.value = build(v)
o
end
|
#build_LiteralHash(o, *keyed_entries) ⇒ Object
144
145
146
147
|
# File 'lib/puppet/pops/model/factory.rb', line 144
def build_LiteralHash(o, *keyed_entries)
keyed_entries.each {|entry| o.addEntries build(entry) }
o
end
|
#build_LiteralList(o, *values) ⇒ Object
149
150
151
152
|
# File 'lib/puppet/pops/model/factory.rb', line 149
def build_LiteralList(o, *values)
values.each {|v| o.addValues build(v) }
o
end
|
#build_LiteralNumber(o, val, radix) ⇒ Object
154
155
156
157
158
|
# File 'lib/puppet/pops/model/factory.rb', line 154
def build_LiteralNumber(o, val, radix)
o.value = val
o.radix = radix
o
end
|
#build_MatchExpression(o, op, a, b) ⇒ Object
179
180
181
182
|
# File 'lib/puppet/pops/model/factory.rb', line 179
def build_MatchExpression(o, op, a, b)
o.operator = op
build_BinaryExpression(o, a, b)
end
|
#build_NamedDefinition(o, name, parameters, body) ⇒ Object
211
212
213
214
215
|
# File 'lib/puppet/pops/model/factory.rb', line 211
def build_NamedDefinition(o, name, parameters, body)
build_Definition(o, parameters, body)
o.name = name
o
end
|
#build_NilClass(o) ⇒ Object
696
697
698
699
|
# File 'lib/puppet/pops/model/factory.rb', line 696
def build_NilClass(o)
x = Model::Nop.new
x
end
|
#build_NodeDefinition(o, hosts, parent, body) ⇒ Object
221
222
223
224
225
226
227
|
# File 'lib/puppet/pops/model/factory.rb', line 221
def build_NodeDefinition(o, hosts, parent, body)
hosts.each {|h| o.addHost_matches(build(h)) }
o.parent = build(parent) if parent b = f_build_body(body)
o.body = b.current if b
o
end
|
#build_Parameter(o, name, expr) ⇒ Object
229
230
231
232
233
|
# File 'lib/puppet/pops/model/factory.rb', line 229
def build_Parameter(o, name, expr)
o.name = name
o.value = build(expr) if expr o
end
|
#build_QualifiedName(o, name) ⇒ Object
287
288
289
290
|
# File 'lib/puppet/pops/model/factory.rb', line 287
def build_QualifiedName(o, name)
o.value = name.to_s
o
end
|
#build_QualifiedReference(o, name) ⇒ Object
235
236
237
238
|
# File 'lib/puppet/pops/model/factory.rb', line 235
def build_QualifiedReference(o, name)
o.value = name.to_s.downcase
o
end
|
#build_QueryExpression(o, expr) ⇒ Object
275
276
277
278
279
|
# File 'lib/puppet/pops/model/factory.rb', line 275
def build_QueryExpression(o, expr)
ops = to_ops(expr)
o.expr = ops unless Puppet::Pops::Model::Factory.nop? ops
o
end
|
#build_Regexp(o) ⇒ Object
725
726
727
728
729
|
# File 'lib/puppet/pops/model/factory.rb', line 725
def build_Regexp(o)
x = Model::LiteralRegularExpression.new
x.value = o;
x
end
|
#build_RelationshipExpression(o, op, a, b) ⇒ Object
240
241
242
243
|
# File 'lib/puppet/pops/model/factory.rb', line 240
def build_RelationshipExpression(o, op, a, b)
o.operator = op
build_BinaryExpression(o, a, b)
end
|
#build_ResourceBody(o, title_expression, attribute_operations) ⇒ Object
251
252
253
254
255
|
# File 'lib/puppet/pops/model/factory.rb', line 251
def build_ResourceBody(o, title_expression, attribute_operations)
o.title = build(title_expression)
attribute_operations.each {|ao| o.addOperations(build(ao)) }
o
end
|
#build_ResourceDefaultsExpression(o, type_ref, attribute_operations) ⇒ Object
257
258
259
260
261
|
# File 'lib/puppet/pops/model/factory.rb', line 257
def build_ResourceDefaultsExpression(o, type_ref, attribute_operations)
o.type_ref = build(type_ref)
attribute_operations.each {|ao| o.addOperations(build(ao)) }
o
end
|
#build_ResourceExpression(o, type_name, bodies) ⇒ Object
245
246
247
248
249
|
# File 'lib/puppet/pops/model/factory.rb', line 245
def build_ResourceExpression(o, type_name, bodies)
o.type_name = build(type_name)
bodies.each {|b| o.addBodies(build(b)) }
o
end
|
#build_ResourceOverrideExpression(o, resources, attribute_operations) ⇒ Object
# @param name [String] a valid classname
def build_ResourceTypeDefinition(o, name, parameters, body)
build_NamedDefinition(o, name, parameters, body)
o.name = name
parameters.each {|p| o.addParameters(build(p)) }
b = f_build_body(body)
o.body = b.current if b
o
end
132
133
134
135
136
|
# File 'lib/puppet/pops/model/factory.rb', line 132
def build_ResourceOverrideExpression(o, resources, attribute_operations)
o.resources = build(resources)
attribute_operations.each {|ao| o.addOperations(build(ao)) }
o
end
|
#build_SelectorEntry(o, matching, value) ⇒ Object
269
270
271
272
273
|
# File 'lib/puppet/pops/model/factory.rb', line 269
def build_SelectorEntry(o, matching, value)
o.matching_expr = build(matching)
o.value_expr = build(value)
o
end
|
#build_SelectorExpression(o, left, *selectors) ⇒ Object
263
264
265
266
267
|
# File 'lib/puppet/pops/model/factory.rb', line 263
def build_SelectorExpression(o, left, *selectors)
o.left_expr = to_ops(left)
selectors.each {|s| o.addSelectors(build(s)) }
o
end
|
#build_String(o) ⇒ Object
Building model equivalences of Ruby objects Allows passing regular ruby objects to the factory to produce instructions that when evaluated produce the same thing.
690
691
692
693
694
|
# File 'lib/puppet/pops/model/factory.rb', line 690
def build_String(o)
x = Model::LiteralString.new
x.value = o;
x
end
|
#build_Symbol(o) ⇒ Object
Creates a String literal, unless the symbol is one of the special :undef, or :default which instead creates a LiterlUndef, or a LiteralDefault.
738
739
740
741
742
743
744
745
746
747
|
# File 'lib/puppet/pops/model/factory.rb', line 738
def build_Symbol(o)
case o
when :undef
Model::LiteralUndef.new
when :default
Model::LiteralDefault.new
else
build_String(o.to_s)
end
end
|
#build_TrueClass(o) ⇒ Object
701
702
703
704
705
|
# File 'lib/puppet/pops/model/factory.rb', line 701
def build_TrueClass(o)
x = Model::LiteralBoolean.new
x.value = o
x
end
|
#build_UnaryExpression(o, expr) ⇒ Object
281
282
283
284
285
|
# File 'lib/puppet/pops/model/factory.rb', line 281
def build_UnaryExpression(o, expr)
ops = to_ops(expr)
o.expr = ops unless Puppet::Pops::Model::Factory.nop? ops
o
end
|
#default(r) ⇒ Object
For CaseExpression, setting the default for an already build CaseExpression
381
382
383
384
|
# File 'lib/puppet/pops/model/factory.rb', line 381
def default r
current.addOptions(Puppet::Pops::Model::Factory.WHEN(:default, r).current)
self
end
|
Returns documentation string, or nil if not available
338
|
# File 'lib/puppet/pops/model/factory.rb', line 338
def dot r; f_build_binary(Model::NamedAccessExpression, current, r); end
|
#f_arithmetic(op, r) ⇒ Object
309
310
311
|
# File 'lib/puppet/pops/model/factory.rb', line 309
def f_arithmetic(op, r)
f_build_binary_op(Model::ArithmeticExpression, op, current, r)
end
|
#f_build_binary(klazz, left, right) ⇒ Object
301
302
303
|
# File 'lib/puppet/pops/model/factory.rb', line 301
def f_build_binary(klazz, left, right)
Puppet::Pops::Model::Factory.new(build(klazz.new, left, right))
end
|
#f_build_binary_op(klazz, op, left, right) ⇒ Object
297
298
299
|
# File 'lib/puppet/pops/model/factory.rb', line 297
def f_build_binary_op(klazz, op, left, right)
Puppet::Pops::Model::Factory.new(build(klazz.new, op, left, right))
end
|
#f_build_body(nothing) ⇒ Object
#f_build_body(array) ⇒ Object
#f_build_body(expr) ⇒ Object
#f_build_body(obj) ⇒ Object
Builds body :) from different kinds of input
193
194
195
196
197
198
199
200
201
202
|
# File 'lib/puppet/pops/model/factory.rb', line 193
def f_build_body(body)
case body
when NilClass
nil
when Array
Puppet::Pops::Model::Factory.new(Model::BlockExpression, *body)
else
build(body)
end
end
|
#f_build_unary(klazz, expr) ⇒ Object
Puppet::Pops::Model::Factory helpers
293
294
295
|
# File 'lib/puppet/pops/model/factory.rb', line 293
def f_build_unary(klazz, expr)
Puppet::Pops::Model::Factory.new(build(klazz.new, expr))
end
|
#f_build_vararg(klazz, left, *arg) ⇒ Object
305
306
307
|
# File 'lib/puppet/pops/model/factory.rb', line 305
def f_build_vararg(klazz, left, *arg)
Puppet::Pops::Model::Factory.new(build(klazz.new, left, *arg))
end
|
#f_comparison(op, r) ⇒ Object
313
314
315
|
# File 'lib/puppet/pops/model/factory.rb', line 313
def f_comparison(op, r)
f_build_binary_op(Model::ComparisonExpression, op, current, r)
end
|
#f_match(op, r) ⇒ Object
317
318
319
|
# File 'lib/puppet/pops/model/factory.rb', line 317
def f_match(op, r)
f_build_binary_op(Model::MatchExpression, op, current, r)
end
|
322
|
# File 'lib/puppet/pops/model/factory.rb', line 322
def in(r) f_build_binary(Model::InExpression, current, r); end
|
#lambda=(lambda) ⇒ Object
386
387
388
389
|
# File 'lib/puppet/pops/model/factory.rb', line 386
def lambda=(lambda)
current.lambda = lambda.current
self
end
|
Returns with location information.
330
|
# File 'lib/puppet/pops/model/factory.rb', line 330
def minus(); f_build_unary(Model::UnaryMinusExpression, self); end
|
368
|
# File 'lib/puppet/pops/model/factory.rb', line 368
def mne r; f_match(:'!~', r); end
|
364
|
# File 'lib/puppet/pops/model/factory.rb', line 364
def ne r; f_comparison(:'!=', r); end
|
328
|
# File 'lib/puppet/pops/model/factory.rb', line 328
def not(); f_build_unary(Model::NotExpression, self); end
|
324
|
# File 'lib/puppet/pops/model/factory.rb', line 324
def or(r) f_build_binary(Model::OrExpression, current, r); end
|
370
|
# File 'lib/puppet/pops/model/factory.rb', line 370
def paren(); f_build_unary(Model::ParenthesizedExpression, current); end
|
#plus_set(r) ⇒ Object
397
398
399
|
# File 'lib/puppet/pops/model/factory.rb', line 397
def plus_set(r)
f_build_binary_op(Model::AssignmentExpression, :'+=', current, r)
end
|
#record_origin(file) ⇒ Factory
Records the origin file of an element Does nothing if file is nil.
440
441
442
443
444
445
446
|
# File 'lib/puppet/pops/model/factory.rb', line 440
def record_origin(file)
return self unless file
Puppet::Pops::Adapters::OriginAdapter.adapt(current) do |a|
a.origin = file
end
self
end
|
#record_position(start_pos, end_pos) ⇒ Object
Records the position (start -> end) and computes the resulting length.
421
422
423
424
425
426
427
428
429
430
431
432
|
# File 'lib/puppet/pops/model/factory.rb', line 421
def record_position(start_pos, end_pos)
Puppet::Pops::Adapters::SourcePosAdapter.adapt(current) do |a|
a.line = start_pos.line
a.offset = start_pos.offset
a.pos = start_pos.pos
a.length = start_pos.length
if(end_pos.offset && end_pos.length)
a.length = end_pos.offset + end_pos.length - start_pos.offset
end
end
self
end
|
#relop(op, r) ⇒ Object
372
373
374
|
# File 'lib/puppet/pops/model/factory.rb', line 372
def relop op, r
f_build_binary_op(Model::RelationshipExpression, op.to_sym, current, r)
end
|
#respond_to?(meth) ⇒ Boolean
415
416
417
|
# File 'lib/puppet/pops/model/factory.rb', line 415
def respond_to?(meth)
current.respond_to?(meth) || super
end
|
#select(*args) ⇒ Object
376
377
378
|
# File 'lib/puppet/pops/model/factory.rb', line 376
def select *args
Puppet::Pops::Model::Factory.new(build(Model::SelectorExpression, current, *args))
end
|
392
393
394
|
# File 'lib/puppet/pops/model/factory.rb', line 392
def set(r)
f_build_binary_op(Model::AssignmentExpression, :'=', current, r)
end
|
332
|
# File 'lib/puppet/pops/model/factory.rb', line 332
def text(); f_build_unary(Model::TextExpression, self); end
|
#to_ops(o, *args) ⇒ Object
Checks if the object is already a model object, or build it
809
810
811
812
813
814
815
|
# File 'lib/puppet/pops/model/factory.rb', line 809
def to_ops(o, *args)
if o.kind_of?(Model::PopsObject)
o
else
build(o, *args)
end
end
|
334
|
# File 'lib/puppet/pops/model/factory.rb', line 334
def var(); f_build_unary(Model::VariableExpression, self); end
|