Módulo: Mongoid::Stateful

Incluído em:
Componível
Definido em:
lib/mongoid/stateful.rb

Visão geral

Módulo Mixin incluído no Mongoid::Document que adiciona comportamento para obter os vários estados do ciclo de vida pelos quais um documento pode fazer a transição.

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de instância

Detalhes do atributo da instância

# Destruído=(valor) ➤ Objeto (somente gravação)

Define o atributo destruído

Parâmetros:

  • valor

    o valor para definir o atributo destruído.



10
11
12
# Arquivo 'lib/mongoid/stateful.rb', linha 10

def destruído=(valor)
  @destroyed = valor
end

#sinalizado_for_destroy=(valor) ➤ Objeto (somente gravação)

Define o atributo sinalizado_for_destroy

Parâmetros:

  • valor

    o valor para definir o atributo sinalizado_for_destroy para.



10
11
12
# Arquivo 'lib/mongoid/stateful.rb', linha 10

def sinalizado_for_destroy=(valor)
  @flog_for_destroy = valor
end

#previamente_new_record=(valor) ➤ Objeto (writeonly)

Define o atributo previamente_new_record

Parâmetros:

  • valor

    o valor para definir o atributo previamente_new_record.



10
11
12
# Arquivo 'lib/mongoid/stateful.rb', linha 10

def previamente_new_record=(valor)
  @previously_new_record = valor
end

Detalhes do método de instância

#destruído?verdadeiro | false

Retorna verdadeiro se Document tiver sido destruído com sucesso e falso se não tiver sido. Isso é determinado pela variável @destroyed e NÃO pela verificação do banco de dados de dados.

Exemplos:

O documento foi destruído?

person.destroyed?

Retorna:

  • (verdadeiro | falso)

    Verdadeiro se destruído, falso se não.



87
88
89
# Arquivo 'lib/mongoid/stateful.rb', linha 87

def destruído?
  @destroyed ||= false
end

#sinalizado_for_destroy?verdadeiro | false Também conhecido como: marcado_for_destruction?, _destroy

Retorna se o documento foi ou não sinalizado para exclusão, mas ainda não foi destruído. Usado para extrações atômicas de documentos secundários.

Exemplos:

O documento está sinalizado?

document.flagged_for_destroy?

Retorna:

  • (verdadeiro | falso)

    Se o documento estiver sinalizado.



73
74
75
# Arquivo 'lib/mongoid/stateful.rb', linha 73

def sinalizado_for_destroy?
  @flog_for_destroy ||= false
end

#new_record=(new_value) ➤ true | false

Define se o documento persistiu no banco de banco de dados.

Parâmetros:

  • new_value (verdadeiro | falso)

    O valor a ser definido.

Retorna:

  • (verdadeiro | falso)

    O valor definido.



17
18
19
20
21
22
23
# Arquivo 'lib/mongoid/stateful.rb', linha 17

def new_record=(new_value)
  @new_record ||= false
  se @new_record && !new_value
    @previously_new_record = true
  end
  @new_record = new_value
end

#new_record?verdadeiro | false

Retorna verdadeiro se o documento não tiver sido persistente no banco de dados de dados e falso se tiver. Isso é determinado pela variável @new_record e NÃO se o objeto tiver um ID.

Exemplos:

O documento é novo?

person.new_record?

Retorna:

  • (verdadeiro | falso)

    Verdadeiro se for novo, falso se não.



33
34
35
# Arquivo 'lib/mongoid/stateful.rb', linha 33

def new_record?
  @new_record ||= false
end

#persistiu?verdadeiro | false

Verifica se o documento foi salvo no banco de banco de dados. Retorna falso se o documento tiver sido destruído.

Exemplos:

O documento persiste?

person.persisted?

Retorna:

  • (verdadeiro | falso)

    Verdadeiro se persistente, falso se não.



53
54
55
# Arquivo 'lib/mongoid/stateful.rb', linha 53

def persistiu?
  !new_record? && !destruído?
end

#previamente_new_record?verdadeiro | false

Retorna verdadeiro se este documento acabou de ser criado – ou seja, antes da última gravação, o objeto não existia no banco de banco de dados e new_record? teria retornado verdadeiro.

Retorna:

  • (verdadeiro | falso)

    Verdadeiro se acabou de ser criado, falso se não.



42
43
44
# Arquivo 'lib/mongoid/stateful.rb', linha 42

def previamente_new_record?
  @previously_new_record ||= false
end

#previamente_persisted?verdadeiro | false

Verifica se o documento foi salvo anteriormente no banco de dados, mas agora foi excluído.

Retorna:

  • (verdadeiro | falso)

    Verdadeiro se foi persistente, mas agora destruído, caso contrário falso.



62
63
64
# Arquivo 'lib/mongoid/stateful.rb', linha 62

def previamente_persisted?
  !new_record? && destruído?
end

#pushable?verdadeiro | false

Determine se o documento pode ser enviado.

Exemplos:

Isso é pushable?

person.pushable?

Retorna:

  • (verdadeiro | falso)

    O documento é novo e incorporado?



97
98
99
100
101
102
# Arquivo 'lib/mongoid/stateful.rb', linha 97

def pushable?
  new_record? &&
    embedded_many? &&
    _parent.persistiu? &&
    !_parent.delay_atomic_sets[atomic_path]
end

#somente leitura!verdadeiro | false

Sinaliza o documento como somente leitura. Fará com que um erro ReadonlyDocument seja gerado se o documento for tentado ser salvo, atualizado ou destruído.

Exemplos:

Sinalize o documento como somente leitura.

document.readonly!

Retorna:

  • (verdadeiro | falso)

    true se o documento foi marcado com êxito como somente leitura; caso contrário, false.



112
113
114
115
116
117
118
119
# Arquivo 'lib/mongoid/stateful.rb', linha 112

def somente leitura!
  se Mongoid.legacy_readonly
    Mongoid::Avisos.write_legacy_readonly
    false
  mais
    @readonly = true
  end
end

#somente leitura?verdadeiro | false

O documento é somente leitura?

Exemplos:

O documento é somente leitura?

document.readonly?

Retorna:

  • (verdadeiro | falso)

    Se o documento for somente leitura.



127
128
129
130
131
132
133
# Arquivo 'lib/mongoid/stateful.rb', linha 127

def somente leitura?
  se Mongoid.legacy_readonly
    __selected_fields != nada
  mais
    @readonly ||= false
  end
end

#configurável?verdadeiro | false

Determine se o documento pode ser definido.

Exemplos:

Isso é configurável?

person.settable?

Retorna:

  • (verdadeiro | falso)

    Este documento é um novo incorporado?



141
142
143
# Arquivo 'lib/mongoid/stateful.rb', linha 141

def configurável?
  new_record? && embedded_one? && _parent.persistiu?
end

#atualizável?verdadeiro | false

O documento é atualizável?

Exemplos:

O documento é atualizável?

person.updateable?

Retorna:

  • (verdadeiro | falso)

    Se o documento for alterado e persistente.



151
152
153
# Arquivo 'lib/mongoid/stateful.rb', linha 151

def atualizável?
  persistiu? && mudou?
end