Skip to content

Commit bde140e

Browse files
committed
Refactor variable assignment
The Rubocop Layout/CaseIndentation cop originally flagged Puppet::Pops::Lookup for inappropriate case indentation within variable assignments. However, upon further inspection these two variable assignments were not appropriate for case expressions, as there was no objects being compared and multiple comparisons were being made for each condition. Additionally because of method calls with long names and many arguments, these variable assignments suffered from readability issues. This commit refactors variable assignment to use if/elsif expressions instead of case expressions and reformats the code to meet the 80 character line length suggested in the Ruby style guide.
1 parent f54aa32 commit bde140e

File tree

1 file changed

+40
-20
lines changed

1 file changed

+40
-20
lines changed

lib/puppet/pops/lookup/hiera_config.rb

Lines changed: 40 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -405,16 +405,24 @@ def create_configured_data_providers(lookup_invocation, parent_data_provider, _)
405405
ext = ".#{ext}"
406406
end
407407
paths = resolve_paths(datadir, original_paths, lookup_invocation, @config_path.nil?, ext)
408-
data_providers[backend] = case
409-
when backend == 'json', backend == 'yaml'
410-
create_data_provider(backend, parent_data_provider, KEY_V3_DATA_HASH, "#{backend}_data", { KEY_DATADIR => datadir }, paths)
411-
when backend == 'hocon' && Puppet.features.hocon?
412-
create_data_provider(backend, parent_data_provider, KEY_V3_DATA_HASH, 'hocon_data', { KEY_DATADIR => datadir }, paths)
413-
when backend == 'eyaml' && Puppet.features.hiera_eyaml?
414-
create_data_provider(backend, parent_data_provider, KEY_V3_LOOKUP_KEY, 'eyaml_lookup_key', backend_config.merge(KEY_DATADIR => datadir), paths)
415-
else
416-
create_hiera3_backend_provider(backend, backend, parent_data_provider, datadir, paths, @loaded_config)
417-
end
408+
data_providers[backend] =
409+
if %w[json yaml].include? backend
410+
create_data_provider(backend, parent_data_provider, KEY_V3_DATA_HASH,
411+
"#{backend}_data", { KEY_DATADIR => datadir },
412+
paths)
413+
elsif backend == 'hocon' && Puppet.features.hocon?
414+
create_data_provider(backend, parent_data_provider, KEY_V3_DATA_HASH,
415+
'hocon_data', { KEY_DATADIR => datadir }, paths)
416+
elsif backend == 'eyaml' && Puppet.features.hiera_eyaml?
417+
create_data_provider(backend, parent_data_provider,
418+
KEY_V3_LOOKUP_KEY, 'eyaml_lookup_key',
419+
backend_config.merge(KEY_DATADIR => datadir),
420+
paths)
421+
else
422+
create_hiera3_backend_provider(backend, backend,
423+
parent_data_provider, datadir, paths,
424+
@loaded_config)
425+
end
418426
end
419427
data_providers.values
420428
end
@@ -511,16 +519,28 @@ def create_configured_data_providers(lookup_invocation, parent_data_provider, _)
511519
original_paths = he[KEY_PATHS] || [he[KEY_PATH] || name]
512520
datadir = @config_root + (he[KEY_DATADIR] || default_datadir)
513521
provider_name = he[KEY_BACKEND]
514-
data_providers[name] = case
515-
when provider_name == 'json', provider_name == 'yaml'
516-
create_data_provider(name, parent_data_provider, KEY_DATA_HASH, "#{provider_name}_data", {},
517-
resolve_paths(datadir, original_paths, lookup_invocation, @config_path.nil?, ".#{provider_name}"))
518-
when provider_name == 'hocon' && Puppet.features.hocon?
519-
create_data_provider(name, parent_data_provider, KEY_DATA_HASH, 'hocon_data', {},
520-
resolve_paths(datadir, original_paths, lookup_invocation, @config_path.nil?, '.conf'))
521-
else
522-
fail(Issues::HIERA_NO_PROVIDER_FOR_BACKEND, { :name => provider_name }, find_line_matching(/[^\w]#{provider_name}(?:[^\w]|$)/))
523-
end
522+
data_providers[name] =
523+
if %w[json yaml].include?(provider_name)
524+
create_data_provider(name, parent_data_provider, KEY_DATA_HASH,
525+
"#{provider_name}_data", {},
526+
resolve_paths(datadir,
527+
original_paths,
528+
lookup_invocation,
529+
@config_path.nil?,
530+
".#{provider_name}"))
531+
elsif provider_name == 'hocon' && Puppet.features.hocon?
532+
create_data_provider(name, parent_data_provider, KEY_DATA_HASH,
533+
'hocon_data', {},
534+
resolve_paths(datadir,
535+
original_paths,
536+
lookup_invocation,
537+
@config_path.nil?,
538+
'.conf'))
539+
else
540+
fail(Issues::HIERA_NO_PROVIDER_FOR_BACKEND,
541+
{ :name => provider_name },
542+
find_line_matching(/[^\w]#{provider_name}(?:[^\w]|$)/))
543+
end
524544
end
525545
data_providers.values
526546
end

0 commit comments

Comments
 (0)