Sha256: cfd0ea8251e8658505a56529fb523c90e591d6c8b2285e016efc713642dea925

Contents?: true

Size: 1000 Bytes

Versions: 5

Compression:

Stored size: 1000 Bytes

Contents

# frozen_string_literal: true

require "dry/configurable"
require "dry/system/config/component_dirs"

module Hanami
  class Configuration
    # Configuration for slice source dirs
    #
    # @since 2.0.0
    class SourceDirs
      DEFAULT_COMPONENT_DIR_PATHS = %w[lib actions repositories views].freeze
      private_constant :DEFAULT_COMPONENT_DIR_PATHS

      include Dry::Configurable

      setting :component_dirs,
        default: Dry::System::Config::ComponentDirs.new.tap { |dirs|
          DEFAULT_COMPONENT_DIR_PATHS.each do |path|
            dirs.add path
          end
        },
        cloneable: true

      setting :autoload_paths, default: %w[entities]

      private

      def method_missing(name, *args, &block)
        if config.respond_to?(name)
          config.public_send(name, *args, &block)
        else
          super
        end
      end

      def respond_to_missing?(name, _include_all = false)
        config.respond_to?(name) || super
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
hanami-2.0.0.alpha8 lib/hanami/configuration/source_dirs.rb
hanami-2.0.0.alpha7.1 lib/hanami/configuration/source_dirs.rb
hanami-2.0.0.alpha7 lib/hanami/configuration/source_dirs.rb
hanami-2.0.0.alpha6 lib/hanami/configuration/source_dirs.rb
hanami-2.0.0.alpha5 lib/hanami/configuration/source_dirs.rb