diff --git a/app/models/language.rb b/app/models/language.rb --- a/app/models/language.rb +++ b/app/models/language.rb @@ -1,2 +1,24 @@ class Language < ActiveRecord::Base + + @@languages_by_ext = {} + + def self.cache_ext_hash + @@languages_by_ext = {} + Language.find(:all).each do |language| + language.common_ext.split(',').each do |ext| + @@languages_by_ext[ext] = language + end + end + end + + def self.find_by_extension(ext) + if @@languages_by_ext.length == 0 + Language.cache_ext_hash + end + if @@languages_by_ext.has_key? ext + return @@languages_by_ext[ext] + else + return nil + end + end end