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.
4808 4809 4810 4811 4812 4813 4814 |
# File 'lib/puppet/pops/model/ast.rb', line 4808 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)
4788 4789 4790 |
# File 'lib/puppet/pops/model/ast.rb', line 4788 def body @body end |
#definitions ⇒ Object (readonly)
4789 4790 4791 |
# File 'lib/puppet/pops/model/ast.rb', line 4789 def definitions @definitions end |
#locator ⇒ Object (readonly)
4790 4791 4792 |
# File 'lib/puppet/pops/model/ast.rb', line 4790 def locator @locator end |
Class Method Details
._pcore_type ⇒ Object
4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 |
# File 'lib/puppet/pops/model/ast.rb', line 4738 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
4779 4780 4781 4782 4783 4784 4785 4786 |
# File 'lib/puppet/pops/model/ast.rb', line 4779 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
4772 4773 4774 4775 4776 4777 |
# File 'lib/puppet/pops/model/ast.rb', line 4772 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
4768 4769 4770 |
# File 'lib/puppet/pops/model/ast.rb', line 4768 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
4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 |
# File 'lib/puppet/pops/model/ast.rb', line 4829 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
4824 4825 4826 4827 |
# File 'lib/puppet/pops/model/ast.rb', line 4824 def _pcore_contents yield(@body) unless @body.nil? yield(@locator) unless @locator.nil? end |
#_pcore_init_hash ⇒ Object
4816 4817 4818 4819 4820 4821 4822 |
# File 'lib/puppet/pops/model/ast.rb', line 4816 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
4792 4793 4794 |
# File 'lib/puppet/pops/model/ast.rb', line 4792 def current self end |
#eql?(o) ⇒ Boolean Also known as: ==
4842 4843 4844 4845 4846 4847 |
# File 'lib/puppet/pops/model/ast.rb', line 4842 def eql?(o) super && @body.eql?(o.body) && @definitions.eql?(o.definitions) && @locator.eql?(o.locator) end |
#line_offsets ⇒ Object
4804 4805 4806 |
# File 'lib/puppet/pops/model/ast.rb', line 4804 def line_offsets @locator.line_index end |
#source_ref ⇒ Object
4800 4801 4802 |
# File 'lib/puppet/pops/model/ast.rb', line 4800 def source_ref @locator.file end |
#source_text ⇒ Object
4796 4797 4798 |
# File 'lib/puppet/pops/model/ast.rb', line 4796 def source_text @locator.string end |