module Dry::Ability::F

Public Class Methods

collect_mappings(key, container, nsfn) { |key| ... } click to toggle source
# File lib/dry/ability/f.rb, line 40
def self.collect_mappings(key, container, nsfn)
  list = Set.new
  get_mapping(key, container, nsfn) do |key|
    key = yield(key) if block_given?
    list << key
  end
  list.to_a
end
get_mapping(key, container, nsfn) { |key| ... } click to toggle source

def self.to_mapping_key(key, *namespaces)

*namespaces, key = key if key.is_a?(Array)
coerced = coerc_key(key)
namespaces.blank ? coerced : "#{namespaces * ?.}.#{coerced}"

end

def self.ns_path(*namespaces)

namespaces.flatten!
namespaces.blank? ? nil : namespaces.join(?.)

end

# File lib/dry/ability/f.rb, line 28
def self.get_mapping(key, container, nsfn, &block)
  key = Key.new(key, nsfn)
  yield(key) if block_given?
  if container.key?(key.nsed)
    Array.wrap(container[key.nsed]).flat_map do |mapped|
      get_mapping(mapped, container, nsfn, &block)
    end
  else
    key.to_s
  end
end
string_tpl(*args, pattern) click to toggle source
# File lib/dry/ability/f.rb, line 49
def self.string_tpl(*args, pattern)
  args = args[0] if args.size == 1 && args[0].is_a?(Array)
  format(pattern, *args)
end