Module: Unidom::Common::YamlHelper

Defined in:
lib/unidom/common/yaml_helper.rb

Overview

YAML Helper 是用于加载知识层枚举的配置文件的辅助模块。

Class Method Summary collapse

Class Method Details

.load_enum(config: nil, root: nil) ⇒ Object

从应用或者引擎的跟路径 root 加载 config/enum.yml 中的内容到 config 中。



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/unidom/common/yaml_helper.rb', line 10

def self.load_enum(config: nil, root: nil)

  enum_yaml_path = root.join 'config', 'enum.yml'
  raise ArgumentError.new "The file #{enum_yaml_path} does not exist." unless enum_yaml_path.exist?

  unless config.respond_to? :enum
    config.class_eval do
      attr_accessor :enum
    end
  end
  config.enum = {} if config.enum.nil?

  enum_definitions = YAML.load File.read(enum_yaml_path)
  config.enum.merge! enum_definitions['enum'] if enum_definitions.present?&&enum_definitions['enum'].present?

end