Class: PackageFacts
- Inherits:
-
Object
- Object
- PackageFacts
- Defined in:
- lib/lace/package/facts.rb
Instance Attribute Summary collapse
-
#facts_file ⇒ Object
readonly
Returns the value of attribute facts_file.
Instance Method Summary collapse
- #config_files ⇒ Object
- #flavor!(the_flavor) ⇒ Object
- #flavor_with(the_flavor) ⇒ Object
- #flavors ⇒ Object
- #globbed_folder ⇒ Object
- #has_config_files? ⇒ Boolean
- #has_flavors? ⇒ Boolean
- #homepage ⇒ Object
-
#initialize(package_path) ⇒ PackageFacts
constructor
A new instance of PackageFacts.
- #inspect ⇒ Object
- #key?(key) ⇒ Boolean
- #post(hook_point) ⇒ Object
- #setup_files ⇒ Object
- #unflavor! ⇒ Object
- #version ⇒ Object
Constructor Details
#initialize(package_path) ⇒ PackageFacts
Returns a new instance of PackageFacts.
13 14 15 16 17 18 19 20 |
# File 'lib/lace/package/facts.rb', line 13 def initialize(package_path) @package_path = Pathname.new(package_path) @facts_file = @package_path / '.lace.yml' raise PackageFactsNotFound, @package_path unless @facts_file.exist? @facts = facts_file_to_hash @unflavorable_facts = facts_file_to_hash end |
Instance Attribute Details
#facts_file ⇒ Object (readonly)
Returns the value of attribute facts_file.
7 8 9 |
# File 'lib/lace/package/facts.rb', line 7 def facts_file @facts_file end |
Instance Method Details
#config_files ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/lace/package/facts.rb', line 30 def config_files if has_config_files? @facts['config_files'].flatten.map do |path| Pathname.glob(@package_path + path).delete_if do |match| match.directory? and path.include? '*' end end.flatten else [] end end |
#flavor!(the_flavor) ⇒ Object
82 83 84 85 86 |
# File 'lib/lace/package/facts.rb', line 82 def flavor!(the_flavor) raise PackageFlavorDoesNotExist.new(the_flavor, flavors) unless flavors.include? the_flavor @facts = @unflavorable_facts['flavors'][the_flavor] end |
#flavor_with(the_flavor) ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/lace/package/facts.rb', line 22 def flavor_with(the_flavor) if has_flavors? && the_flavor.nil? raise FlavorArgumentRequired, flavors elsif has_flavors? && the_flavor != false flavor! the_flavor end end |
#flavors ⇒ Object
74 75 76 77 78 79 80 |
# File 'lib/lace/package/facts.rb', line 74 def flavors if @unflavorable_facts&.key?('flavors') @unflavorable_facts['flavors'].keys.sort else [] end end |
#globbed_folder ⇒ Object
41 42 43 44 45 46 |
# File 'lib/lace/package/facts.rb', line 41 def globbed_folder if has_config_files? @facts['config_files'].flatten.select { |f| f.include? '*' } else [] end end |
#has_config_files? ⇒ Boolean
48 49 50 |
# File 'lib/lace/package/facts.rb', line 48 def has_config_files? key? 'config_files' end |
#has_flavors? ⇒ Boolean
52 53 54 |
# File 'lib/lace/package/facts.rb', line 52 def has_flavors? @unflavorable_facts && !@unflavorable_facts['flavors'].nil? end |
#homepage ⇒ Object
70 71 72 |
# File 'lib/lace/package/facts.rb', line 70 def homepage @unflavorable_facts['homepage'] if @unflavorable_facts.key? 'homepage' end |
#inspect ⇒ Object
9 10 11 |
# File 'lib/lace/package/facts.rb', line 9 def inspect "#<Facts:#{@package_path}>" end |
#key?(key) ⇒ Boolean
56 57 58 |
# File 'lib/lace/package/facts.rb', line 56 def key?(key) @unflavorable_facts && (@unflavorable_facts.key?(key) or @facts.key?(key)) end |
#post(hook_point) ⇒ Object
92 93 94 95 96 97 98 99 |
# File 'lib/lace/package/facts.rb', line 92 def post(hook_point) if @unflavorable_facts.nil? || !@facts.key?('post') [] else post_hook = @facts['post'] (post_hook[hook_point.to_s] || []).flatten end end |
#setup_files ⇒ Object
64 65 66 67 68 |
# File 'lib/lace/package/facts.rb', line 64 def setup_files @facts['setup'].flatten rescue StandardError [] end |
#unflavor! ⇒ Object
88 89 90 |
# File 'lib/lace/package/facts.rb', line 88 def unflavor! @facts = @unflavorable_facts end |
#version ⇒ Object
60 61 62 |
# File 'lib/lace/package/facts.rb', line 60 def version @unflavorable_facts['version'] if @unflavorable_facts.key? 'version' end |