Module: FeatureRich::Engine

Defined in:
lib/feature-rich/engine.rb

Constant Summary collapse

VALID_KEYS =
[:feature_model, :feature_table, :config_file]

Class Method Summary collapse

Class Method Details

.configure(conf = Config.new, &block) ⇒ Object



21
22
23
24
25
26
# File 'lib/feature-rich/engine.rb', line 21

def configure(conf = Config.new, &block)
  conf.instance_exec(&block)
  self.config.merge!(conf)
  self.config.assert_valid_keys(*VALID_KEYS)
  self.config
end

.feature(name, options = {}) ⇒ Object



42
43
44
45
46
# File 'lib/feature-rich/engine.rb', line 42

def feature(name, options = {})
  group(:_none_) do
    feature name, options
  end
end

.group(name, opts = {}, &block) ⇒ Object



48
49
50
51
52
# File 'lib/feature-rich/engine.rb', line 48

def group(name, opts = {}, &block)
  group = (self.groups[name.to_sym] || FeatureRich::GroupFeature.new(name, opts)).configure(&block)
  self.features += group.sets
  self.groups[name.to_sym] = group
end

.load!Object



33
34
35
36
37
38
39
40
# File 'lib/feature-rich/engine.rb', line 33

def load!
  if Object.const_defined?(:Rails) && Rails.root
    self.config.config_file ||= Rails.root.join('config/feature-rich.rb').to_s
  end
  run do
    eval(File.read(self.config.config_file))
  end
end

.run(&block) ⇒ Object



28
29
30
31
# File 'lib/feature-rich/engine.rb', line 28

def run(&block)
  instance_exec(&block)
  bootstrap!
end