require 'active_support/core_ext/hash/keys'

require 'multi_dir/version'
require 'multi_dir/paths'
require 'multi_dir/pathname_patch'

module MultiDir
  class << self
    def define_path_method(name)
      name = name.to_sym
      singleton_class.instance_eval do
        define_method(name) { self.resolve name }
      end
    end

    def [](symbol)
      Pathname.new MultiDir::Paths.instance.resolve symbol
    end
    alias_method :resolve, :[]
  end

  [ :root, :bin, :lib, :tmp, :config, :cache, :files ].each do |path|
    define_path_method path
  end
end

require 'active_support/core_ext/kernel/singleton_class'
require 'active_support/core_ext/hash/keys'

require 'multi_dir/version'
require 'multi_dir/paths'
require 'multi_dir/pathname_patch'

module MultiDir
  class << self
    def define_path_method(name)
      name = name.to_sym
      singleton_class.instance_eval do
        define_method(name) { self.resolve name }
      end
    end

    def [](symbol)
      Pathname.new MultiDir::Paths.instance.resolve symbol
    end
    alias_method :resolve, :[]
  end

  [ :root, :bin, :lib, :tmp, :config, :cache, :files ].each do |path|
    define_path_method path
  end
end

Revert "Remove AC singleton_class polyfil."
Revert "Remove AC singleton_class polyfil."

This reverts commit c05840f7f00d676f00e0971f828faa09f2d76e8b.
