Hi,
I’m using CountryCodes to get countries list for select box. It
provides self.countries_for_select(*args) method exactly for this
purpose. I’m using it in only one place in my view. So I was thinking
about caching this data somehow, so it won’t have to be recreated
every time the page is loaded.
The problem is that the plugin initializes its main @countries
variable in init.rb file by calling method
CountryCodes.load_countries_from_yaml.
Is there an easier way to cache this data than doing something like
this:
lib/country_codes.rb
module CountryCodes
…
def self.cache_countries_for_select
@cached_countries_for_select = countries_for_select(‘name’,
‘a2’).sort.freeze
end
def self.cached_countries_for_select
@cached_countries_for_select
end
…
end
init.rb
require ‘country_codes’
CountryCodes.load_countries_from_yaml
CountryCodes.cache_countries_for_select
I don’t think that caching this data will make huge performance gain,
I’m rather trying to do it to understand Ruby and Rails better.