Sha256: 3302270998cf8572fccd87745184b4c19f1ad3b543e3be87ee1533406ce6bf19
Contents?: true
Size: 842 Bytes
Versions: 1
Compression:
Stored size: 842 Bytes
Contents
# frozen_string_literal: true module Runger module Ext # Convert Hash with mixed array and hash values to an # array of paths. module FlattenNames refine ::Array do def flatten_names(prefix, buf) if empty? buf << :"#{prefix}" return buf end each_with_object(buf) do |name, acc| if name.is_a?(::Symbol) acc << :"#{prefix}.#{name}" else name.flatten_names(prefix, acc) end end end end refine ::Hash do def flatten_names(prefix = nil, buf = []) each_with_object(buf) do |(k, v), acc| parent = prefix ? "#{prefix}.#{k}" : k v.flatten_names(parent, acc) end end end using self end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
runger_config-4.0.0 | lib/runger/ext/flatten_names.rb |