Class: Inspec::Resources::Yum
- Inherits:
-
Object
- Object
- Inspec::Resources::Yum
- Defined in:
- lib/resources/yum.rb
Direct Known Subclasses
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')
86 87 88 |
# File 'lib/resources/yum.rb', line 86 def method_missing(name) repo(name.to_s) if !name.nil? end |
Instance Method Details
#repo(repo) ⇒ Object
81 82 83 |
# File 'lib/resources/yum.rb', line 81 def repo(repo) YumRepo.new(self, repo) end |
#repos ⇒ Object
77 78 79 |
# File 'lib/resources/yum.rb', line 77 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
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 75 |
# File 'lib/resources/yum.rb', line 50 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
90 91 92 |
# File 'lib/resources/yum.rb', line 90 def to_s 'Yum Repository' end |