Class: Plutonium::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/plutonium/configuration.rb

Overview

Configuration class for Plutonium module

Examples:

Plutonium.configure do |config|
  config.load_defaults 1.0
  config.development = true
  config.cache_discovery = false
  config.enable_hotreload = true
  config.assets. = "custom_logo.png"
end

Defined Under Namespace

Classes: AssetConfiguration

Constant Summary collapse

VERSION_DEFAULTS =

Map of version numbers to their default configurations

{
  1.0 => proc do |config|
    # No changes for 1.0 yet as it's the current base configuration
  end
  # Add more version configurations here as needed
  # 1.1 => proc do |config|
  #   config.some_new_setting = true
  # end
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Note:

This method sets initial values

Initialize a new Configuration instance



44
45
46
47
48
49
50
51
# File 'lib/plutonium/configuration.rb', line 44

def initialize
  @defaults_version = nil
  @assets = AssetConfiguration.new

  @development = parse_boolean_env("PLUTONIUM_DEV")
  @cache_discovery = !Rails.env.development?
  @enable_hotreload = Rails.env.development?
end

Instance Attribute Details

#assetsAssetConfiguration (readonly)

Returns asset configuration.

Returns:



25
26
27
# File 'lib/plutonium/configuration.rb', line 25

def assets
  @assets
end

#cache_discoveryBoolean

Returns whether to cache discovery.

Returns:

  • (Boolean)

    whether to cache discovery



19
20
21
# File 'lib/plutonium/configuration.rb', line 19

def cache_discovery
  @cache_discovery
end

#defaults_versionFloat (readonly)

Returns the current defaults version.

Returns:

  • (Float)

    the current defaults version



28
29
30
# File 'lib/plutonium/configuration.rb', line 28

def defaults_version
  @defaults_version
end

#developmentBoolean

Returns whether Plutonium is in development mode.

Returns:

  • (Boolean)

    whether Plutonium is in development mode



16
17
18
# File 'lib/plutonium/configuration.rb', line 16

def development
  @development
end

#enable_hotreloadBoolean

Returns whether to enable hot reloading.

Returns:

  • (Boolean)

    whether to enable hot reloading



22
23
24
# File 'lib/plutonium/configuration.rb', line 22

def enable_hotreload
  @enable_hotreload
end

Instance Method Details

#development?Boolean

whether Plutonium is in development mode

Returns:

  • (Boolean)


75
76
77
# File 'lib/plutonium/configuration.rb', line 75

def development?
  @development
end

#load_defaults(version) ⇒ void

This method returns an undefined value.

Load default configuration for a specific version

Parameters:

  • version (Float)

    the version to load defaults for



57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/plutonium/configuration.rb', line 57

def load_defaults(version)
  available_versions = VERSION_DEFAULTS.keys.sort
  applicable_versions = available_versions.select { |v| v <= version }

  if applicable_versions.empty?
    raise "No applicable defaults found for version #{version}."
  end

  applicable_versions.each do |v|
    VERSION_DEFAULTS[v].call(self)
  end

  @defaults_version = applicable_versions.last
end