Sha256: 716ef04e4dcb2ec5ad7a9821b0e7ec7fa964f258daa67678f03a7bc55e52729c

Contents?: true

Size: 1.55 KB

Versions: 32

Compression:

Stored size: 1.55 KB

Contents

module Steep
  module Services
    class FileLoader
      attr_reader :base_dir

      def initialize(base_dir:)
        @base_dir = base_dir
      end

      def each_path_in_patterns(pattern, commandline_patterns = [])
        if block_given?
          pats = commandline_patterns.empty? ? pattern.patterns : commandline_patterns

          pats.each do |path|
            absolute_path = base_dir + path

            if absolute_path.file?
              if pattern =~ path
                yield absolute_path.relative_path_from(base_dir)
              end
            else
              files = if absolute_path.directory?
                        Pathname.glob("#{absolute_path}/**/*#{pattern.ext}")
                      else
                        Pathname.glob(absolute_path)
                      end

              files.sort.each do |source_path|
                if source_path.file?
                  relative_path = source_path.relative_path_from(base_dir)
                  unless pattern.ignore?(relative_path)
                    yield relative_path
                  end
                end
              end
            end

          end
        else
          enum_for :each_path_in_patterns, pattern, commandline_patterns
        end
      end

      def load_changes(pattern, command_line_patterns = [], changes:)
        each_path_in_patterns(pattern, command_line_patterns) do |path|
          unless changes.key?(path)
            changes[path] = [ContentChange.string((base_dir + path).read)]
          end
        end

        changes
      end
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
steep-1.4.0 lib/steep/services/file_loader.rb
steep-1.4.0.dev.5 lib/steep/services/file_loader.rb
steep-1.4.0.dev.4 lib/steep/services/file_loader.rb
steep-1.4.0.dev.3 lib/steep/services/file_loader.rb
steep-1.3.2 lib/steep/services/file_loader.rb
steep-1.3.1 lib/steep/services/file_loader.rb
steep-1.4.0.dev.2 lib/steep/services/file_loader.rb
steep-1.4.0.dev.1 lib/steep/services/file_loader.rb
steep-1.3.0 lib/steep/services/file_loader.rb
steep-1.3.0.pre.2 lib/steep/services/file_loader.rb
steep-1.3.0.pre.1 lib/steep/services/file_loader.rb
steep-1.2.1 lib/steep/services/file_loader.rb
steep-1.2.0 lib/steep/services/file_loader.rb
steep-1.2.0.pre.1 lib/steep/services/file_loader.rb
steep-1.1.1 lib/steep/services/file_loader.rb
steep-1.1.0 lib/steep/services/file_loader.rb
steep-1.1.0.pre.1 lib/steep/services/file_loader.rb
steep-1.0.2 lib/steep/services/file_loader.rb
steep-1.0.1 lib/steep/services/file_loader.rb
steep-1.0.0 lib/steep/services/file_loader.rb