Sha256: bd68016498561d31c62630ce0b57a790f50469c0f4e967642c22f5b99229923d

Contents?: true

Size: 739 Bytes

Versions: 1

Compression:

Stored size: 739 Bytes

Contents

# frozen_string_literal: true

module CrudeMutant
  class FileLoader
    class LoadError < StandardError; end

    def self.load(file_path)
      if !File.exist?(file_path)
        raise LoadError
      end

      new(file_path, File.readlines(file_path))
    end

    attr_reader :file_path

    def initialize(file_path, contents_as_array)
      @file_path = file_path
      @contents_as_array = contents_as_array
    end
    private_class_method :new

    def lines_in_file
      @contents_as_array.size
    end

    def contents_as_array
      @contents_as_array
    end

    def without_line(line_number)
      contents_as_array.slice(0, line_number) +
        contents_as_array.slice(line_number + 1, lines_in_file)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
crude-mutant-0.1.0 lib/crude_mutant/file_loader.rb