Class: Lutaml::UmlRepository::StaticSite::Configuration

Inherits:
Model::Serializable
  • Object
show all
Defined in:
lib/lutaml/uml_repository/static_site/configuration.rb

Overview

Configuration for Static Site Generator using external YAML.

Follows the Dependency Inversion Principle by externalizing all configuration instead of hardcoding values. Uses lutaml-model for structured YAML parsing and validation.

Examples:

Load configuration

config = Configuration.load

Load custom configuration

config = Configuration.load("my_config.yml")

Defined Under Namespace

Classes: DocumentType, OutputConfig, OutputMode, SearchConfig, SearchField, UIConfig

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.create_default_configurationConfiguration

Create default configuration programmatically

Returns:



198
199
200
201
202
203
# File 'lib/lutaml/uml_repository/static_site/configuration.rb', line 198

def create_default_configuration
  new.tap do |config|
    config.version = "1.0"
    config.description = "Default Static Site Configuration"
  end
end

.default_config_pathString

Get default configuration file path

Returns:

  • (String)

    Path to default config



191
192
193
# File 'lib/lutaml/uml_repository/static_site/configuration.rb', line 191

def default_config_path
  File.expand_path("../../../../config/static_site.yml", __dir__)
end

.load(config_path = nil) ⇒ Configuration

Load configuration from YAML file

Parameters:

  • config_path (String, nil) (defaults to: nil)

    Path to configuration file

Returns:



177
178
179
180
181
182
183
184
185
186
# File 'lib/lutaml/uml_repository/static_site/configuration.rb', line 177

def load(config_path = nil)
  config_path ||= default_config_path

  unless File.exist?(config_path)
    return create_default_configuration
  end

  yaml_content = File.read(config_path)
  from_yaml(yaml_content)
end

Instance Method Details

#feature_enabled?(feature_name) ⇒ Boolean

Check if a feature is enabled

Parameters:

  • feature_name (String, Symbol)

    Feature name

Returns:

  • (Boolean)

    true if feature is enabled



224
225
226
227
228
229
# File 'lib/lutaml/uml_repository/static_site/configuration.rb', line 224

def feature_enabled?(feature_name)
  flags = feature_flags
  return false if flags.nil? || flags.empty?

  flags[feature_name.to_s] == true
end

#feature_flagsHash

Get features as hash

Returns:

  • (Hash)

    Feature flags



216
217
218
# File 'lib/lutaml/uml_repository/static_site/configuration.rb', line 216

def feature_flags
  @feature_flags ||= parse_hash_attribute(features)
end

#transformation_optionsHash

Get data transformation options as hash

Returns:

  • (Hash)

    Transformation options



209
210
211
# File 'lib/lutaml/uml_repository/static_site/configuration.rb', line 209

def transformation_options
  @transformation_options ||= parse_hash_attribute(data_transformation)
end