Class: Uniword::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/uniword/configuration.rb,
lib/uniword/configuration/configuration_loader.rb

Overview

Global runtime configuration for Uniword.

Holds save-path policy as plain, explicitly typed attributes. This object is runtime policy only: it has no file-loading behavior (see ConfigurationLoader for external YAML config files) and no serialization behavior.

This class also serves as the namespace for configuration-related classes (ConfigurationLoader, ConfigurationError).

Examples:

Read current policy

Uniword.configuration.validate_on_save # => true

Change policy via Uniword.configure

Uniword.configure do |config|
  config.xsd_validation = true
end

Defined Under Namespace

Classes: ConfigurationError, ConfigurationLoader

Constant Summary collapse

ON_NONCOMPLIANT_MODES =

Accepted values for on_noncompliant_content.

:strip — Word-identical default: non-compliant parts are dropped at load and recorded on Package#stripped_parts. :raise — strict: parts are preserved; the save-time PackageIntegrityChecker raises Uniword::ValidationError with structured OPC-005 issues.

%i[strip raise].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Create a configuration with default policy values.

Defaults: validate_on_save: true, xsd_validation: false, log_save_fixes: true, on_noncompliant_content: :strip.



59
60
61
# File 'lib/uniword/configuration.rb', line 59

def initialize
  reset!
end

Instance Attribute Details

#log_save_fixesBoolean

Whether automatic fixes applied during save are logged.

Returns:

  • (Boolean)


47
48
49
# File 'lib/uniword/configuration.rb', line 47

def log_save_fixes
  @log_save_fixes
end

#on_noncompliant_contentSymbol

Load-time policy for non-compliant parts (no content type declaration, OS artifact, ...).

Returns:

  • (Symbol)

    :strip (default) or :raise



53
54
55
# File 'lib/uniword/configuration.rb', line 53

def on_noncompliant_content
  @on_noncompliant_content
end

#validate_on_saveBoolean

Whether documents are validated when saved.

Returns:

  • (Boolean)


37
38
39
# File 'lib/uniword/configuration.rb', line 37

def validate_on_save
  @validate_on_save
end

#xsd_validationBoolean

Whether XSD schema validation runs on save (slower, stricter).

Returns:

  • (Boolean)


42
43
44
# File 'lib/uniword/configuration.rb', line 42

def xsd_validation
  @xsd_validation
end

Instance Method Details

#reset!Configuration

Restore all attributes to their default values.

Returns:



66
67
68
69
70
71
72
# File 'lib/uniword/configuration.rb', line 66

def reset!
  @validate_on_save = true
  @xsd_validation = false
  @log_save_fixes = true
  @on_noncompliant_content = :strip
  self
end