Module: Eac::Model

Defined in:
lib/eac/model.rb

Instance Method Summary collapse

Instance Method Details

#column?(column) ⇒ Boolean

Verifica se uma coluna existe.

Returns:

  • (Boolean)


33
34
35
# File 'lib/eac/model.rb', line 33

def column?(column)
  respond_to?(column) && respond_to?("#{column}=")
end

#fetch_column_errors(record, record_column, self_column, options = {}) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/eac/model.rb', line 24

def fetch_column_errors(record, record_column, self_column, options = {})
  return if options[:skip] && options[:skip].include?(record_column)
  record.errors[record_column].each do |message|
    fetch_error_column_message(self_column, message, options[:default_column],
                               "#{record.class.human_attribute_name(record_column)}: ")
  end
end

#fetch_record_errors(record, options = {}) ⇒ Object

Adiciona as mensagens de erro de record. As mensagens de uma coluna X em record serão adicionadas na coluna X em self. Se options for especificado as mensagens da coluna X de record em que X não existe em self serão adicionadas na coluna options. Um array de colunas pode ser passado em options de colunas em record que não terão suas falhas adicionadas.



9
10
11
12
13
# File 'lib/eac/model.rb', line 9

def fetch_record_errors(record, options = {})
  record.errors.keys.each do |column|
    fetch_column_errors(record, column, column, options)
  end
end

#fetch_record_errors_by_mapping(record, mapping, options = {}) ⇒ Object

Similar a fetch_record_errors, mas torna possível especificar, através de mapping, colunas-alvo em self com nomes diferentes das colunas-fonte em record. mapping tem o formato { record_column => self_column }.



18
19
20
21
22
# File 'lib/eac/model.rb', line 18

def fetch_record_errors_by_mapping(record, mapping, options = {})
  mapping.each do |record_column, self_column|
    fetch_column_errors(record, record_column, self_column, options)
  end
end

#save_or_raiseObject



37
38
39
40
41
42
# File 'lib/eac/model.rb', line 37

def save_or_raise
  unless save
    fail "Falha ao tentar salvar #{self.class.name}: #{errors_to_string}"
  end
  self
end