lib/world-flags.rb in world-flags-0.1.5 vs lib/world-flags.rb in world-flags-0.2.0

- old
+ new

@@ -1,4 +1,75 @@ require "world_flags/view_helper" require "world_flags/locale_helper" require 'world_flags/rails/engine' if defined?(::Rails::Engine) +require "world_flags/languages" +require "world_flags/countries" + +module WorldFlags + class << self + attr_accessor :auto_select + + def auto_select? + auto_select + end + + def auto_select! + @auto_select = true + end + + def label code = :en, options = {:language => :en} + label = options[:country] ? WorldFlags.country(options[:country], code) : WorldFlags.language(options[:language], code) + # if all else fails + default_locale = I18n.locale || :en + label ||= WorldFlags.language(default_locale, code) + end + + # Locale translation helper macros + + def flag_code code + locale_flag_map[code.to_sym] || code + end + + attr_accessor :locale_flag_map + + # translate locales to flag code: ISO_3166-1_alpha-2 + def locale_flag_map + @locale_map ||= { + :en => :gb, + :da => :dk + } + end + + # Language helper macros + + def language locale = :en, code = :en + locale ||= :en + languages[locale][code] + end + + def languages= languages + raise ArgumentError, "Must be a hash, was: #{languages}" unless languages.kind_of?(Hash) + @languages = languages + end + + def languages + @languages ||= {:en => Languages.en} + end + + # Country helper macros + + def country locale = :en, code = :en + locale ||= :en + countries[locale][code] + end + + def countries= countries + raise ArgumentError, "Must be a hash, was: #{countries}" unless countries.kind_of?(Hash) + @countries = countries + end + + def countries + @countries ||= {:en => Countries.en} + end + end +end