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
- .configure(conf = Config.new, &block) ⇒ Object
- .feature(name, options = {}) ⇒ Object
- .group(name, opts = {}, &block) ⇒ Object
- .load! ⇒ Object
- .run(&block) ⇒ Object
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, = {}) group(:_none_) do feature name, 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 |