Project

General

Profile

Download (1.21 KB) Statistics
| Branch: | Tag: | Revision:
require 'proxy/puppet/initializer'
require 'proxy/puppet/class_scanner'
require 'proxy/puppet/class_scanner_eparser'

module Proxy::Puppet

class PuppetClass

class << self
# scans a given directory and its sub directory for puppet classes
# returns an array of PuppetClass objects.
def scan_directory directory, eparser = false
# Get a Puppet Parser to parse the manifest source
Initializer.load

if eparser
ClassScannerEParser.scan_directory directory
else
ClassScanner.scan_directory directory
end
end
end

def initialize name, params = {}
@klass = name || raise("Must provide puppet class name")
@params = params
end

def to_s
self.module.nil? ? name : "#{self.module}::#{name}"
end

# returns module name (excluding of the class name)
def module
klass[0..(klass.index("::")-1)] if has_module?(klass)
end

# returns class name (excluding of the module name)
def name
has_module?(klass) ? klass[(klass.index("::")+2)..-1] : klass
end

attr_reader :params

private
attr_reader :klass

def has_module?(klass)
!!klass.index("::")
end

end
end
(8-8/11)