Sha256: 96f68c2fe563c268639e3cbc6f6efe1378d25b0f954ac263292dc8fb26b0e893

Contents?: true

Size: 849 Bytes

Versions: 17

Compression:

Stored size: 849 Bytes

Contents

module Lita
  # Mixin to add the ability for a plugin to define configuration.
  # @since 4.0.0
  # @api private
  module Configurable
    # The plugins's {Lita::ConfigurationBuilder} object.
    # @return [Lita::ConfigurationBuilder] The configuration builder.
    # @since 4.0.0
    attr_accessor :configuration_builder

    # Sets a configuration attribute on the plugin.
    # @return [void]
    # @since 4.0.0
    # @see Lita::ConfigurationBuilder#config
    def config(*args, **kwargs, &block)
      if block
        configuration_builder.config(*args, **kwargs, &block)
      else
        configuration_builder.config(*args, **kwargs)
      end
    end

    # Initializes the configuration builder for any inheriting classes.
    def inherited(klass)
      super
      klass.configuration_builder = ConfigurationBuilder.new
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
lita-4.8.0 lib/lita/configurable.rb
lita-4.8.0.beta1 lib/lita/configurable.rb
lita-4.7.1 lib/lita/configurable.rb
lita-4.7.0 lib/lita/configurable.rb
lita-4.6.1 lib/lita/configurable.rb
lita-4.6.0 lib/lita/configurable.rb
lita-4.5.0 lib/lita/configurable.rb
lita-4.4.3 lib/lita/configurable.rb
lita-4.4.2 lib/lita/configurable.rb
lita-4.4.1 lib/lita/configurable.rb
lita-4.4.0 lib/lita/configurable.rb
lita-4.3.2 lib/lita/configurable.rb
lita-4.3.1 lib/lita/configurable.rb
lita-4.3.0 lib/lita/configurable.rb
lita-4.2.1 lib/lita/configurable.rb
lita-4.2.0 lib/lita/configurable.rb
lita-4.1.0 lib/lita/configurable.rb