Sha256: 106d76b3cc079d3fe27d935f64ca928afb57af346d9ead98a3fc801f23c56e4a

Contents?: true

Size: 493 Bytes

Versions: 4

Compression:

Stored size: 493 Bytes

Contents

# frozen_string_literal: true

require_relative "abstract_method/exceptions"

module ConvenientService
  module Support
    module AbstractMethod
      include Support::Concern

      class_methods do
        def abstract_method(*names)
          names.each do |name|
            define_method(name) do |*args, **kwargs, &block|
              raise Exceptions::AbstractMethodNotOverridden.new(instance: self, method: name)
            end
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
convenient_service-0.16.0 lib/convenient_service/support/abstract_method.rb
convenient_service-0.15.0 lib/convenient_service/support/abstract_method.rb
convenient_service-0.14.0 lib/convenient_service/support/abstract_method.rb
convenient_service-0.13.0 lib/convenient_service/support/abstract_method.rb