Sha256: e0db8336ea2efaebf8f845c5b875207136e8c88d10bc06f28aad4c4ac52dd7bc

Contents?: true

Size: 662 Bytes

Versions: 1

Compression:

Stored size: 662 Bytes

Contents

module ContributorsStats

  # Basis for ContributorsStats, includes logging and plugins support
  class Base
    attr_accessor :logger, :options

    def initialize(options = {})
      @logger = $stdout
      @logger = options.delete(:logger) if options[:logger]
      @options = options
    end

  private

    def filter_options(type)
      @options.select do |key, value|
        plugins.class_exist?(type, key)
      end
    end

    def plugins
      @plugins ||= Pluginator.find("contributors_stats", extends: %i{first_class class_exist})
    end

    def log(text)
      logger.respond_to?(:info) ? logger.info(text) : logger.puts(text)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
contributors_stats-1.0.0 lib/contributors_stats/base.rb