Sha256: fd9ef030e84f5892507fae0481c9ddc2b26e39f97da3fa6de17d849c7d6525a2

Contents?: true

Size: 1.36 KB

Versions: 2

Compression:

Stored size: 1.36 KB

Contents

# frozen_string_literal: true

require_relative "maquina/version"
require_relative "maquina/engine"
require "importmap-rails"
require "money-rails"
require "turbo-rails"
require "action_policy"
require "pagy"

module Maquina
  class << self
    attr_accessor :configuration

    def postgresql?
      ActiveRecord::Base.connection_db_config.configuration_hash[:adapter].downcase == "postgresql"
    end
  end

  class Configuration
    attr_accessor :password_retain_count, :temporary_block, :session_expiration, :signin_attempts, :tailwind_content,
      :importmap, :root_app_path, :membership_roles

    def initialize
      @password_retain_count = 3
      @temporary_block = 5.minutes
      @session_expiration = 2.days
      @signin_attempts = 5
      @root_app_path = "/"

      @membership_roles = %w[admin member].index_by(&:itself)

      @importmap = Importmap::Map.new
      @importmap.draw(Engine.root.join("config/importmap.rb"))

      @tailwind_content = [
        "#{Maquina::Engine.root}/app/views/**/*.{rb,erb}",
        "#{Maquina::Engine.root}/app/helpers/**/*.rb",
        "#{Maquina::Engine.root}/app/controllers/**/*.rb",
        "#{Maquina::Engine.root}/app/javascript/**/*.js"
      ]
    end
  end

  def self.init_config
    self.configuration ||= Configuration.new
  end

  def self.configure
    init_config
    yield(configuration)
  end
end

Maquina.init_config

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
maquina-0.5.2 lib/maquina.rb
maquina-0.5.1 lib/maquina.rb