Sha256: d67fdbc93947429a48b30c22f8bbe35d24acab9f98df66de5818b6aaf1e3add7

Contents?: true

Size: 1.14 KB

Versions: 43

Compression:

Stored size: 1.14 KB

Contents

# frozen_string_literal: true

require 'eac_fs/traverser'
require 'eac_ruby_utils/core_ext'

module EhbrsRubyUtils
  module Fs
    class Selected
      require_sub __FILE__
      DEFAULT_FILENAME = '.selected'

      enable_listable
      enable_simple_cache
      lists.add_symbol :option, :filename, :target_name_builder
      common_constructor :root_path, :options, default: [{}] do
        self.root_path = root_path.to_pathname
        self.options = self.class.lists.option.hash_keys_validate!(options)
      end

      def build(target_dir, &directory_target_basename)
        ::EhbrsRubyUtils::Fs::Selected::Build.new(self, target_dir, &directory_target_basename)
      end

      def filename
        options[OPTION_FILENAME].if_present(DEFAULT_FILENAME)
      end

      private

      # @return [Pathname]
      def found_uncached
        r = []
        ft = ::EacFs::Traverser.new(
          recursive: true,
          hidden_directories: true,
          check_file: lambda do |file|
            r << file.parent if file.basename.to_path == filename.to_s
          end
        )
        ft.check_path(root_path)
        r.sort
      end
    end
  end
end

Version data entries

43 entries across 43 versions & 2 rubygems

Version Path
ehbrs_ruby_utils-0.44.3 lib/ehbrs_ruby_utils/fs/selected.rb
ehbrs_ruby_utils-0.44.2 lib/ehbrs_ruby_utils/fs/selected.rb
ehbrs_ruby_utils-0.44.1 lib/ehbrs_ruby_utils/fs/selected.rb
ehbrs_ruby_utils-0.44.0 lib/ehbrs_ruby_utils/fs/selected.rb
ehbrs_ruby_utils-0.41.1 lib/ehbrs_ruby_utils/fs/selected.rb
ehbrs_ruby_utils-0.41.0 lib/ehbrs_ruby_utils/fs/selected.rb
ehbrs_ruby_utils-0.40.0 lib/ehbrs_ruby_utils/fs/selected.rb
ehbrs_ruby_utils-0.39.0 lib/ehbrs_ruby_utils/fs/selected.rb
ehbrs_ruby_utils-0.38.0 lib/ehbrs_ruby_utils/fs/selected.rb
ehbrs_ruby_utils-0.37.0 lib/ehbrs_ruby_utils/fs/selected.rb
ehbrs_ruby_utils-0.36.1 lib/ehbrs_ruby_utils/fs/selected.rb
ehbrs_ruby_utils-0.36.0 lib/ehbrs_ruby_utils/fs/selected.rb
ehbrs_ruby_utils-0.35.0 lib/ehbrs_ruby_utils/fs/selected.rb
ehbrs_ruby_utils-0.33.0 lib/ehbrs_ruby_utils/fs/selected.rb
ehbrs_ruby_utils-0.32.0 lib/ehbrs_ruby_utils/fs/selected.rb
ehbrs_ruby_utils-0.31.0 lib/ehbrs_ruby_utils/fs/selected.rb
ehbrs_ruby_utils-0.30.0 lib/ehbrs_ruby_utils/fs/selected.rb
ehbrs_ruby_utils-0.29.0 lib/ehbrs_ruby_utils/fs/selected.rb
ehbrs_ruby_utils-0.28.0 lib/ehbrs_ruby_utils/fs/selected.rb
ehbrs_ruby_utils-0.27.1 lib/ehbrs_ruby_utils/fs/selected.rb