Sha256: 20ad27d27a4c20be829c32dfdc554c1b45df3440fbb15f59ea18528d27c12465

Contents?: true

Size: 722 Bytes

Versions: 5

Compression:

Stored size: 722 Bytes

Contents

# frozen_string_literal: true

module Jimmy
  module Loaders
    # Base class for all file loaders
    # @abstract
    class Base
      # Load the given file. Intended to be used by a {Jimmy::FileMap}.
      # @api private
      # @param [Pathname, String] file Path of the file to load
      def self.call(file)
        new(file).load
      end

      # The source file to be loaded.
      # @return Pathname
      attr_reader :source

      # @param [Pathname] source The source file to load.
      def initialize(source)
        @source = Pathname(source)
      end

      # @return [Jimmy::Schema]
      def load
        raise NotImplementedError, "Please implement #load on #{self.class}"
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
jimmy-2.1.0 lib/jimmy/loaders/base.rb
jimmy-2.0.3 lib/jimmy/loaders/base.rb
jimmy-2.0.2 lib/jimmy/loaders/base.rb
jimmy-2.0.1 lib/jimmy/loaders/base.rb
jimmy-2.0.0 lib/jimmy/loaders/base.rb