class Brice::Config

Exclude unwanted packages:

config.exclude 'foo', 'bar'
Brice.config -= %w[quix quux]

Include non-default packages:

config.include 'foo', 'bar'
Brice.config += %w[quix quux]

Configure individual packages (depends on package):

# set property
config.foo.bar = 'baz'

# set multiple properties
config.foo = %w[bar baz]
# which is equivalent to:
config.foo.bar = true
config.foo.baz = true

# reset package configuration
config.foo!

# see whether package is enabled/included
config.foo?

Attributes

packages[R]

Public Class Methods

new(packages = []) click to toggle source
   # File lib/brice/config.rb
62 def initialize(packages = [])
63   @packages = Hash.new { |h, k| h[k] = PackageConfig.new }
64   self.include(*packages)
65 end

Public Instance Methods

%(*packages)
Alias for: only
+(*packages)
Alias for: include
-(*packages)
Alias for: exclude
config[package] click to toggle source

Accessor for package package.

   # File lib/brice/config.rb
71 def [](package)
72   packages[package.to_s]
73 end
clear click to toggle source

Clear all packages.

    # File lib/brice/config.rb
116 def clear
117   packages.clear
118 end
exclude(*packages) click to toggle source
config -= packages

Disable/exclude packages packages.

   # File lib/brice/config.rb
92 def exclude(*packages)
93   packages.each { |package| self.packages.delete(package.to_s) }
94   self
95 end
Also aliased as: -
have?(package)
Alias for: include?
include(*packages) click to toggle source
config += packages

Enable/include packages packages.

   # File lib/brice/config.rb
80 def include(*packages)
81   packages.each { |package| self[package] }
82   self
83 end
Also aliased as: +
include?(package) → true or false click to toggle source
have?(package) → true or false

See whether package package is enabled/included.

    # File lib/brice/config.rb
125 def include?(package)
126   packages.include?(package.to_s)
127 end
Also aliased as: have?
package # package configuration click to toggle source
package = 'foo' # equivalent to: config.package.foo = true
package = %w[foo bar] # see above, multiple
package! # reset package configuration
package? # see whether package is enabled/included

Convenience accessors to individual package configurations.

    # File lib/brice/config.rb
139 def method_missing(method, *args)
140   package, punctuation = method.to_s.sub(/([=!?])?\z/, ''), $1
141 
142   assignment = punctuation == '='
143 
144   unless assignment || args.empty?
145     raise ArgumentError, "wrong number of arguments (#{args.size} for 0)"
146   end
147 
148   case punctuation
149     when '=', '!'
150       config = packages[package] = PackageConfig.new
151 
152       assignment ? Array(args.first).each { |arg|
153         config.send("#{arg}=", true)
154       } : config
155     when '?'
156       include?(package)
157     else
158       self[package]
159   end
160 end
only(*packages) click to toggle source
config %= packages

Enable/include only packages packages, disable/exclude everything else.

    # File lib/brice/config.rb
105 def only(*packages)
106   clear
107   self.include(*packages)
108 end
Also aliased as: %