Module: AbAdmin::Models::Locator::ClassMethods

Defined in:
lib/ab_admin/models/locator.rb

Instance Method Summary collapse

Instance Method Details

#find_filesObject



14
15
16
# File 'lib/ab_admin/models/locator.rb', line 14

def find_files
  Dir[Rails.root.join('config', 'locales', '*.yml')]
end

#flat_hash(hash, k = []) ⇒ Object



31
32
33
34
# File 'lib/ab_admin/models/locator.rb', line 31

def flat_hash(hash, k = [])
  return {k => hash} unless hash.is_a?(Hash)
  hash.inject({}) { |h, v| h.merge! flat_hash(v[-1], k + [v[0]]) }
end

#prepare_data(path) ⇒ Object



24
25
26
27
28
29
# File 'lib/ab_admin/models/locator.rb', line 24

def prepare_data(path)
  data = YAML.load_file(path)
  locale = data.keys.first
  OpenStruct.new({:locale => locale.to_sym, :data => data[locale], :flat_data => flat_hash(data[locale]),
                  :filename => File.basename(path), :path => path, :dir => File.dirname(path)})
end

#save(path, data) ⇒ Object



18
19
20
21
22
# File 'lib/ab_admin/models/locator.rb', line 18

def save(path, data)
  File.open(path, 'w') do |file|
    file.write data.ya2yaml.sub(/\A---\s+/, '').gsub(/:\s+$/, ':').gsub(/^(\s+)(yes|no):/, '\1"\2":')
  end
end