Module: Ysets
- Defined in:
- lib/ysets.rb,
lib/ysets/railtie.rb
Defined Under Namespace
Classes: Railtie, UndefinedYset
Class Method Summary
collapse
Class Method Details
.create_yset_class(yml_file) ⇒ Object
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/ysets.rb', line 22
def create_yset_class(yml_file)
hash = load_yml(yml_file)
klass_name = File.basename(yml_file).gsub(".yml","").camelize
klass_name = "#{klass_name}".upcase unless klass_name=="YSETS"
klass = Object.const_set(klass_name,Class.new)
hash.each do |key,value|
klass.define_singleton_method(key){ value }
end
klass.class_eval do
def self.method_missing(method_id,*args)
raise UndefinedYset, "#{method_id} is not defined in #{self.to_s}"
end
end
klass.freeze unless Rails.env.test?
end
|
.find_ymls ⇒ Object
15
16
17
18
19
20
|
# File 'lib/ysets.rb', line 15
def find_ymls
main_file = "#{Rails.root.to_s}/config/yset.yml"
ysets_main_file = File.exists?(main_file) ? [main_file] : []
ysets_namespaced_files = Dir.glob("#{Rails.root.to_s}/config/ysets/**/*.yml")
ysets_main_file.concat(ysets_namespaced_files)
end
|
.load_yml(yml_file) ⇒ Object
38
39
40
41
|
# File 'lib/ysets.rb', line 38
def load_yml(yml_file)
erb = ERB.new(File.read(yml_file)).result
erb.present? ? YAML.load(erb).to_hash[Rails.env] : {}
end
|
.setup! ⇒ Object
9
10
11
12
13
|
# File 'lib/ysets.rb', line 9
def setup!
find_ymls.each do |yml|
create_yset_class(yml)
end
end
|