class PuppetResource
Class to manage puppet resources. See how we extend PuppetLint::Lexer::Token
below to understand how we filter tokens within a parsed resource.
Attributes
profile_module[RW]
role_module[RW]
Public Class Methods
new(resource_hash)
click to toggle source
# File lib/puppet-lint/plugins/check_wmf_styleguide.rb, line 9 def initialize(resource_hash) # Input should be a resource coming from # the resource index @resource = resource_hash @params = parse_params end
Public Instance Methods
class?()
click to toggle source
# File lib/puppet-lint/plugins/check_wmf_styleguide.rb, line 70 def class? # True if this is a class, @resource[:type] == :CLASS end
declared_classes()
click to toggle source
# File lib/puppet-lint/plugins/check_wmf_styleguide.rb, line 125 def declared_classes # Returns an array of all the declared classes @resource[:tokens].map(&:declared_class).compact end
declared_resources()
click to toggle source
# File lib/puppet-lint/plugins/check_wmf_styleguide.rb, line 130 def declared_resources # Returns an array of all the declared classes @resource[:tokens].select(&:declared_type?) end
filename()
click to toggle source
# File lib/puppet-lint/plugins/check_wmf_styleguide.rb, line 85 def filename # File name of the resource @resource[:filename] end
included_classes()
click to toggle source
# File lib/puppet-lint/plugins/check_wmf_styleguide.rb, line 120 def included_classes # Returns an array of all the classes included (with require/include) @resource[:tokens].map(&:included_class).compact end
legacy_hiera_calls()
click to toggle source
# File lib/puppet-lint/plugins/check_wmf_styleguide.rb, line 110 def legacy_hiera_calls # Returns an array of all the tokens referencing calls to hiera @resource[:tokens].select(&:legacy_hiera?) end
legacy_validate_calls()
click to toggle source
# File lib/puppet-lint/plugins/check_wmf_styleguide.rb, line 115 def legacy_validate_calls # Returns an array of all the tokens referencing calls to a stdlib legacy validate function @resource[:tokens].select(&:legacy_validate?) end
lookup_calls()
click to toggle source
# File lib/puppet-lint/plugins/check_wmf_styleguide.rb, line 105 def lookup_calls # Returns an array of all the tokens referencing calls to lookup @resource[:tokens].select(&:lookup?) end
module_name()
click to toggle source
# File lib/puppet-lint/plugins/check_wmf_styleguide.rb, line 90 def module_name # Module containing this resource name.split('::')[0] end
name()
click to toggle source
# File lib/puppet-lint/plugins/check_wmf_styleguide.rb, line 75 def name # Extract a normalized resource name (without the :: prefix if present) @resource[:name_token].value.gsub(/^::/, '') end
params()
click to toggle source
rubocop:enable Metrics/CyclomaticComplexity, Metrics/MethodLength
# File lib/puppet-lint/plugins/check_wmf_styleguide.rb, line 55 def params # Lazy-load and return all the parameters of the resource @params || parse_params end
parse_params()
click to toggle source
rubocop:disable Metrics/CyclomaticComplexity, Metrics/MethodLength
# File lib/puppet-lint/plugins/check_wmf_styleguide.rb, line 25 def parse_params # Parse parameters and return a hash containing # the parameter name as a key and a hash of tokens as value: # :param => the parameter token # :value => All the code tokens that represent the value of the parameter res = {} current_param = nil in_value = false return res unless @resource[:param_tokens] @resource[:param_tokens].each do |token| case token.type when :VARIABLE current_param = token.value res[current_param] ||= { param: token, value: [] } when :COMMA current_param = nil in_value = false when :EQUALS in_value = true when *PuppetLint::Lexer::FORMATTING_TOKENS # Skip non-code tokens next else res[current_param][:value] << token if in_value && token end end res end
path()
click to toggle source
# File lib/puppet-lint/plugins/check_wmf_styleguide.rb, line 80 def path # Path of the resource @resource[:path] end
profile?()
click to toggle source
# File lib/puppet-lint/plugins/check_wmf_styleguide.rb, line 95 def profile? # True if the resource is in the profile module class? && (module_name == profile_module) end
resource?(name)
click to toggle source
# File lib/puppet-lint/plugins/check_wmf_styleguide.rb, line 135 def resource?(name) # Arguments: # name (string) Name of the resource we want to search # Returns an array of all the defines of the specified resource @resource[:tokens].select { |t| t.declared_type? && t.value.gsub(/^::/, '') == name } end
role?()
click to toggle source
# File lib/puppet-lint/plugins/check_wmf_styleguide.rb, line 100 def role? # True if the resource is in the role module class? && (module_name == role_module) end
type()
click to toggle source
# File lib/puppet-lint/plugins/check_wmf_styleguide.rb, line 16 def type if class? 'class' else 'defined type' end end