Class: SvgConform::QualityMetrics::FeatureFlags
- Inherits:
-
Lutaml::Model::Serializable
- Object
- Lutaml::Model::Serializable
- SvgConform::QualityMetrics::FeatureFlags
- Defined in:
- lib/svg_conform/quality_metrics/feature_flags.rb
Overview
Immutable value object representing detected SVG features.
Instance Method Summary collapse
-
#==(other) ⇒ Object
(also: #eql?)
Value equality.
-
#advanced_feature_count ⇒ Integer
Count of advanced features present.
-
#has_advanced_features? ⇒ Boolean
True if any advanced features are present.
- #hash ⇒ Object
-
#initialize(**args) ⇒ FeatureFlags
constructor
A new instance of FeatureFlags.
-
#present_features ⇒ Array<Symbol>
List of present feature names.
Constructor Details
#initialize(**args) ⇒ FeatureFlags
Returns a new instance of FeatureFlags.
26 27 28 29 |
# File 'lib/svg_conform/quality_metrics/feature_flags.rb', line 26 def initialize(**args) super(args) freeze end |
Instance Method Details
#==(other) ⇒ Object Also known as: eql?
Value equality
32 33 34 35 36 37 38 39 |
# File 'lib/svg_conform/quality_metrics/feature_flags.rb', line 32 def ==(other) other.is_a?(FeatureFlags) && has_base64 == other.has_base64 && has_foreign_ns == other.has_foreign_ns && has_masks == other.has_masks && has_clip_paths == other.has_clip_paths && has_external_refs == other.has_external_refs end |
#advanced_feature_count ⇒ Integer
Returns Count of advanced features present.
63 64 65 |
# File 'lib/svg_conform/quality_metrics/feature_flags.rb', line 63 def advanced_feature_count present_features.size end |
#has_advanced_features? ⇒ Boolean
Returns true if any advanced features are present.
47 48 49 |
# File 'lib/svg_conform/quality_metrics/feature_flags.rb', line 47 def has_advanced_features? advanced_feature_count.positive? end |
#hash ⇒ Object
42 43 44 |
# File 'lib/svg_conform/quality_metrics/feature_flags.rb', line 42 def hash [has_base64, has_foreign_ns, has_masks, has_clip_paths, has_external_refs].hash end |
#present_features ⇒ Array<Symbol>
Returns List of present feature names.
52 53 54 55 56 57 58 59 60 |
# File 'lib/svg_conform/quality_metrics/feature_flags.rb', line 52 def present_features features = [] features << :base64 if has_base64 features << :foreign_ns if has_foreign_ns features << :masks if has_masks features << :clip_paths if has_clip_paths features << :external_refs if has_external_refs features end |