Sha256: 65227f680f2634fe03f96123072c56c08b75159df9ad9c916d075bdd1826746b
Contents?: true
Size: 1.48 KB
Versions: 3
Compression:
Stored size: 1.48 KB
Contents
# frozen_string_literal: true require "attractor/version" require "attractor/gem_names" require "attractor/duration_parser" require "attractor/calculators/base_calculator" require "attractor/detectors/base_detector" require "attractor/reporters/base_reporter" require "attractor/suggester" require "attractor/watcher" require "attractor/cache" Dir[File.join(__dir__, "attractor", "reporters", "*.rb")].sort.each do |file| next if file.start_with?("base") require file end module Attractor class Error < StandardError; end @registry_entries = {} def init(calculators) calculators ||= all_registered_calculators calculators.to_a.map(&:last).each(&:calculate) end def clear Cache.clear end def register(registry_entry) @registry_entries[registry_entry.type] = registry_entry end def calculators_for_type(type, **options) registry_entry_for_type = @registry_entries[type] return {type => registry_entry_for_type.calculator_class.new(**options)} if type all_registered_calculators(**options) end def all_registered_calculators(options = {}) @registry_entries.map do |type, entry| [type, entry.calculator_class.new(**options)] if entry.detector_class.new.detect end.compact.to_h end module_function :calculators_for_type module_function :all_registered_calculators module_function :register module_function :init module_function :clear end Attractor::GemNames.new.to_a.each do |gem_name| require "attractor/#{gem_name}" end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
attractor-2.6.0 | lib/attractor.rb |
attractor-2.5.0 | lib/attractor.rb |
attractor-2.4.0 | lib/attractor.rb |