Class: CreateRubyGem::Detection::BundlerDefaults

Inherits:
Object
  • Object
show all
Defined in:
lib/create_ruby_gem/detection/bundler_defaults.rb

Overview

Reads Bundler’s own default settings (from ~/.bundle/config or env) to use as initial defaults in the wizard.

Constant Summary collapse

UNSET =

Sentinel for “no settings argument provided”.

Object.new.freeze
FALLBACKS =

Fallback defaults used when Bundler settings are unavailable.

{
  exe: false,
  coc: nil,
  changelog: nil,
  ext: false,
  git: true,
  github_username: nil,
  mit: nil,
  test: nil,
  ci: nil,
  linter: nil,
  edit: nil,
  bundle_install: false
}.freeze
KEY_MAP =

Maps option keys to their Bundler settings keys.

{
  coc: 'gem.coc',
  changelog: 'gem.changelog',
  ext: 'gem.ext',
  git: 'gem.git',
  github_username: 'gem.github_username',
  mit: 'gem.mit',
  test: 'gem.test',
  ci: 'gem.ci',
  linter: 'gem.linter'
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(settings: UNSET) ⇒ BundlerDefaults



45
46
47
# File 'lib/create_ruby_gem/detection/bundler_defaults.rb', line 45

def initialize(settings: UNSET)
  @settings = settings.equal?(UNSET) ? default_settings : settings
end

Instance Method Details

#detectHash{Symbol => Object}

Returns a hash of default values derived from Bundler settings.



52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/create_ruby_gem/detection/bundler_defaults.rb', line 52

def detect
  defaults = FALLBACKS.dup
  return defaults unless @settings

  KEY_MAP.each do |option_key, bundler_key|
    value = normalize(@settings[bundler_key])
    defaults[option_key] = value unless value.nil?
  end
  defaults
rescue StandardError
  FALLBACKS.dup
end