Class: Fontisan::Pipeline::Strategies::NamedStrategy
- Inherits:
-
BaseStrategy
- Object
- BaseStrategy
- Fontisan::Pipeline::Strategies::NamedStrategy
- Defined in:
- lib/fontisan/pipeline/strategies/named_strategy.rb
Overview
Strategy for generating instances from named instances
This strategy creates a static font instance using coordinates from a named instance defined in the fvar table. It extracts the coordinates from the specified instance and delegates to InstanceStrategy for actual generation.
Named instances are predefined design space coordinates stored in the fvar table, typically representing common styles like "Bold", "Light", "Condensed", etc.
Instance Attribute Summary collapse
-
#instance_index ⇒ Integer
readonly
Named instance index.
Attributes inherited from BaseStrategy
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ NamedStrategy
constructor
Initialize strategy with instance index.
-
#preserves_variation? ⇒ Boolean
Check if strategy preserves variation data.
-
#resolve(font) ⇒ Hash<String, String>
Resolve by using named instance coordinates.
-
#strategy_name ⇒ Symbol
Get strategy name.
Constructor Details
#initialize(options = {}) ⇒ NamedStrategy
Initialize strategy with instance index
36 37 38 39 40 41 42 43 |
# File 'lib/fontisan/pipeline/strategies/named_strategy.rb', line 36 def initialize( = {}) super @instance_index = [:instance_index] if @instance_index.nil? raise ArgumentError, "instance_index is required for NamedStrategy" end end |
Instance Attribute Details
#instance_index ⇒ Integer (readonly)
Returns Named instance index.
29 30 31 |
# File 'lib/fontisan/pipeline/strategies/named_strategy.rb', line 29 def instance_index @instance_index end |
Instance Method Details
#preserves_variation? ⇒ Boolean
Check if strategy preserves variation data
65 66 67 |
# File 'lib/fontisan/pipeline/strategies/named_strategy.rb', line 65 def preserves_variation? false end |
#resolve(font) ⇒ Hash<String, String>
Resolve by using named instance coordinates
Extracts coordinates from the fvar table's named instance and delegates to InstanceStrategy for actual instance generation.
53 54 55 56 57 58 59 60 |
# File 'lib/fontisan/pipeline/strategies/named_strategy.rb', line 53 def resolve(font) # Extract coordinates from named instance coordinates = extract_coordinates(font) # Use InstanceStrategy to generate instance instance_strategy = InstanceStrategy.new(coordinates: coordinates) instance_strategy.resolve(font) end |
#strategy_name ⇒ Symbol
Get strategy name
72 73 74 |
# File 'lib/fontisan/pipeline/strategies/named_strategy.rb', line 72 def strategy_name :named end |