Class: Inspec::Resources::Yum
- Inherits:
-
Object
- Object
- Inspec::Resources::Yum
- Defined in:
- lib/inspec/resources/yum.rb
Instance Method Summary collapse
-
#method_missing(name) ⇒ Object
alias for yum.repo(‘reponame’).
- #repo(repo) ⇒ Object
- #repos ⇒ Object
-
#repositories ⇒ Object
returns all repositories works as following: search for Repo-id parse data in hashmap store data in object until n.
- #to_s ⇒ Object
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name) ⇒ Object
alias for yum.repo(‘reponame’)
85 86 87 |
# File 'lib/inspec/resources/yum.rb', line 85 def method_missing(name) repo(name.to_s) unless name.nil? end |
Instance Method Details
#repo(repo) ⇒ Object
80 81 82 |
# File 'lib/inspec/resources/yum.rb', line 80 def repo(repo) YumRepo.new(self, repo) end |
#repos ⇒ Object
76 77 78 |
# File 'lib/inspec/resources/yum.rb', line 76 def repos repositories.map { |repo| repo["id"] } end |
#repositories ⇒ Object
returns all repositories works as following: search for Repo-id
parse data in hashmap
store data in object
until n
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/inspec/resources/yum.rb', line 48 def repositories return @cache if defined?(@cache) # parse the repository data from yum # we cannot use -C, because this is not reliable and may lead to errors @command_result = inspec.command("yum -v repolist all") @content = @command_result.stdout @cache = [] repo = {} in_repo = false @content.each_line do |line| # detect repo start in_repo = true if line =~ /^\s*Repo-id\s*:\s*(.*)\b/ # detect repo end if line == "\n" && in_repo in_repo = false @cache.push(repo) repo = {} end # parse repo content if in_repo == true val = /^\s*([^:]*?)\s*:\s*(.*?)\s*$/.match(line) repo[repo_key(strip(val[1]))] = strip(val[2]) end end @cache end |
#to_s ⇒ Object
89 90 91 |
# File 'lib/inspec/resources/yum.rb', line 89 def to_s "Yum Repository" end |