Method: Brief::DSL#extend
- Defined in:
- lib/brief/dsl.rb
#extend(*args, &block) ⇒ Object
Extends an existing class
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/brief/dsl.rb', line 31 def extend(*args, &block) = args.dup. name = args.first type_alias = .fetch(:type_alias) { name.downcase.parameterize.gsub(/-/, '_') } namespace = Brief.configuration.model_namespace || Brief::Model klass = namespace.const_get(type_alias.camelize) rescue nil if !klass return define(*args, &block) end klass.definition.instance_eval(&block) if block_given? klass.definition.validate! end |