Sha256: 8dfa3a9752d279368f85a4a7b3588f99cf06ef7d5d8d5a4e9c708b613573cfc9
Contents?: true
Size: 1.68 KB
Versions: 3
Compression:
Stored size: 1.68 KB
Contents
# frozen_string_literal: true module Signum module Options module ClassMethods def option(name, default: nil) attr_accessor(name) schema[name] = default end def schema @schema ||= {} end end def set_defaults! self.class.schema.each do |name, default| instance_variable_set(:"@#{name}", default) end end def self.included(cls) cls.extend(ClassMethods) end end class Configuration include Options option :logger, default: Rails.logger option :user_model_name, default: "User" option :hide_after, default: 3000 option :base_controller, default: "::ApplicationController" option :base_service, default: "::ApplicationService" option :base_service_context, default: "::ApplicationContext" option :current_user, default: -> {} option :drawer_notifications_container_id, default: ->(signalable = nil, id = nil) {} option :balloon_notifications_container_id, default: ->(signalable = nil, id = nil) {} option :icons, default: {info: "fa-solid fa-circle-info fa-lg", error: "fa-solid fa-square-xmark fa-lg", success: "fa-solid fa-circle-check fa-lg", warning: "fa-solid fa-triangle-exclamation fa-lg", unread_main: "fa-solid fa-bell-ring", read_main: "fa-solid fa-bell"} def initialize set_defaults! end end module Configurable attr_writer :config def config @config ||= Configuration.new end def configure yield(config) end alias_method :setup, :configure def reset_config! @config = Configuration.new end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
signum-0.7.2 | lib/signum/configuration.rb |
signum-0.7.1 | lib/signum/configuration.rb |
signum-0.7.0 | lib/signum/configuration.rb |