From ed0f7d3facec7c541ffd7326f3a7e6b78fe3a846 Mon Sep 17 00:00:00 2001 From: Dasun Pubudumal Date: Thu, 14 Aug 2025 14:08:05 +0100 Subject: [PATCH 1/3] Adding some documentation! --- config/initializers/settings.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/config/initializers/settings.rb b/config/initializers/settings.rb index 73f35f132b..df0493dfeb 100644 --- a/config/initializers/settings.rb +++ b/config/initializers/settings.rb @@ -12,6 +12,8 @@ def configuration_filename private :configuration_filename def instance # rubocop:todo Metrics/AbcSize + # @instance is a Hashie::Mash object that contains all the settings loaded from the YAML file. + # It allows for method calls like Settings.pipelines, Settings.purposes, etc. return @instance if @instance.present? # Ideally we'd do Hashie::Mash.load(File.read(configuration_filename)) here @@ -23,6 +25,8 @@ def instance # rubocop:todo Metrics/AbcSize # To view a list of pipeline groups and respective pipelines: # e.g. Settings.pipelines.group_by(&:pipeline_group).transform_values { |pipelines| pipelines.map(&:name) } + + # This line has specifically been set to customise the behaviour of loading the pipelines. @instance.pipelines = ConfigLoader::PipelinesLoader.new.pipelines @instance @@ -38,6 +42,9 @@ def instance # rubocop:todo Metrics/AbcSize # rubocop:enable Style/StderrPuts end + # This line is making it possible to access configuration using + # the Settings. syntax. For example, Settings.pipelines, Settings.purposes, etc. + # It delegates all method calls to the instance of Settings. delegate_missing_to :instance def reinitialize From 5b9431e5f5a5965d24996fe9c4ef3fad2a38e7a9 Mon Sep 17 00:00:00 2001 From: Dasun Pubudumal Date: Thu, 14 Aug 2025 14:09:56 +0100 Subject: [PATCH 2/3] [skip ci] Adding some documentation! --- config/initializers/settings.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/initializers/settings.rb b/config/initializers/settings.rb index df0493dfeb..1949eb24e9 100644 --- a/config/initializers/settings.rb +++ b/config/initializers/settings.rb @@ -11,6 +11,9 @@ def configuration_filename end private :configuration_filename + # When invoked, this method will return a Hashie::Mash object that contains all the settings loaded from + # the YAML file. + # For example, you can access settings like `Settings.pipelines`, `Settings.purposes`, etc. def instance # rubocop:todo Metrics/AbcSize # @instance is a Hashie::Mash object that contains all the settings loaded from the YAML file. # It allows for method calls like Settings.pipelines, Settings.purposes, etc. From 87503b4b9def689d2bf9574740cd781b935dffd2 Mon Sep 17 00:00:00 2001 From: Dasun Pubudumal Date: Thu, 14 Aug 2025 14:18:59 +0100 Subject: [PATCH 3/3] [skip ci] Adding some documentation! --- config/initializers/settings.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/settings.rb b/config/initializers/settings.rb index 1949eb24e9..d0840d4ab7 100644 --- a/config/initializers/settings.rb +++ b/config/initializers/settings.rb @@ -47,7 +47,7 @@ def instance # rubocop:todo Metrics/AbcSize # This line is making it possible to access configuration using # the Settings. syntax. For example, Settings.pipelines, Settings.purposes, etc. - # It delegates all method calls to the instance of Settings. + # It delegates all method calls to the Mash (which is @instance here). delegate_missing_to :instance def reinitialize