class Qonfig::Uploaders::YAML

@api private @since 0.11.0

Constants

DEFAULT_OPTIONS

@return [Hash<Symbol,Any>]

@api private @since 0.11.0

KEY_SYMBOLIZER

@return [Proc]

@api private @since 0.11.0

Public Class Methods

hash_representation_options(options, &value_processor) click to toggle source

@param options [Hash<Symbol|String,Any>] @param value_processor [Block] @return [Hash]

@api private @since 0.11.0

# File lib/qonfig/uploaders/yaml.rb, line 60
def hash_representation_options(options, &value_processor)
  {}.tap do |representation_opts|
    # NOTE: this case/when with the same logic is only used for better code readbility
    # rubocop:disable Lint/DuplicateBranch
    case
    # NOTE: options has :symbolize_keys key
    when options.key?(:symbolize_keys) && !!options[:symbolize_keys]
      representation_opts[:transform_key] = KEY_SYMBOLIZER
    # NOTE: options does not have :symbolize_keys key
    when !options.key?(:symbolize_keys) && DEFAULT_OPTIONS[:symbolize_keys]
      # :nocov:
      representation_opts[:transform_key] = KEY_SYMBOLIZER
      # :nocov:
    end
    # rubocop:enable Lint/DuplicateBranch

    # NOTE: provide value transformer
    if block_given?
      representation_opts[:transform_value] = value_processor
    end
  end
end
represent_settings(settings, options, &value_processor) click to toggle source

@param settings [Qonfig::Settings] @param options [Hash<Symbol,Any>] @param value_processor [Block] @return [String]

@api private @since 0.11.0

# File lib/qonfig/uploaders/yaml.rb, line 48
def represent_settings(settings, options, &value_processor)
  settings_hash_opts = hash_representation_options(options, &value_processor)
  settings_hash = settings.__to_hash__(**settings_hash_opts)
  to_yaml_string(settings_hash, options)
end
to_yaml_string(settings_hash, yaml_options) click to toggle source

@param settings_hash [Hash<String|Symbol,Any>] @param yaml_options [Hash<Symbol,Any>] @return [String]

@api private @since 0.11.0

# File lib/qonfig/uploaders/yaml.rb, line 89
def to_yaml_string(settings_hash, yaml_options)
  representer = YAMLRepresenter.create(yaml_options)
  representer << settings_hash
  representer.tree.yaml(nil, yaml_options)
end