module Faceter::Coercers

Collection of functions to coerce command arguments to node attributes

@api private

Public Class Methods

create(name = nil, **options) click to toggle source

@private

# File lib/faceter/coercers.rb, line 47
def self.create(name = nil, **options)
  { name: name, keys: options.fetch(:from) }
end
exclude(*keys, **options) click to toggle source

@private

# File lib/faceter/coercers.rb, line 41
def self.exclude(*keys, **options)
  opts = keys.any? ? { only: keys } : options
  { selector: Selector.new(opts) }
end
field(key) click to toggle source

@private

# File lib/faceter/coercers.rb, line 52
def self.field(key)
  { key: key }
end
fold(**options) click to toggle source

@private

# File lib/faceter/coercers.rb, line 57
def self.fold(**options)
  { key: options.fetch(:to) }
end
prefix(prefix, **options) click to toggle source

@private

# File lib/faceter/coercers.rb, line 14
def self.prefix(prefix, **options)
  filter = options.fetch(:separator) { "_" }
  nested = options.fetch(:nested) { false }
  selector = Selector.new(options) if options[:except] || options[:only]
  { prefix: prefix, separator: filter, nested: nested, selector: selector }
end
rename(name, **options) click to toggle source

@private

# File lib/faceter/coercers.rb, line 62
def self.rename(name, **options)
  { keys: { name => options.fetch(:to) } }
end
unfold(**options) click to toggle source

@private

# File lib/faceter/coercers.rb, line 36
def self.unfold(**options)
  { key: options.fetch(:from) }
end
unwrap(*keys, **options) click to toggle source

@private

# File lib/faceter/coercers.rb, line 22
def self.unwrap(*keys, **options)
  key = options.fetch(:from)
  opts = (keys.any? ? { only: keys } : {}).merge(options)
  { key: key, selector: Selector.new(opts) }
end
wrap(*keys, **options) click to toggle source

@private

# File lib/faceter/coercers.rb, line 29
def self.wrap(*keys, **options)
  key = options.fetch(:to)
  opts = (keys.any? ? { only: keys } : {}).merge(options)
  { key: key, selector: Selector.new(opts) }
end