Method: Toaster::ResourceInspector.get_accessed_parameters
- Defined in:
- lib/toaster/chef/resource_inspector.rb
.get_accessed_parameters(task_or_sourcecode, cookbook_paths = []) ⇒ Object
@@state_config_cache = {} # caching doesn’t work here anymore
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/toaster/chef/resource_inspector.rb', line 36 def self.get_accessed_parameters(task_or_sourcecode, cookbook_paths = []) result = [] resource_src = task_or_sourcecode.respond_to?("sourcecode") ? task_or_sourcecode.sourcecode : task_or_sourcecode.to_s symbol = ":[a-zA-Z0-9_]+" numeric_index = "[0-9]+" quoted_string1 = '"[^\\]]+"' quoted_string2 = "'[^\\]]+'" resource_src.scan(/node((\[((#{symbol})|(#{numeric_index})|(#{quoted_string1})|(#{quoted_string2}))\][ \t]*)+)/).each do |param| param = param[0].strip param = MarkupUtil.convert_array_to_dot_notation(param) if task_or_sourcecode.kind_of?(Task) param = TaskParameter.new(:task => task_or_sourcecode, :key => param) else param = TaskParameter.new(:key => param) end exists = result.find { |p| (p.kind_of?(TaskParameter) ? p.key : p) == (param.kind_of?(TaskParameter) ? param.key : param) } #puts "exists: #{param} - #{exists}" if !exists result << param end end return result end |