Sha256: 8650a037d4c659418426a4a8805c5a55775c23e0b4ef76db7d09792d04b62462

Contents?: true

Size: 579 Bytes

Versions: 6

Compression:

Stored size: 579 Bytes

Contents

# frozen_string_literal: true

module Rubysmith
  module Builders
    # Provides default implementation from which builders can inherit from.
    class Abstract
      include Import[:settings, :logger]

      def initialize(builder: Builder, **)
        @builder = -> settings, **keywords { builder.new settings, logger:, **keywords }
        super(**)
      end

      def call
        fail NoMethodError,
             "`#{self.class}##{__method__} #{method(__method__).parameters}` must be implemented."
      end

      protected

      attr_reader :builder
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rubysmith-7.9.0 lib/rubysmith/builders/abstract.rb
rubysmith-7.8.0 lib/rubysmith/builders/abstract.rb
rubysmith-7.7.0 lib/rubysmith/builders/abstract.rb
rubysmith-7.6.0 lib/rubysmith/builders/abstract.rb
rubysmith-7.5.0 lib/rubysmith/builders/abstract.rb
rubysmith-7.4.0 lib/rubysmith/builders/abstract.rb