Módulo: Mongoid::Loadable
- Incluído em:
- Mongoid
- Definido em:
- lib/mongoid/loadable.rb
Visão geral
Define como o Mongoid pode carregar automaticamente todos os modelos definidos.
Colapsode resumo constante
- DEFAULT_MODEL_PATHS =
A lista padrão de caminhos onde as classes de modelo devem ser procuradas. Se o Rails estiver presente, os caminhos "app/models" serão usados. (Consulte #model_paths.)
%w( ./app/models ./lib/models ).congelar
- DEFAULT_IGNORE_PATTERNS =
A lista padrão de padrões glob que correspondem a caminhos a serem ignorados ao carregar modelos. O padrão é ' /models/concerns/ ', que o Rails usa para extensões para modelos (e que causamerros quando carregados fora de ordem).
Consulte #ignore_patterns.
%w( */models/concerns/* ).congelar
Recolhimento do Resumo do método de instância
-
#arquivos_sob_path(path) ➤ Array<String>
Dado um único caminho, retorna todos os arquivos Ruby nesse caminho (ou, se 'preload_models' for uma lista de nomes de modelo, retorna apenas os arquivos para esses modelos nomeados).
-
#Files_Under_paths(Caminhos) ➤ Array<String>
Dada uma lista de caminhos, retorna todos os arquivos Ruby nesse caminho (ou, se 'preload_models' for uma lista de nomes de modelos, retorna apenas os arquivos para esses modelos nomeados).
-
#ignore_patterns ⇒ Array<String>
Retorna a array de padrões global que determinam se um determinado caminho deve ser ignorado pelo carregador de modelo.
-
#ignore_patterns=(patterns) ➤ Object
Define os padrões ignorados para a array de padrões fornecida.
-
#ignorado?(file_path) ➤ true | false
Retorna verdadeiro se o caminho de arquivo fornecido corresponder a qualquer um dos padrões de ignorar.
-
#load_model(file) ➤ Objeto
privado
Um método de conveniência para carregar o arquivo de um modelo.
-
#load_models(paths = model_paths) ➤ Objeto
Pesquise uma lista de caminhos de modelo para obter cada modelo e exigi-lo, para que a indexação e a herança funcionem no desenvolvimento e na produção com os mesmos resultados.
-
#model_paths ➤ Array<String>
Retorna a array de caminhos onde as definições de modelo do aplicativo estão localizadas.
-
#model_paths=(caminhos) ➤ Objeto
Define os caminhos do modelo para a array de caminhos fornecida.
Detalhes do método de instância
#arquivos_sob_path(path) ➤ Array<String>
Dado um único caminho, retorna todos os arquivos Ruby nesse caminho (ou, se 'preload_models' for uma lista de nomes de modelo, retorna apenas os arquivos para esses modelos nomeados).
63 64 65 66 67 68 69 70 71 72 73 74 75 |
# Arquivo 'lib/mongoid/loadable.rb', linha 63 def Files_Under_path(caminho) .idl = se preload_models.redimensionável? preload_models. map { |Modelo| "#{caminho}/#{modelo.sublinhado}.rb" }. selecione { |file_name| arquivo.existe?(file_name) } mais Gerente.global("#{caminho}/**/*.rb"). rejeitar { |file_name| ignorado?(file_name) } end # remover o caminho e o sufixo de cada entrada .idl.map { |file| file.gsub(/^#{path}\// , "").gsub(/\.rb$/, "") } end |
#Files_Under_paths(Caminhos) ➤ Array<String>
Dada uma lista de caminhos, retorna todos os arquivos Ruby nesse caminho (ou, se 'preload_models' for uma lista de nomes de modelos, retorna apenas os arquivos para esses modelos nomeados).
51 52 53 |
# Arquivo 'lib/mongoid/loadable.rb', linha 51 def arquivos_sob_paths(caminhos) caminhos.flat_map { |caminho| Files_Under_path(caminho) } end |
#ignore_patterns ⇒ Array<String>
Retorna a array de padrões global que determinam se um determinado caminho deve ser ignorado pelo carregador de modelo.
115 116 117 |
# Arquivo 'lib/mongoid/loadable.rb', linha 115 def ignore_patterns @ignore_patterns ||= DEFAULT_IGNORE_PATTERNS.dup end |
#ignore_patterns=(patterns) ➤ Object
Define os padrões ignorados para a array de padrões fornecida. Esses são padrões global que determinam se um determinado caminho deve ser ignorado pelo carregador de modelo ou não.
132 133 134 |
# Arquivo 'lib/mongoid/loadable.rb', linha 132 def ignore_patterns=(Padrões) @ignore_patterns = Padrões end |
#ignorado?(file_path) ➤ true | false
Retorna verdadeiro se o caminho de arquivo fornecido corresponder a qualquer um dos padrões de ignorar.
142 143 144 |
# Arquivo 'lib/mongoid/loadable.rb', linha 142 def ignorado?(FILE_PATH) ignore_patterns.algum? { |padrão| arquivo.fnmatch?(padrão, FILE_PATH) } end |
#load_model(file) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Um método de conveniência para carregar o arquivo de um modelo. Se o método 'require_dependency' do Rails existir, ele será usado; caso contrário, "exigir" será usado.
87 88 89 90 91 92 93 |
# Arquivo 'lib/mongoid/loadable.rb', linha 87 def load_model(file) se definido?(require_dependency) require_dependency(file) mais exigir(file) end end |
#load_models(paths = model_paths) ➤ Objeto
Pesquise uma lista de caminhos de modelo para obter cada modelo e exigi-lo, para que a indexação e a herança funcionem no desenvolvimento e na produção com os mesmos resultados.
33 34 35 36 37 38 39 40 41 |
# Arquivo 'lib/mongoid/loadable.rb', linha 33 def load_models(caminhos = model_paths) .idl = arquivos_sob_paths(caminhos) .idl.sort.cada fazer |file| load_model(file) end nada end |
#model_paths ➤ Array<String>
Retorna a array de caminhos onde as definições de modelo do aplicativo estão localizadas. Se o Rails estiver carregado, o padrão será os caminhos "app/models" configurados (por exemplo ' config.paths'); caso contrário, o padrão será `%w(./app/models ./lib/models)'.
Observe que esses caminhos são as raizes das hierarquias de diretório onde os modelos estão localizados; não é necessário indicar todos os subdiretórios, desde que esses caminhos raiz estejam localizados em '$LOAD_PATH'.
105 106 107 108 109 |
# Arquivo 'lib/mongoid/loadable.rb', linha 105 def model_paths @model_paths ||= definido?(Trilhos) ? Trilhos.Aplicativo.config.caminhos["app/models"]. : DEFAULT_MODEL_PATHS end |
#model_paths=(caminhos) ➤ Objeto
Define os caminhos do modelo para a array de caminhos fornecida. Esses são os caminhos onde as definições de modelo do aplicativo estão localizadas.
123 124 125 |
# Arquivo 'lib/mongoid/loadable.rb', linha 123 def model_paths=(caminhos) @model_paths = caminhos end |