Class: Chef::Cookbook::SyntaxCheck::PersistentSet
- Defined in:
- lib/chef/cookbook/syntax_check.rb
Overview
Chef::Cookbook::SyntaxCheck::PersistentSet
Implements set behavior with disk-based persistence. Objects in the set are expected to be strings containing only characters that are valid in filenames.
This class is used to track which files have been syntax checked so that known good files are not rechecked.
Instance Attribute Summary collapse
-
#cache_path ⇒ Object
readonly
Returns the value of attribute cache_path.
Instance Method Summary collapse
-
#add(value) ⇒ Object
Adds
value
to the set’s collection. -
#include?(value) ⇒ Boolean
Returns true if the set includes
value
. -
#initialize(cache_path = nil) ⇒ PersistentSet
constructor
Create a new PersistentSet.
Constructor Details
#initialize(cache_path = nil) ⇒ PersistentSet
Create a new PersistentSet. Values in the set are persisted by creating a file in the cache_path
directory. If not given, the value of Chef::Config is used; if that value is not configured, the value of Chef::Config[:path] is used. – history: prior to Chef 11, the cache implementation was based on moneta and configured via cache_options. Knife configs generated with Chef 11 will have ‘syntax_check_cache_path`, but older configs will have `cache_options`. `cache_options` is marked deprecated in chef/config.rb but doesn’t currently trigger a warning. See also: CHEF-3715
52 53 54 55 |
# File 'lib/chef/cookbook/syntax_check.rb', line 52 def initialize(cache_path=nil) @cache_path = cache_path || Chef::Config[:syntax_check_cache_path] || Chef::Config[:cache_options][:path] @cache_path_created = false end |
Instance Attribute Details
#cache_path ⇒ Object (readonly)
Returns the value of attribute cache_path.
38 39 40 |
# File 'lib/chef/cookbook/syntax_check.rb', line 38 def cache_path @cache_path end |
Instance Method Details
#add(value) ⇒ Object
Adds value
to the set’s collection.
58 59 60 61 |
# File 'lib/chef/cookbook/syntax_check.rb', line 58 def add(value) ensure_cache_path_created FileUtils.touch(File.join(cache_path, value)) end |
#include?(value) ⇒ Boolean
Returns true if the set includes value
64 65 66 |
# File 'lib/chef/cookbook/syntax_check.rb', line 64 def include?(value) File.exist?(File.join(cache_path, value)) end |