Class: Inspec::ProfileContext
- Inherits:
-
Object
- Object
- Inspec::ProfileContext
- Defined in:
- lib/inspec/profile_context.rb
Overview
rubocop:disable Metrics/ClassLength
Instance Attribute Summary collapse
-
#rules ⇒ Object
readonly
Returns the value of attribute rules.
Instance Method Summary collapse
-
#initialize(profile_id, backend, conf) ⇒ ProfileContext
constructor
A new instance of ProfileContext.
- #load(content, source = nil, line = nil) ⇒ Object
- #register_rule(r) ⇒ Object
- #reload_dsl ⇒ Object
- #set_header(field, val) ⇒ Object
- #unregister_rule(id) ⇒ Object
Constructor Details
#initialize(profile_id, backend, conf) ⇒ ProfileContext
Returns a new instance of ProfileContext.
12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/inspec/profile_context.rb', line 12 def initialize(profile_id, backend, conf) if backend.nil? fail 'ProfileContext is initiated with a backend == nil. ' \ 'This is a backend error which must be fixed upstream.' end @profile_id = profile_id @backend = backend @conf = conf.dup @rules = {} reload_dsl end |
Instance Attribute Details
#rules ⇒ Object (readonly)
Returns the value of attribute rules.
11 12 13 |
# File 'lib/inspec/profile_context.rb', line 11 def rules @rules end |
Instance Method Details
#load(content, source = nil, line = nil) ⇒ Object
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/inspec/profile_context.rb', line 32 def load(content, source = nil, line = nil) @current_load = { file: source } if content.is_a? Proc @profile_context.instance_eval(&content) elsif source.nil? && line.nil? @profile_context.instance_eval(content) else @profile_context.instance_eval(content, source || 'unknown', line || 1) end end |
#register_rule(r) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/inspec/profile_context.rb', line 48 def register_rule(r) # get the full ID r.instance_variable_set(:@__file, @current_load[:file]) r.instance_variable_set(:@__group_title, @current_load[:title]) full_id = Inspec::Rule.full_id(@profile_id, r) if full_id.nil? # TODO: error return end # add the rule to the registry existing = @rules[full_id] if existing.nil? @rules[full_id] = r else Inspec::Rule.merge(existing, r) end end |
#reload_dsl ⇒ Object
26 27 28 29 30 |
# File 'lib/inspec/profile_context.rb', line 26 def reload_dsl resources_dsl = Inspec::Resource.create_dsl(@backend) ctx = create_context(resources_dsl, rule_context(resources_dsl)) @profile_context = ctx.new(@backend, @conf) end |
#set_header(field, val) ⇒ Object
67 68 69 |
# File 'lib/inspec/profile_context.rb', line 67 def set_header(field, val) @current_load[field] = val end |
#unregister_rule(id) ⇒ Object
43 44 45 46 |
# File 'lib/inspec/profile_context.rb', line 43 def unregister_rule(id) full_id = Inspec::Rule.full_id(@profile_id, id) @rules[full_id] = nil end |