Class: ChefDK::Policyfile::StorageConfig

Inherits:
Object
  • Object
show all
Defined in:
lib/chef-dk/policyfile/storage_config.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ StorageConfig

Returns a new instance of StorageConfig.



32
33
34
35
36
37
38
# File 'lib/chef-dk/policyfile/storage_config.rb', line 32

def initialize(options = {})
  @relative_paths_root = Dir.pwd
  @cache_path = CookbookOmnifetch.storage_path
  @policyfile_filename = "<< Policyfile filename not specified >>"
  @policyfile_lock_filename = "<< Policyfile lock filename not specified >>"
  handle_options(options)
end

Instance Attribute Details

#cache_pathObject

Returns the value of attribute cache_path.



27
28
29
# File 'lib/chef-dk/policyfile/storage_config.rb', line 27

def cache_path
  @cache_path
end

#policyfile_filenameObject (readonly)

Returns the value of attribute policyfile_filename.



29
30
31
# File 'lib/chef-dk/policyfile/storage_config.rb', line 29

def policyfile_filename
  @policyfile_filename
end

#policyfile_lock_filenameObject (readonly)

Returns the value of attribute policyfile_lock_filename.



30
31
32
# File 'lib/chef-dk/policyfile/storage_config.rb', line 30

def policyfile_lock_filename
  @policyfile_lock_filename
end

#relative_paths_rootObject

Returns the value of attribute relative_paths_root.



26
27
28
# File 'lib/chef-dk/policyfile/storage_config.rb', line 26

def relative_paths_root
  @relative_paths_root
end

Instance Method Details

#policyfile_expanded_pathObject



60
61
62
# File 'lib/chef-dk/policyfile/storage_config.rb', line 60

def policyfile_expanded_path
  File.expand_path(policyfile_filename, relative_paths_root)
end

#policyfile_lock_expanded_pathObject



64
65
66
# File 'lib/chef-dk/policyfile/storage_config.rb', line 64

def policyfile_lock_expanded_path
  File.expand_path(policyfile_lock_filename, relative_paths_root)
end

#use_policyfile(policyfile_filename) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/chef-dk/policyfile/storage_config.rb', line 40

def use_policyfile(policyfile_filename)
  if policyfile_filename.end_with?(".lock.json")
    return use_policyfile_lock(policyfile_filename)
  end
  unless policyfile_filename.end_with?(".rb")
    raise InvalidPolicyfileFilename, "Policyfile filenames must end with `.rb' extension (you gave: `#{policyfile_filename}')"
  end
  @policyfile_filename = policyfile_filename
  @policyfile_lock_filename = policyfile_filename.sub(/\.rb\Z/, '.lock.json')
  @relative_paths_root = File.dirname(policyfile_filename)
  self
end

#use_policyfile_lock(policyfile_lock_filename) ⇒ Object



53
54
55
56
57
58
# File 'lib/chef-dk/policyfile/storage_config.rb', line 53

def use_policyfile_lock(policyfile_lock_filename)
  @policyfile_lock_filename = policyfile_lock_filename
  @policyfile_filename = policyfile_lock_filename.sub(/\.lock\.json\Z/, '.rb')
  @relative_paths_root = File.dirname(policyfile_lock_filename)
  self
end