Class: Cabriolet::HLP::Parser
- Inherits:
-
Object
- Object
- Cabriolet::HLP::Parser
- Defined in:
- lib/cabriolet/hlp/parser.rb
Overview
Main parser for HLP files
Detects the HLP format variant and delegates to the appropriate parser:
-
QuickHelp (DOS format with “LN” signature)
-
Windows Help (WinHelp 3.x/4.x format)
Instance Attribute Summary collapse
-
#io_system ⇒ Object
readonly
Returns the value of attribute io_system.
Instance Method Summary collapse
-
#initialize(io_system = nil) ⇒ Parser
constructor
Initialize parser.
-
#parse(filename) ⇒ Models::HLPHeader, Models::WinHelpHeader
Parse an HLP file.
Constructor Details
#initialize(io_system = nil) ⇒ Parser
Initialize parser
19 20 21 |
# File 'lib/cabriolet/hlp/parser.rb', line 19 def initialize(io_system = nil) @io_system = io_system || System::IOSystem.new end |
Instance Attribute Details
#io_system ⇒ Object (readonly)
Returns the value of attribute io_system.
14 15 16 |
# File 'lib/cabriolet/hlp/parser.rb', line 14 def io_system @io_system end |
Instance Method Details
#parse(filename) ⇒ Models::HLPHeader, Models::WinHelpHeader
Parse an HLP file
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/cabriolet/hlp/parser.rb', line 28 def parse(filename) # Detect format format = detect_format(filename) # Dispatch to appropriate parser case format when :quickhelp QuickHelp::Parser.new(@io_system).parse(filename) when :winhelp WinHelp::Parser.new(@io_system).parse(filename) else raise Cabriolet::ParseError, "Unknown HLP format in file: #{filename}" end end |