class CFA::Grub2::GrubCfg::Parser
@private only internal parser
Public Class Methods
empty()
click to toggle source
# File lib/cfa/grub2/grub_cfg.rb, line 33 def self.empty [] end
parse(string)
click to toggle source
# File lib/cfa/grub2/grub_cfg.rb, line 16 def self.parse(string) submenu = [] string.lines.each_with_object([]) do |line, result| case line when /menuentry\s+'/ then result << parse_entry(line, submenu) when /^\s*}\s*\n/ then submenu.pop when /submenu\s+'/ submenu.push(line[/\s*submenu\s+'([^']+)'.*/, 1]) end end end
serialize(_string)
click to toggle source
# File lib/cfa/grub2/grub_cfg.rb, line 28 def self.serialize(_string) raise NotImplementedError, "Serializing not implemented, use grub2 generator" end
Private Class Methods
parse_entry(line, submenu)
click to toggle source
# File lib/cfa/grub2/grub_cfg.rb, line 37 def self.parse_entry(line, submenu) entry = line[/\s*menuentry\s+'([^']+)'.*/, 1] submenu.push(entry) { title: entry, path: submenu.join(">") } end