Class: Houston::Extensions::Deprecated::DeprecatedProjectFeatureDsl
- Inherits:
-
Object
- Object
- Houston::Extensions::Deprecated::DeprecatedProjectFeatureDsl
- Defined in:
- lib/houston/boot/extensions/deprecated.rb
Instance Method Summary collapse
- #ability(&block) ⇒ Object
- #add_to_project_features(slug) ⇒ Object
- #field(_slug, &block) ⇒ Object
-
#initialize ⇒ DeprecatedProjectFeatureDsl
constructor
A new instance of DeprecatedProjectFeatureDsl.
- #name(value) ⇒ Object
- #path(&block) ⇒ Object
Constructor Details
#initialize ⇒ DeprecatedProjectFeatureDsl
Returns a new instance of DeprecatedProjectFeatureDsl.
127 128 129 |
# File 'lib/houston/boot/extensions/deprecated.rb', line 127 def initialize @field_blocks = [] end |
Instance Method Details
#ability(&block) ⇒ Object
139 140 141 |
# File 'lib/houston/boot/extensions/deprecated.rb', line 139 def ability(&block) @ability_block = block end |
#add_to_project_features(slug) ⇒ Object
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
# File 'lib/houston/boot/extensions/deprecated.rb', line 147 def add_to_project_features(slug) raise ArgumentError, "Project Feature must supply name, but #{slug.inspect} doesn't" unless @name raise ArgumentError, "Project Feature must supply path lambda, but #{slug.inspect} doesn't" unless @path_block Houston.project_features.add(slug, &@path_block).tap do |feature| ability_block = @ability_block feature.ability { |project| ability_block.call(self, project) } if ability_block feature.name { @name } unless @name == slug.to_s.titleize @field_blocks.each do |block| dsl = DeprecatedFieldDsl.new dsl.instance_eval(&block) dsl.add_to feature end end end |
#field(_slug, &block) ⇒ Object
143 144 145 |
# File 'lib/houston/boot/extensions/deprecated.rb', line 143 def field(_slug, &block) @field_blocks.push block end |
#name(value) ⇒ Object
131 132 133 |
# File 'lib/houston/boot/extensions/deprecated.rb', line 131 def name(value) @name = value end |
#path(&block) ⇒ Object
135 136 137 |
# File 'lib/houston/boot/extensions/deprecated.rb', line 135 def path(&block) @path_block = block end |