File: hostclass.rb

package info (click to toggle)
puppet-agent 8.10.0-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 27,404 kB
  • sloc: ruby: 286,820; sh: 492; xml: 116; makefile: 88; cs: 68
file content (29 lines) | stat: -rw-r--r-- 704 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# frozen_string_literal: true

require_relative '../../../puppet/parser/ast/top_level_construct'

class Puppet::Parser::AST::Hostclass < Puppet::Parser::AST::TopLevelConstruct
  attr_accessor :name, :context

  def initialize(name, context = {})
    @context = context
    @name = name
  end

  def instantiate(modname)
    new_class = Puppet::Resource::Type.new(:hostclass, @name, @context.merge(:module_name => modname))
    all_types = [new_class]
    if code
      code.each do |nested_ast_node|
        if nested_ast_node.respond_to? :instantiate
          all_types += nested_ast_node.instantiate(modname)
        end
      end
    end
    all_types
  end

  def code
    @context[:code]
  end
end