Sha256: f81fcd192f3a40c31ea01c80541bb8268fe1491de320b48e4b13c4c315af4d1c

Contents?: true

Size: 863 Bytes

Versions: 8

Compression:

Stored size: 863 Bytes

Contents

# frozen_string_literal: true

module Vertebrae
  module Base
    def logger
      @@logger ||= Logger.new(STDOUT)
    end

    def logger=(logger)
      @@logger = logger
    end

    class << self
      def logger
        @@logger ||= Logger.new(STDOUT)
      end

      def logger=(logger)
        @@logger = logger
      end
    end

    # implement this in your api
    #
    def new(_options = {}, &_block)
      raise "implement me!"
    end

    def method_missing(method, *args, &block)
      return super unless new.respond_to?(method)
      new.send(method, *args, &block)
    end

    def respond_to?(method, include_private = false)
      # Avoid infinite loop error when attempting to stub the `new` method
      return true if method.to_s == 'new'

      new.respond_to?(method, include_private) || super(method, include_private)
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
vertebrae-0.8.0 lib/vertebrae/base.rb
vertebrae-1.0.5 lib/vertebrae/base.rb
vertebrae-1.0.4 lib/vertebrae/base.rb
vertebrae-1.0.2 lib/vertebrae/base.rb
vertebrae-1.0.1 lib/vertebrae/base.rb
vertebrae-1.0.0 lib/base.rb
vertebrae-0.7.0 lib/base.rb
vertebrae-0.6.2 lib/base.rb