Class: PackageFacts

Inherits:
Object
  • Object
show all
Defined in:
lib/lace/package/facts.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(package_path) ⇒ PackageFacts

Returns a new instance of PackageFacts.



11
12
13
14
15
16
17
# File 'lib/lace/package/facts.rb', line 11

def initialize package_path
  @package_path = Pathname.new(package_path)
  @facts_file = @package_path/".lace.yml"
  raise PackageFactsNotFound.new(@package_path) unless @facts_file.exist?
  @facts = facts_file_to_hash
  @unflavorable_facts = facts_file_to_hash
end

Instance Attribute Details

#facts_fileObject (readonly)

Returns the value of attribute facts_file.



5
6
7
# File 'lib/lace/package/facts.rb', line 5

def facts_file
  @facts_file
end

Instance Method Details

#config_filesObject



27
28
29
30
31
32
33
34
35
# File 'lib/lace/package/facts.rb', line 27

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



69
70
71
72
# File 'lib/lace/package/facts.rb', line 69

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



19
20
21
22
23
24
25
# File 'lib/lace/package/facts.rb', line 19

def flavor_with the_flavor
  if has_flavors? && the_flavor.nil?
    raise FlavorArgumentRequired.new flavors
  elsif has_flavors? && the_flavor != false
    flavor! the_flavor
  end
end

#flavorsObject



61
62
63
64
65
66
67
# File 'lib/lace/package/facts.rb', line 61

def flavors
  if @unflavorable_facts && @unflavorable_facts.key?("flavors")
    @unflavorable_facts["flavors"].keys.sort
  else
    []
  end
end

#has_config_files?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/lace/package/facts.rb', line 37

def has_config_files?
  has_key? 'config_files'
end

#has_flavors?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/lace/package/facts.rb', line 41

def has_flavors?
  @unflavorable_facts && !@unflavorable_facts["flavors"].nil?
end

#has_key?(key) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/lace/package/facts.rb', line 45

def has_key? key
  @unflavorable_facts && ( @unflavorable_facts.has_key?(key) or @facts.has_key?(key))
end

#homepageObject



57
58
59
# File 'lib/lace/package/facts.rb', line 57

def homepage
  @unflavorable_facts["homepage"] if @unflavorable_facts.key? "homepage"
end

#inspectObject



7
8
9
# File 'lib/lace/package/facts.rb', line 7

def inspect
  "#<Facts:#{@package_path}>"
end

#post(hook_point) ⇒ Object



78
79
80
81
82
83
84
85
# File 'lib/lace/package/facts.rb', line 78

def post hook_point
  if @unflavorable_facts.nil? or !@facts.key? "post"
    []
  else
    post_hook = @facts["post"]
    (post_hook[hook_point.to_s] || []).flatten
  end
end

#setup_filesObject



53
54
55
# File 'lib/lace/package/facts.rb', line 53

def setup_files
  @facts["setup"].flatten rescue []
end

#unflavor!Object



74
75
76
# File 'lib/lace/package/facts.rb', line 74

def unflavor!
  @facts = @unflavorable_facts
end

#versionObject



49
50
51
# File 'lib/lace/package/facts.rb', line 49

def version
  @unflavorable_facts["version"] if @unflavorable_facts.key? "version"
end