Class: Puppet::Pops::Model::Program
- Inherits:
-
PopsObject
- Object
- PopsObject
- Puppet::Pops::Model::Program
- Defined in:
- lib/puppet/pops/model/ast.rb
Instance Attribute Summary collapse
- #body ⇒ Object readonly
- #definitions ⇒ Object readonly
- #locator ⇒ Object readonly
Attributes inherited from PopsObject
Class Method Summary collapse
- ._pcore_type ⇒ Object
- .create(locator, body = nil, definitions = _pcore_type['definitions'].value) ⇒ Object
- .from_asserted_hash(init_hash) ⇒ Object
- .from_hash(init_hash) ⇒ Object
Instance Method Summary collapse
- #_pcore_all_contents(path, &block) ⇒ Object
- #_pcore_contents {|@body| ... } ⇒ Object
- #_pcore_init_hash ⇒ Object
- #current ⇒ Object
- #eql?(o) ⇒ Boolean (also: #==)
-
#initialize(locator, body = nil, definitions = _pcore_type['definitions'].value) ⇒ Program
constructor
A new instance of Program.
- #line_offsets ⇒ Object
- #source_ref ⇒ Object
- #source_text ⇒ Object
Methods inherited from PopsObject
Methods included from Types::PuppetObject
Constructor Details
#initialize(locator, body = nil, definitions = _pcore_type['definitions'].value) ⇒ Program
Returns a new instance of Program.
4522 4523 4524 4525 4526 4527 4528 |
# File 'lib/puppet/pops/model/ast.rb', line 4522 def initialize(locator, body = nil, definitions = _pcore_type['definitions'].value) super() @hash = @hash ^ body.hash ^ definitions.hash ^ locator.hash @body = body @definitions = definitions @locator = locator end |
Instance Attribute Details
#body ⇒ Object (readonly)
4502 4503 4504 |
# File 'lib/puppet/pops/model/ast.rb', line 4502 def body @body end |
#definitions ⇒ Object (readonly)
4503 4504 4505 |
# File 'lib/puppet/pops/model/ast.rb', line 4503 def definitions @definitions end |
#locator ⇒ Object (readonly)
4504 4505 4506 |
# File 'lib/puppet/pops/model/ast.rb', line 4504 def locator @locator end |
Class Method Details
._pcore_type ⇒ Object
4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 |
# File 'lib/puppet/pops/model/ast.rb', line 4452 def self._pcore_type @_pcore_type ||= Types::PObjectType.new('Puppet::AST::Program', { 'parent' => PopsObject._pcore_type, 'attributes' => { 'body' => { 'type' => Types::POptionalType.new(Expression._pcore_type), 'value' => nil }, 'definitions' => { 'type' => Types::PArrayType.new(Definition._pcore_type), 'kind' => 'reference', 'value' => [] }, 'source_text' => { 'type' => Types::PStringType::DEFAULT, 'kind' => 'derived' }, 'source_ref' => { 'type' => Types::PStringType::DEFAULT, 'kind' => 'derived' }, 'line_offsets' => { 'type' => Types::PArrayType.new(Types::PIntegerType::DEFAULT), 'kind' => 'derived' }, 'locator' => Parser::Locator::Locator19._pcore_type } }) end |
.create(locator, body = nil, definitions = _pcore_type['definitions'].value) ⇒ Object
4493 4494 4495 4496 4497 4498 4499 4500 |
# File 'lib/puppet/pops/model/ast.rb', line 4493 def self.create(locator, body = nil, definitions = _pcore_type['definitions'].value) ta = Types::TypeAsserter attrs = _pcore_type.attributes(true) ta.assert_instance_of('Puppet::AST::Program[body]', attrs['body'].type, body) ta.assert_instance_of('Puppet::AST::Program[definitions]', attrs['definitions'].type, definitions) ta.assert_instance_of('Puppet::AST::Program[locator]', attrs['locator'].type, locator) new(locator, body, definitions) end |
.from_asserted_hash(init_hash) ⇒ Object
4486 4487 4488 4489 4490 4491 |
# File 'lib/puppet/pops/model/ast.rb', line 4486 def self.from_asserted_hash(init_hash) new( init_hash['locator'], init_hash['body'], init_hash.fetch('definitions') { _pcore_type['definitions'].value }) end |
.from_hash(init_hash) ⇒ Object
4482 4483 4484 |
# File 'lib/puppet/pops/model/ast.rb', line 4482 def self.from_hash(init_hash) from_asserted_hash(Types::TypeAsserter.assert_instance_of('Puppet::AST::Program initializer', _pcore_type.init_hash_type, init_hash)) end |
Instance Method Details
#_pcore_all_contents(path, &block) ⇒ Object
4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 |
# File 'lib/puppet/pops/model/ast.rb', line 4543 def _pcore_all_contents(path, &block) path << self unless @body.nil? block.call(@body, path) @body._pcore_all_contents(path, &block) end unless @locator.nil? block.call(@locator, path) @locator._pcore_all_contents(path, &block) end path.pop end |
#_pcore_contents {|@body| ... } ⇒ Object
4538 4539 4540 4541 |
# File 'lib/puppet/pops/model/ast.rb', line 4538 def _pcore_contents yield(@body) unless @body.nil? yield(@locator) unless @locator.nil? end |
#_pcore_init_hash ⇒ Object
4530 4531 4532 4533 4534 4535 4536 |
# File 'lib/puppet/pops/model/ast.rb', line 4530 def _pcore_init_hash result = super result['body'] = @body unless @body == nil result['definitions'] = @definitions unless _pcore_type['definitions'].default_value?(@definitions) result['locator'] = @locator result end |
#current ⇒ Object
4506 4507 4508 |
# File 'lib/puppet/pops/model/ast.rb', line 4506 def current self end |
#eql?(o) ⇒ Boolean Also known as: ==
4556 4557 4558 4559 4560 4561 |
# File 'lib/puppet/pops/model/ast.rb', line 4556 def eql?(o) super && @body.eql?(o.body) && @definitions.eql?(o.definitions) && @locator.eql?(o.locator) end |
#line_offsets ⇒ Object
4518 4519 4520 |
# File 'lib/puppet/pops/model/ast.rb', line 4518 def line_offsets @locator.line_index end |
#source_ref ⇒ Object
4514 4515 4516 |
# File 'lib/puppet/pops/model/ast.rb', line 4514 def source_ref @locator.file end |
#source_text ⇒ Object
4510 4511 4512 |
# File 'lib/puppet/pops/model/ast.rb', line 4510 def source_text @locator.string end |