# frozen_string_literal: true require 'dry-configurable' require_relative "pears/version" require_relative "pears/errors" require_relative "pears/provider" require_relative "pears/subject" module Pears extend Dry::Configurable setting :redis_host, default: :localhost def self.subjects @subjects ||= [] end # This is the main way of locating a subject. def self.subject(name) subjects Subject.new(name).tap do |subject| builder = Provider::Builder.new(subject) @subjects << yield(builder) end end end