Class: Uniword::Styles::StyleDefinition
- Inherits:
-
Object
- Object
- Uniword::Styles::StyleDefinition
- Defined in:
- lib/uniword/wordprocessingml/styles/style_definition.rb
Overview
Base class for all style definitions
Responsibility: Hold common style definition properties Single Responsibility: Base definition structure only
This is the base class for all style types (paragraph, character, list, table). It provides common functionality for style inheritance and property management.
Direct Known Subclasses
CharacterStyleDefinition, ListStyleDefinition, ParagraphStyleDefinition, TableStyleDefinition
Instance Attribute Summary collapse
-
#base_style ⇒ Object
readonly
Returns the value of attribute base_style.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
-
#initialize(config) ⇒ StyleDefinition
constructor
A new instance of StyleDefinition.
-
#properties ⇒ Hash
Get properties for this style.
-
#resolve_inheritance(library = nil) ⇒ Hash
Resolve inherited properties from base style.
Constructor Details
#initialize(config) ⇒ StyleDefinition
Returns a new instance of StyleDefinition.
15 16 17 18 19 |
# File 'lib/uniword/wordprocessingml/styles/style_definition.rb', line 15 def initialize(config) @name = config[:name] @base_style = config[:base_style] @config = config end |
Instance Attribute Details
#base_style ⇒ Object (readonly)
Returns the value of attribute base_style.
13 14 15 |
# File 'lib/uniword/wordprocessingml/styles/style_definition.rb', line 13 def base_style @base_style end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
13 14 15 |
# File 'lib/uniword/wordprocessingml/styles/style_definition.rb', line 13 def name @name end |
Instance Method Details
#properties ⇒ Hash
Get properties for this style
37 38 39 |
# File 'lib/uniword/wordprocessingml/styles/style_definition.rb', line 37 def properties @config[:properties] || {} end |
#resolve_inheritance(library = nil) ⇒ Hash
Resolve inherited properties from base style
25 26 27 28 29 30 31 32 |
# File 'lib/uniword/wordprocessingml/styles/style_definition.rb', line 25 def resolve_inheritance(library = nil) return properties unless @base_style && library base_def = library.send(style_type, @base_style) base_props = base_def.resolve_inheritance(library) merge_properties(base_props, properties) end |