Sha256: 0fc53427e808c999c2fbdfb28b799429e62a028a6a5d041a2e1d69e6329fe064

Contents?: true

Size: 823 Bytes

Versions: 7

Compression:

Stored size: 823 Bytes

Contents

require 'singleton'

module Navigasmic
  class Configuration
    include Singleton

    cattr_accessor :default_builder
    @@default_builder = Navigasmic::Builder::ListBuilder

    cattr_accessor :builder_configurations
    @@builder_configurations = {}

    cattr_accessor :definitions
    @@definitions = {}

    def self.semantic_navigation(name, &block)
      @@definitions[name] = block
    end

    def self.builder(builder, &block)
      if builder.is_a?(Hash)
        name = builder.keys[0]
        builder = builder[name]
      else
        name = :default
      end
      @@builder_configurations[builder.to_s] ||= {}
      @@builder_configurations[builder.to_s][name] = block
    end
  end

  mattr_accessor :configuration
  @@configuration = Configuration

  def self.setup
    yield @@configuration
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
navigasmic-1.1.0 lib/navigasmic/core/configuration.rb
navigasmic-1.0.5 lib/navigasmic/core/configuration.rb
navigasmic-1.0.4 lib/navigasmic/core/configuration.rb
navigasmic-1.0.3 lib/navigasmic/core/configuration.rb
navigasmic-1.0.2 lib/navigasmic/core/configuration.rb
navigasmic-1.0.1 lib/navigasmic/core/configuration.rb
navigasmic-1.0.0 lib/navigasmic/core/configuration.rb