Class: Fontisan::Ufo::Compile::ParsedFeatures
- Inherits:
-
Object
- Object
- Fontisan::Ufo::Compile::ParsedFeatures
- Defined in:
- lib/fontisan/ufo/compile/feature_compiler.rb
Overview
Result of parsing features.fea. Aggregates ligature and pair rules by feature tag, plus any unsupported statements.
Instance Attribute Summary collapse
-
#ligatures ⇒ Object
readonly
Returns the value of attribute ligatures.
-
#pairs ⇒ Object
readonly
Returns the value of attribute pairs.
-
#unsupported ⇒ Object
readonly
Returns the value of attribute unsupported.
Instance Method Summary collapse
-
#add_ligature(tag, sequence:, result:) ⇒ Object
---- mutation (used by FeatureCompiler) ----.
- #add_pair(tag, left:, right:, value:) ⇒ Object
- #add_unsupported(tag, statement) ⇒ Object
-
#empty? ⇒ Boolean
True if no features were parsed.
-
#initialize ⇒ ParsedFeatures
constructor
A new instance of ParsedFeatures.
-
#ligatures_for(tag) ⇒ Array<Hash>
Ligature rules: [names], result: name.
-
#pairs_for(tag) ⇒ Array<Hash>
Pair rules: right:, value:.
Constructor Details
#initialize ⇒ ParsedFeatures
Returns a new instance of ParsedFeatures.
122 123 124 125 126 |
# File 'lib/fontisan/ufo/compile/feature_compiler.rb', line 122 def initialize @ligatures = Hash.new { |h, k| h[k] = [] } @pairs = Hash.new { |h, k| h[k] = [] } @unsupported = Hash.new { |h, k| h[k] = [] } end |
Instance Attribute Details
#ligatures ⇒ Object (readonly)
Returns the value of attribute ligatures.
120 121 122 |
# File 'lib/fontisan/ufo/compile/feature_compiler.rb', line 120 def ligatures @ligatures end |
#pairs ⇒ Object (readonly)
Returns the value of attribute pairs.
120 121 122 |
# File 'lib/fontisan/ufo/compile/feature_compiler.rb', line 120 def pairs @pairs end |
#unsupported ⇒ Object (readonly)
Returns the value of attribute unsupported.
120 121 122 |
# File 'lib/fontisan/ufo/compile/feature_compiler.rb', line 120 def unsupported @unsupported end |
Instance Method Details
#add_ligature(tag, sequence:, result:) ⇒ Object
---- mutation (used by FeatureCompiler) ----
147 148 149 |
# File 'lib/fontisan/ufo/compile/feature_compiler.rb', line 147 def add_ligature(tag, sequence:, result:) @ligatures[tag] << { sequence: sequence, result: result } end |
#add_pair(tag, left:, right:, value:) ⇒ Object
151 152 153 |
# File 'lib/fontisan/ufo/compile/feature_compiler.rb', line 151 def add_pair(tag, left:, right:, value:) @pairs[tag] << { left: left, right: right, value: value } end |
#add_unsupported(tag, statement) ⇒ Object
155 156 157 |
# File 'lib/fontisan/ufo/compile/feature_compiler.rb', line 155 def add_unsupported(tag, statement) @unsupported[tag] << statement end |
#empty? ⇒ Boolean
Returns true if no features were parsed.
141 142 143 |
# File 'lib/fontisan/ufo/compile/feature_compiler.rb', line 141 def empty? @ligatures.empty? && @pairs.empty? end |
#ligatures_for(tag) ⇒ Array<Hash>
Returns ligature rules: [names], result: name.
130 131 132 |
# File 'lib/fontisan/ufo/compile/feature_compiler.rb', line 130 def ligatures_for(tag) @ligatures[tag] || [] end |
#pairs_for(tag) ⇒ Array<Hash>
Returns pair rules: right:, value:.
136 137 138 |
# File 'lib/fontisan/ufo/compile/feature_compiler.rb', line 136 def pairs_for(tag) @pairs[tag] || [] end |