Class: Cabriolet::HLP::QuickHelp::StructureBuilder
- Inherits:
-
Object
- Object
- Cabriolet::HLP::QuickHelp::StructureBuilder
- Defined in:
- lib/cabriolet/hlp/quickhelp/structure_builder.rb
Overview
Builds complete QuickHelp structure from file data
Instance Attribute Summary collapse
-
#case_sensitive ⇒ Object
readonly
Returns the value of attribute case_sensitive.
-
#control_char ⇒ Object
readonly
Returns the value of attribute control_char.
-
#database_name ⇒ Object
readonly
Returns the value of attribute database_name.
-
#version ⇒ Object
readonly
Returns the value of attribute version.
Instance Method Summary collapse
-
#build(topics) ⇒ Hash
Build complete QuickHelp structure from topics.
-
#initialize(version: 2, database_name: "", control_char: 0x3A, case_sensitive: false) ⇒ StructureBuilder
constructor
Initialize structure builder.
Constructor Details
#initialize(version: 2, database_name: "", control_char: 0x3A, case_sensitive: false) ⇒ StructureBuilder
Initialize structure builder
19 20 21 22 23 24 25 |
# File 'lib/cabriolet/hlp/quickhelp/structure_builder.rb', line 19 def initialize(version: 2, database_name: "", control_char: 0x3A, case_sensitive: false) @version = version @database_name = database_name @control_char = control_char @case_sensitive = case_sensitive end |
Instance Attribute Details
#case_sensitive ⇒ Object (readonly)
Returns the value of attribute case_sensitive.
11 12 13 |
# File 'lib/cabriolet/hlp/quickhelp/structure_builder.rb', line 11 def case_sensitive @case_sensitive end |
#control_char ⇒ Object (readonly)
Returns the value of attribute control_char.
11 12 13 |
# File 'lib/cabriolet/hlp/quickhelp/structure_builder.rb', line 11 def control_char @control_char end |
#database_name ⇒ Object (readonly)
Returns the value of attribute database_name.
11 12 13 |
# File 'lib/cabriolet/hlp/quickhelp/structure_builder.rb', line 11 def database_name @database_name end |
#version ⇒ Object (readonly)
Returns the value of attribute version.
11 12 13 |
# File 'lib/cabriolet/hlp/quickhelp/structure_builder.rb', line 11 def version @version end |
Instance Method Details
#build(topics) ⇒ Hash
Build complete QuickHelp structure from topics
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/cabriolet/hlp/quickhelp/structure_builder.rb', line 31 def build(topics) structure = {} # Compress topics structure[:topics] = compress_topics(topics) # Build context data structure[:contexts] = topics.map { |t| t[:context] } structure[:context_map] = topics.map.with_index { |_t, i| i } # Calculate offsets structure[:offsets] = OffsetCalculator.calculate( topics: structure[:topics], contexts: structure[:contexts], context_map: structure[:context_map], ) # Build header structure[:header] = build_header(structure) structure end |