Class: Uniword::Styles::ListStyleDefinition
- Inherits:
-
StyleDefinition
- Object
- StyleDefinition
- Uniword::Styles::ListStyleDefinition
- Defined in:
- lib/uniword/wordprocessingml/styles/list_style_definition.rb
Overview
List style definition
Responsibility: Hold list-specific style properties Single Responsibility: List style configuration only
Defines formatting properties for lists including numbering format, bullet characters, and level-specific formatting.
Instance Attribute Summary collapse
-
#levels ⇒ Object
readonly
Returns the value of attribute levels.
-
#numbering_definition ⇒ Object
readonly
Returns the value of attribute numbering_definition.
Attributes inherited from StyleDefinition
Instance Method Summary collapse
-
#full_properties ⇒ Hash
Get all properties.
-
#initialize(config) ⇒ ListStyleDefinition
constructor
A new instance of ListStyleDefinition.
-
#level(level_num) ⇒ Hash
Get level definition by level number.
-
#resolve_inheritance(library = nil) ⇒ Hash
Resolve inherited properties for lists.
Methods inherited from StyleDefinition
Constructor Details
#initialize(config) ⇒ ListStyleDefinition
Returns a new instance of ListStyleDefinition.
15 16 17 18 19 |
# File 'lib/uniword/wordprocessingml/styles/list_style_definition.rb', line 15 def initialize(config) super @numbering_definition = config[:numbering_definition] @levels = config[:levels] || [] end |
Instance Attribute Details
#levels ⇒ Object (readonly)
Returns the value of attribute levels.
13 14 15 |
# File 'lib/uniword/wordprocessingml/styles/list_style_definition.rb', line 13 def levels @levels end |
#numbering_definition ⇒ Object (readonly)
Returns the value of attribute numbering_definition.
13 14 15 |
# File 'lib/uniword/wordprocessingml/styles/list_style_definition.rb', line 13 def numbering_definition @numbering_definition end |
Instance Method Details
#full_properties ⇒ Hash
Get all properties
48 49 50 51 52 53 |
# File 'lib/uniword/wordprocessingml/styles/list_style_definition.rb', line 48 def full_properties { numbering_definition: @numbering_definition, levels: @levels, } end |
#level(level_num) ⇒ Hash
Get level definition by level number
25 26 27 |
# File 'lib/uniword/wordprocessingml/styles/list_style_definition.rb', line 25 def level(level_num) @levels[level_num] || @levels.first || {} end |
#resolve_inheritance(library = nil) ⇒ Hash
Resolve inherited properties for lists
33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/uniword/wordprocessingml/styles/list_style_definition.rb', line 33 def resolve_inheritance(library = nil) return full_properties unless @base_style && library base_def = library.list_style(@base_style) base_props = base_def.resolve_inheritance(library) { numbering_definition: @numbering_definition || base_props[:numbering_definition], levels: merge_levels(base_props[:levels], @levels), } end |