Verified Commit 6acc0d53 authored by Hercules Merscher's avatar Hercules Merscher 🌴
Browse files

fix: Avoid globbing files

parent 01073224
Loading
Loading
Loading
Loading
+9 −10
Original line number Diff line number Diff line
@@ -45,7 +45,7 @@ module Labkit
      #
      # @return [Hash] Hash with lazy loading behavior
      def load_on_demand
        unless directory_exists?
        unless readable_dir?
          warn("Directory not readable: #{@dir}")
          return {}
        end
@@ -62,19 +62,18 @@ module Labkit
      # @param experience_id [String] Experience identifier
      # @return [Experience, nil] Loaded experience or nil if not found/invalid
      def load_experience(experience_id)
        file_path = experience_definitions[experience_id]
        read_experience(file_path, experience_id) if file_path
      end
        file_path = @dir.join("#{experience_id}.yml")

      def directory_exists?
        @dir.exist? && @dir.directory? && @dir.readable?
        unless file_path.exist?
          warn("Invalid Covered Experience definition: #{experience_id}")
          return nil
        end

      def experience_definitions
        @experience_definitions ||=
          @dir.glob('*.yml').each_with_object({}) do |file_path, hash| # rubocop:disable Rails/IndexBy
            hash[file_path.basename('.yml').to_s] = file_path
        read_experience(file_path, experience_id) if file_path
      end

      def readable_dir?
        @dir.exist? && @dir.directory? && @dir.readable?
      end

      # Read and validate a definition experience file