Class: Uniword::Styles::CharacterStyleDefinition

Inherits:
StyleDefinition show all
Defined in:
lib/uniword/wordprocessingml/styles/character_style_definition.rb

Overview

Character (run) style definition

Responsibility: Hold character-specific style properties Single Responsibility: Character style configuration only

Defines formatting properties for text runs including font, size, color, bold, italic, underline, etc.

Instance Attribute Summary collapse

Attributes inherited from StyleDefinition

#base_style, #name

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ CharacterStyleDefinition

Returns a new instance of CharacterStyleDefinition.



15
16
17
18
# File 'lib/uniword/wordprocessingml/styles/character_style_definition.rb', line 15

def initialize(config)
  super
  @run_properties = config[:run_properties] || {}
end

Instance Attribute Details

#run_propertiesObject (readonly)

Returns the value of attribute run_properties.



13
14
15
# File 'lib/uniword/wordprocessingml/styles/character_style_definition.rb', line 13

def run_properties
  @run_properties
end

Instance Method Details

#propertiesObject

Character styles don’t have paragraph properties



34
35
36
# File 'lib/uniword/wordprocessingml/styles/character_style_definition.rb', line 34

def properties
  {}
end

#resolve_inheritance(library = nil) ⇒ Hash

Resolve inherited run properties

Parameters:

  • library (StyleLibrary) (defaults to: nil)

    The style library to resolve base styles from

Returns:

  • (Hash)

    Merged run properties including base style properties



24
25
26
27
28
29
30
31
# File 'lib/uniword/wordprocessingml/styles/character_style_definition.rb', line 24

def resolve_inheritance(library = nil)
  return @run_properties unless @base_style && library

  base_def = library.character_style(@base_style)
  base_props = base_def.resolve_inheritance(library)

  merge_properties(base_props, @run_properties)
end