Sha256: c3486c5bafb7c384dce39edab1fe743c42eb6dcbec52fe7d82b9152c9ce9b373
Contents?: true
Size: 1.46 KB
Versions: 8
Compression:
Stored size: 1.46 KB
Contents
* 将不同环境的初始化代码放在不同的文件中 配置文件中往往有多个数据库的多个环境配置,这时候可以使用这里的方法,将不同环境的初始化代码放在不同的文件中来避免冲突。 假设配置文件中配置了 4 个数据库环境: + apollo.dev + apollo.prod + space.dev + space.prod 那么可以在 =~/.arql.d/= 目录下创建以下文件: + apollo.rb + space.rb 在 =apollo.rb= 文件中放置 apollo 项目的初始化代码; 在 =space.rb= 文件中放置 space 项目的初始化代码。 然后在 =~/.arql.d/init.eb= 文件中写入以下代码: #+BEGIN_SRC ruby Dir.glob(File.dirname(__FILE__) + '/*.rb').each do |f| Arql::App.instance.definitions.each do |env, definition| if env.starts_with?(File.basename(f, '.rb')) load(f, definition.namespace_module) end end end #+END_SRC 这样,当执行 =arql -e apollo.dev= 或 =arql -e apollo.prod= 时,就会加载 =apollo.rb= 文件中的初始化代码;当执行 =arql -e space.dev= 或 =arql -e space.prod= 时,就会加载 =space.rb= 文件中的初始化代码。 =apollo.rb= 或 =space.rb= 文件中的代码将在对应的 Namespace Module 下执行: #+BEGIN_SRC ruby class Astronaut has_many :missions end #+END_SRC 等价于: #+BEGIN_SRC ruby module Apollo class Astronaut has_many :missions end end #+END_SRC
Version data entries
8 entries across 8 versions & 1 rubygems