Method: Brief::Model::ClassMethods#finalize

Defined in:
lib/brief/model.rb

#finalizeObject



238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
# File 'lib/brief/model.rb', line 238

def finalize
  klass = self

  klass.name ||= klass.to_s.split('::').last.humanize
  klass.type_alias ||= klass.name.parameterize.gsub(/-/, '_')

  klass.attribute_set.map(&:name).each do |attr|
    unless klass.method_defined?("find_by_#{ attr }")
      klass.define_singleton_method("find_by_#{ attr }") do |value|
        where(attr => value).first
      end
    end
  end

  klass.definition.apply_config

  Brief::Repository.define_document_finder_methods
end