lib/pdk/config/json_schema_setting.rb in pdk-2.3.0 vs lib/pdk/config/json_schema_setting.rb in pdk-2.4.0
- old
+ new
@@ -1,53 +1,53 @@
-require 'pdk'
-
-module PDK
- class Config
- class JSONSchemaSetting < PDK::Config::Setting
- # Initialises the PDK::Config::JSONSchemaSetting object.
- #
- # @see PDK::Config::Setting.initialize
- def initialize(_name, namespace, _initial_value)
- raise 'The JSONSchemaSetting object can only be created within the JSONSchemaNamespace' unless namespace.is_a?(PDK::Config::JSONSchemaNamespace)
- super
- end
-
- # Verifies that the new setting value is valid by calling the JSON schema validator on
- # a hash which includes the new setting
- #
- # @see PDK::Config::Setting.validate!
- def validate!(value)
- # Get the existing namespace data
- new_document = namespace.to_h
- # ... set the new value
- new_document[@name] = value
- begin
- # ... add validate it
- namespace.validate_document!(new_document)
- rescue ::JSON::Schema::ValidationError => e
- raise ArgumentError, _('%{key} %{message}') % {
- key: qualified_name,
- message: e.message,
- }
- end
- end
-
- # Evaluate the default setting, firstly from the JSON schema and then
- # from any other default evaluators in the settings chain.
- #
- # @see PDK::Config::Setting.default
- #
- # @return [Object, nil] the result of evaluating the block given to
- # {#default_to}, or `nil` if the setting has no default.
- def default
- # Return the default from the schema document if it exists
- if namespace.schema_property_names.include?(@name)
- prop_schema = namespace.schema['properties'][@name]
- return prop_schema['default'] unless prop_schema['default'].nil?
- end
- # ... otherwise call the settings chain default
- # and if that doesn't exist, just return nil
- @previous_setting.nil? ? nil : @previous_setting.default
- end
- end
- end
-end
+require 'pdk'
+
+module PDK
+ class Config
+ class JSONSchemaSetting < PDK::Config::Setting
+ # Initialises the PDK::Config::JSONSchemaSetting object.
+ #
+ # @see PDK::Config::Setting.initialize
+ def initialize(_name, namespace, _initial_value)
+ raise 'The JSONSchemaSetting object can only be created within the JSONSchemaNamespace' unless namespace.is_a?(PDK::Config::JSONSchemaNamespace)
+ super
+ end
+
+ # Verifies that the new setting value is valid by calling the JSON schema validator on
+ # a hash which includes the new setting
+ #
+ # @see PDK::Config::Setting.validate!
+ def validate!(value)
+ # Get the existing namespace data
+ new_document = namespace.to_h
+ # ... set the new value
+ new_document[@name] = value
+ begin
+ # ... add validate it
+ namespace.validate_document!(new_document)
+ rescue ::JSON::Schema::ValidationError => e
+ raise ArgumentError, _('%{key} %{message}') % {
+ key: qualified_name,
+ message: e.message,
+ }
+ end
+ end
+
+ # Evaluate the default setting, firstly from the JSON schema and then
+ # from any other default evaluators in the settings chain.
+ #
+ # @see PDK::Config::Setting.default
+ #
+ # @return [Object, nil] the result of evaluating the block given to
+ # {#default_to}, or `nil` if the setting has no default.
+ def default
+ # Return the default from the schema document if it exists
+ if namespace.schema_property_names.include?(@name)
+ prop_schema = namespace.schema['properties'][@name]
+ return prop_schema['default'] unless prop_schema['default'].nil?
+ end
+ # ... otherwise call the settings chain default
+ # and if that doesn't exist, just return nil
+ @previous_setting.nil? ? nil : @previous_setting.default
+ end
+ end
+ end
+end