r18n-core 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +7 -0
- data/README.rdoc +1 -1
- data/base/sk.yml +34 -0
- data/lib/r18n-core/i18n.rb +34 -16
- data/lib/r18n-core/locale.rb +2 -2
- data/lib/r18n-core/utils.rb +18 -3
- data/lib/r18n-core/version.rb +1 -1
- data/lib/r18n-core/yaml_loader.rb +8 -5
- data/locales/cs.rb +5 -4
- data/locales/sk.rb +38 -0
- data/spec/i18n_spec.rb +1 -2
- data/spec/locale_spec.rb +4 -0
- data/spec/locales/cs_spec.rb +15 -15
- data/spec/locales/sk_spec.rb +24 -0
- data/spec/r18n_spec.rb +18 -0
- data/spec/spec_helper.rb +8 -3
- data/spec/yaml_loader_spec.rb +14 -0
- metadata +5 -2
    
        data/ChangeLog
    CHANGED
    
    | @@ -1,3 +1,10 @@ | |
| 1 | 
            +
            == 0.4.3 (Flange)
         | 
| 2 | 
            +
            * Add R18n style methods to Rails controllers.
         | 
| 3 | 
            +
            * Fix for non-string translations in Rails I18n.
         | 
| 4 | 
            +
            * Use default locale from Rails I18n config.
         | 
| 5 | 
            +
            * Load translations recursively.
         | 
| 6 | 
            +
            * Add Slovak locale (by Ahmed Al Hafoudh)
         | 
| 7 | 
            +
             | 
| 1 8 | 
             
            == 0.4.2 (EMS)
         | 
| 2 9 | 
             
            * Fixes for Ruby 1.8.6 (by Akzhan Abdulin).
         | 
| 3 10 | 
             
            * Add method to get translation keys.
         | 
    
        data/README.rdoc
    CHANGED
    
    
    
        data/base/sk.yml
    ADDED
    
    | @@ -0,0 +1,34 @@ | |
| 1 | 
            +
            ok: OK
         | 
| 2 | 
            +
            save: Uložiť
         | 
| 3 | 
            +
            cancel: Zrušiť
         | 
| 4 | 
            +
            'yes': Áno
         | 
| 5 | 
            +
            'no': Nie
         | 
| 6 | 
            +
            exit: Koniec
         | 
| 7 | 
            +
            delete: Zmazať
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            human_time:
         | 
| 10 | 
            +
              after_days: !!pl
         | 
| 11 | 
            +
                1: o %1 deň
         | 
| 12 | 
            +
                2: o %1 dni
         | 
| 13 | 
            +
                n: o %1 dní
         | 
| 14 | 
            +
              tomorrow: zajtra
         | 
| 15 | 
            +
              after_hours: !!pl
         | 
| 16 | 
            +
                1: o %1 hodinu
         | 
| 17 | 
            +
                2: o %1 hodiny
         | 
| 18 | 
            +
                n: o %1 hodín
         | 
| 19 | 
            +
              after_minutes: !!pl
         | 
| 20 | 
            +
                1: o %1 minútu
         | 
| 21 | 
            +
                2: o %1 minúty
         | 
| 22 | 
            +
                n: o %1 minút
         | 
| 23 | 
            +
              now: teraz
         | 
| 24 | 
            +
              today: dnes
         | 
| 25 | 
            +
              minutes_ago: !!pl
         | 
| 26 | 
            +
                1: pred %1 minútou
         | 
| 27 | 
            +
                n: pred %1 minútami
         | 
| 28 | 
            +
              hours_ago: !!pl
         | 
| 29 | 
            +
                1: pred %1 hodinou
         | 
| 30 | 
            +
                n: pred %1 hodinami
         | 
| 31 | 
            +
              yesterday: včera
         | 
| 32 | 
            +
              days_ago: !!pl
         | 
| 33 | 
            +
                1: pred %1 dňom
         | 
| 34 | 
            +
                n: pred %1 dňami
         | 
    
        data/lib/r18n-core/i18n.rb
    CHANGED
    
    | @@ -163,43 +163,60 @@ module R18n | |
| 163 163 | 
             
                  @locales_codes = locales
         | 
| 164 164 | 
             
                  @locales = locales.map { |i| Locale.load(i) }
         | 
| 165 165 |  | 
| 166 | 
            -
                  @locale = @locales.first
         | 
| 167 | 
            -
                  unless @locale.supported?
         | 
| 168 | 
            -
                    @locales.each do |locale|
         | 
| 169 | 
            -
                      if locale.supported?
         | 
| 170 | 
            -
                        @locale.base = locale
         | 
| 171 | 
            -
                        break
         | 
| 172 | 
            -
                      end
         | 
| 173 | 
            -
                    end
         | 
| 174 | 
            -
                  end
         | 
| 175 | 
            -
                  
         | 
| 176 166 | 
             
                  if translation_places
         | 
| 177 167 | 
             
                    @original_places = translation_places
         | 
| 178 168 | 
             
                  else
         | 
| 179 169 | 
             
                    @original_places = R18n.extension_places
         | 
| 170 | 
            +
                    @locale = @locales.first
         | 
| 180 171 | 
             
                  end
         | 
| 181 172 |  | 
| 182 173 | 
             
                  @translation_places = self.class.convert_places(@original_places)
         | 
| 183 174 |  | 
| 184 | 
            -
                   | 
| 175 | 
            +
                  key = translation_cache_key
         | 
| 176 | 
            +
                  if R18n.cache.has_key? key
         | 
| 177 | 
            +
                    @locale, @translation = *R18n.cache[key]
         | 
| 178 | 
            +
                  else
         | 
| 179 | 
            +
                    reload!
         | 
| 180 | 
            +
                  end
         | 
| 185 181 | 
             
                end
         | 
| 186 182 |  | 
| 187 | 
            -
                
         | 
| 188 183 | 
             
                # Return unique key for current locales in translation and places.
         | 
| 189 184 | 
             
                def translation_cache_key
         | 
| 190 | 
            -
                   | 
| 185 | 
            +
                  @available_codes ||= @translation_places.inject([]) { |all, i|
         | 
| 191 186 | 
             
                    all + i.available }.uniq.map { |i| i.code }
         | 
| 192 | 
            -
                  (@locales_codes &  | 
| 187 | 
            +
                  (@locales_codes & @available_codes).join(',') + '@' +
         | 
| 193 188 | 
             
                    R18n.default_loader.hash.to_s +
         | 
| 194 189 | 
             
                    @translation_places.hash.to_s + R18n.extension_places.hash.to_s
         | 
| 195 190 | 
             
                end
         | 
| 196 191 |  | 
| 197 192 | 
             
                # Reload translations.
         | 
| 198 193 | 
             
                def reload!
         | 
| 194 | 
            +
                  @available = @available_codes = nil
         | 
| 199 195 | 
             
                  @translation_places = self.class.convert_places(@original_places)
         | 
| 200 196 |  | 
| 201 197 | 
             
                  available_in_places = @translation_places.map { |i| [i, i.available] }
         | 
| 202 | 
            -
                  available_in_extensions = R18n.extension_places.map { | 
| 198 | 
            +
                  available_in_extensions = R18n.extension_places.map {|i| [i, i.available]}
         | 
| 199 | 
            +
                  
         | 
| 200 | 
            +
                  unless @locale
         | 
| 201 | 
            +
                    available_in_places.each do |place, available|
         | 
| 202 | 
            +
                      @locales.each do |locale|
         | 
| 203 | 
            +
                        if available.include? locale
         | 
| 204 | 
            +
                          @locale = locale
         | 
| 205 | 
            +
                          break
         | 
| 206 | 
            +
                        end
         | 
| 207 | 
            +
                      end
         | 
| 208 | 
            +
                      break if @locale
         | 
| 209 | 
            +
                    end
         | 
| 210 | 
            +
                  end
         | 
| 211 | 
            +
                  @locale ||= @locales.first
         | 
| 212 | 
            +
                  unless @locale.supported?
         | 
| 213 | 
            +
                    @locales.each do |locale|
         | 
| 214 | 
            +
                      if locale.supported?
         | 
| 215 | 
            +
                        @locale.base = locale
         | 
| 216 | 
            +
                        break
         | 
| 217 | 
            +
                      end
         | 
| 218 | 
            +
                    end
         | 
| 219 | 
            +
                  end
         | 
| 203 220 |  | 
| 204 221 | 
             
                  @translation = Translation.new @locale
         | 
| 205 222 | 
             
                  @locales.each do |locale|
         | 
| @@ -218,7 +235,8 @@ module R18n | |
| 218 235 | 
             
                      end
         | 
| 219 236 | 
             
                    end
         | 
| 220 237 | 
             
                  end
         | 
| 221 | 
            -
                   | 
| 238 | 
            +
                  
         | 
| 239 | 
            +
                  R18n.cache[translation_cache_key] = [@locale, @translation]
         | 
| 222 240 | 
             
                end
         | 
| 223 241 |  | 
| 224 242 | 
             
                # Return Array of locales with available translations.
         | 
    
        data/lib/r18n-core/locale.rb
    CHANGED
    
    | @@ -73,8 +73,8 @@ module R18n | |
| 73 73 |  | 
| 74 74 | 
             
                # Load locale by RFC 3066 +code+.
         | 
| 75 75 | 
             
                def self.load(code)
         | 
| 76 | 
            -
                  original = code.to_s.gsub(/[^- | 
| 77 | 
            -
                  code = original.downcase
         | 
| 76 | 
            +
                  original = code.to_s.gsub(/[^-_a-zA-Z]/, '')
         | 
| 77 | 
            +
                  code = original.gsub('_', '-').downcase
         | 
| 78 78 |  | 
| 79 79 | 
             
                  @@loaded[code] ||= begin
         | 
| 80 80 | 
             
                    if exists? code
         | 
    
        data/lib/r18n-core/utils.rb
    CHANGED
    
    | @@ -27,20 +27,35 @@ module R18n | |
| 27 27 | 
             
                  Date.new!(Date.send(:jd_to_ajd, jd, 0, 0), 0, Date::ITALY)
         | 
| 28 28 | 
             
                end
         | 
| 29 29 |  | 
| 30 | 
            -
                HTML_ENTRIES = { '&'=>'&', '<'=>'<', '>'=>'>' }
         | 
| 30 | 
            +
                HTML_ENTRIES = { '&' => '&', '<' => '<', '>' => '>' }
         | 
| 31 31 |  | 
| 32 32 | 
             
                # Escape HTML entries (<, >, &). Copy from HAML helper.
         | 
| 33 33 | 
             
                def self.escape_html(content)
         | 
| 34 34 | 
             
                  content.to_s.gsub(/[><&]/) { |s| HTML_ENTRIES[s] }
         | 
| 35 35 | 
             
                end
         | 
| 36 36 |  | 
| 37 | 
            -
                 | 
| 37 | 
            +
                # Invokes +block+ once for each key and value of +hash+. Creates a new hash
         | 
| 38 | 
            +
                # with the keys and values returned by the +block+.
         | 
| 39 | 
            +
                def self.hash_map(hash, &block)
         | 
| 38 40 | 
             
                  result = {}
         | 
| 39 41 | 
             
                  hash.each_pair do |key, val|
         | 
| 40 | 
            -
                    new_key, new_value =  | 
| 42 | 
            +
                    new_key, new_value = block.call(key, val)
         | 
| 41 43 | 
             
                    result[new_key] = new_value
         | 
| 42 44 | 
             
                  end
         | 
| 43 45 | 
             
                 result
         | 
| 44 46 | 
             
                end
         | 
| 47 | 
            +
              
         | 
| 48 | 
            +
                # Recursively hash merge.
         | 
| 49 | 
            +
                def self.deep_merge!(a, b)
         | 
| 50 | 
            +
                  b.each_pair do |key, value|
         | 
| 51 | 
            +
                    another = a[key]
         | 
| 52 | 
            +
                    if another.nil?
         | 
| 53 | 
            +
                      a[key] = value
         | 
| 54 | 
            +
                    elsif another.is_a?(Hash) and value.is_a?(Hash)
         | 
| 55 | 
            +
                      a[key] = deep_merge!(another, value)
         | 
| 56 | 
            +
                    end
         | 
| 57 | 
            +
                  end
         | 
| 58 | 
            +
                  a
         | 
| 59 | 
            +
                end
         | 
| 45 60 | 
             
              end
         | 
| 46 61 | 
             
            end
         | 
    
        data/lib/r18n-core/version.rb
    CHANGED
    
    
| @@ -43,15 +43,18 @@ module R18n | |
| 43 43 |  | 
| 44 44 | 
             
                  # Array of locales, which has translations in +dir+.
         | 
| 45 45 | 
             
                  def available
         | 
| 46 | 
            -
                    Dir.glob(File.join(@dir, ' | 
| 47 | 
            -
                       | 
| 48 | 
            -
             | 
| 46 | 
            +
                    Dir.glob(File.join(@dir, '**/*.yml')).
         | 
| 47 | 
            +
                      map { |i| File.basename(i, '.yml') }.uniq.
         | 
| 48 | 
            +
                      map { |i| R18n::Locale.load(i) }
         | 
| 49 49 | 
             
                  end
         | 
| 50 50 |  | 
| 51 51 | 
             
                  # Return Hash with translations for +locale+.
         | 
| 52 52 | 
             
                  def load(locale)
         | 
| 53 | 
            -
                     | 
| 54 | 
            -
                     | 
| 53 | 
            +
                    translations = {}
         | 
| 54 | 
            +
                    Dir.glob(File.join(@dir, "**/#{locale.code.downcase}.yml")).each do |i|
         | 
| 55 | 
            +
                      Utils.deep_merge!(translations, ::YAML::load_file(i))
         | 
| 56 | 
            +
                    end
         | 
| 57 | 
            +
                    transform(translations)
         | 
| 55 58 | 
             
                  end
         | 
| 56 59 |  | 
| 57 60 | 
             
                  # YAML loader with same +dir+ will be have same +hash+.
         | 
    
        data/locales/cs.rb
    CHANGED
    
    | @@ -7,15 +7,16 @@ module R18n | |
| 7 7 | 
             
                    :wday_names => %w{Neděle Pondělí Úterý Středa Čtvrtek Pátek Sobota},
         | 
| 8 8 | 
             
                    :wday_abbrs => %w{Ne Po Út St Čt Pá So},
         | 
| 9 9 |  | 
| 10 | 
            -
                    :month_names => %w{ | 
| 11 | 
            -
                                        | 
| 12 | 
            -
                    :month_abbrs => %w{ | 
| 10 | 
            +
                    :month_names => %w{ledna února března dubna května června července srpna
         | 
| 11 | 
            +
                                       září října listopadu prosince},
         | 
| 12 | 
            +
                    :month_abbrs => %w{led úno bře dub kvě čer čvc srp zář říj lis pro},
         | 
| 13 13 | 
             
                    :month_standalone => %w{Leden Únor Březen Duben Květen Červen Červenec
         | 
| 14 14 | 
             
                                            Srpen Září Říjen Listopad Prosinec},
         | 
| 15 15 |  | 
| 16 16 | 
             
                    :time_am => 'dop.',
         | 
| 17 17 | 
             
                    :time_pm => 'odp.',
         | 
| 18 | 
            -
                    :date_format => '% | 
| 18 | 
            +
                    :date_format => '%e. %m. %Y',
         | 
| 19 | 
            +
                    :full_format => '%e. %B',
         | 
| 19 20 |  | 
| 20 21 | 
             
                    :number_decimal => ",",
         | 
| 21 22 | 
             
                    :number_group   => " "
         | 
    
        data/locales/sk.rb
    ADDED
    
    | @@ -0,0 +1,38 @@ | |
| 1 | 
            +
            # encoding: utf-8
         | 
| 2 | 
            +
            module R18n
         | 
| 3 | 
            +
              class Locales::Sk < Locale
         | 
| 4 | 
            +
                set :title => 'Slovenský',
         | 
| 5 | 
            +
                    :sublocales => %w{cs cz en},
         | 
| 6 | 
            +
                    
         | 
| 7 | 
            +
                    :wday_names => %w{Nedeľa Pondelok Utorok Streda Štvrtok Piatok Sobota},
         | 
| 8 | 
            +
                    :wday_abbrs => %w{Ne Po Ut St Št Pi So},
         | 
| 9 | 
            +
                    
         | 
| 10 | 
            +
                    :month_names => %w{januára februára marca apríla mája júna júla augusta
         | 
| 11 | 
            +
                                      septembra októbra novembra decembra},
         | 
| 12 | 
            +
                    :month_abbrs => %w{jan feb mar apr máj jún júl aug sep okt nov dec},
         | 
| 13 | 
            +
                    :month_standalone => %w{Január Február Marec Apríl Máj Jún Júl August
         | 
| 14 | 
            +
                                            September Október November December},
         | 
| 15 | 
            +
                    
         | 
| 16 | 
            +
                    :time_am => 'dop.',
         | 
| 17 | 
            +
                    :time_pm => 'odp.',
         | 
| 18 | 
            +
                    :date_format => '%d.%m.%Y',
         | 
| 19 | 
            +
                    :full_format => '%e. %B',
         | 
| 20 | 
            +
                    
         | 
| 21 | 
            +
                    :number_decimal => ",",
         | 
| 22 | 
            +
                    :number_group   => " "
         | 
| 23 | 
            +
                
         | 
| 24 | 
            +
                def pluralize(n)
         | 
| 25 | 
            +
                  case n
         | 
| 26 | 
            +
                  when 0
         | 
| 27 | 
            +
                    0
         | 
| 28 | 
            +
                  when 1
         | 
| 29 | 
            +
                    1
         | 
| 30 | 
            +
                  when 2..4
         | 
| 31 | 
            +
                    2
         | 
| 32 | 
            +
                  else
         | 
| 33 | 
            +
                    'n'
         | 
| 34 | 
            +
                  end
         | 
| 35 | 
            +
                end
         | 
| 36 | 
            +
              end
         | 
| 37 | 
            +
            end
         | 
| 38 | 
            +
             | 
    
        data/spec/i18n_spec.rb
    CHANGED
    
    | @@ -4,7 +4,6 @@ require File.join(File.dirname(__FILE__), 'spec_helper') | |
| 4 4 | 
             
            describe R18n::I18n do
         | 
| 5 5 | 
             
              before do
         | 
| 6 6 | 
             
                @extension_places = R18n.extension_places.clone
         | 
| 7 | 
            -
                R18n.cache.clear
         | 
| 8 7 | 
             
              end
         | 
| 9 8 |  | 
| 10 9 | 
             
              after do
         | 
| @@ -194,7 +193,7 @@ describe R18n::I18n do | |
| 194 193 | 
             
              end
         | 
| 195 194 |  | 
| 196 195 | 
             
              it "should return first locale with locale file" do
         | 
| 197 | 
            -
                i18n = R18n::I18n.new(['no-LC', 'ru', 'en'], DIR)
         | 
| 196 | 
            +
                i18n = R18n::I18n.new(['no-TR', 'no-LC', 'ru', 'en'], DIR)
         | 
| 198 197 | 
             
                i18n.locale.should == R18n::Locale.load('no-LC')
         | 
| 199 198 | 
             
                i18n.locale.base.should == R18n::Locale.load('ru')
         | 
| 200 199 | 
             
              end
         | 
    
        data/spec/locale_spec.rb
    CHANGED
    
    
    
        data/spec/locales/cs_spec.rb
    CHANGED
    
    | @@ -3,22 +3,22 @@ require File.join(File.dirname(__FILE__), '..', '..', 'locales', 'cs') | |
| 3 3 |  | 
| 4 4 | 
             
            describe R18n::Locales::Cs do
         | 
| 5 5 | 
             
              it "should use Czech pluralization" do
         | 
| 6 | 
            -
                 | 
| 7 | 
            -
                 | 
| 8 | 
            -
                 | 
| 6 | 
            +
                cs = R18n::Locale.load('cs')
         | 
| 7 | 
            +
                cs.pluralize(0).should == 0
         | 
| 8 | 
            +
                cs.pluralize(1).should == 1
         | 
| 9 9 |  | 
| 10 | 
            -
                 | 
| 11 | 
            -
                 | 
| 12 | 
            -
                 | 
| 10 | 
            +
                cs.pluralize(2).should == 2
         | 
| 11 | 
            +
                cs.pluralize(3).should == 2
         | 
| 12 | 
            +
                cs.pluralize(4).should == 2
         | 
| 13 13 |  | 
| 14 | 
            -
                 | 
| 15 | 
            -
                 | 
| 16 | 
            -
                 | 
| 17 | 
            -
                 | 
| 18 | 
            -
                 | 
| 19 | 
            -
                 | 
| 20 | 
            -
                 | 
| 21 | 
            -
                 | 
| 22 | 
            -
                 | 
| 14 | 
            +
                cs.pluralize(5).should   == 'n'
         | 
| 15 | 
            +
                cs.pluralize(21).should  == 'n'
         | 
| 16 | 
            +
                cs.pluralize(11).should  == 'n'
         | 
| 17 | 
            +
                cs.pluralize(12).should  == 'n'
         | 
| 18 | 
            +
                cs.pluralize(22).should  == 'n'
         | 
| 19 | 
            +
                cs.pluralize(57).should  == 'n'
         | 
| 20 | 
            +
                cs.pluralize(101).should == 'n'
         | 
| 21 | 
            +
                cs.pluralize(102).should == 'n'
         | 
| 22 | 
            +
                cs.pluralize(111).should == 'n'
         | 
| 23 23 | 
             
              end
         | 
| 24 24 | 
             
            end
         | 
| @@ -0,0 +1,24 @@ | |
| 1 | 
            +
            require File.join(File.dirname(__FILE__), '..', 'spec_helper')
         | 
| 2 | 
            +
            require File.join(File.dirname(__FILE__), '..', '..', 'locales', 'sk')
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            describe R18n::Locales::Sk do
         | 
| 5 | 
            +
              it "should use Slovak pluralization" do
         | 
| 6 | 
            +
                sk = R18n::Locale.load('Sk')
         | 
| 7 | 
            +
                sk.pluralize(0).should == 0
         | 
| 8 | 
            +
                sk.pluralize(1).should == 1
         | 
| 9 | 
            +
                
         | 
| 10 | 
            +
                sk.pluralize(2).should == 2
         | 
| 11 | 
            +
                sk.pluralize(3).should == 2
         | 
| 12 | 
            +
                sk.pluralize(4).should == 2
         | 
| 13 | 
            +
                
         | 
| 14 | 
            +
                sk.pluralize(5).should   == 'n'
         | 
| 15 | 
            +
                sk.pluralize(21).should  == 'n'
         | 
| 16 | 
            +
                sk.pluralize(11).should  == 'n'
         | 
| 17 | 
            +
                sk.pluralize(12).should  == 'n'
         | 
| 18 | 
            +
                sk.pluralize(22).should  == 'n'
         | 
| 19 | 
            +
                sk.pluralize(57).should  == 'n'
         | 
| 20 | 
            +
                sk.pluralize(101).should == 'n'
         | 
| 21 | 
            +
                sk.pluralize(102).should == 'n'
         | 
| 22 | 
            +
                sk.pluralize(111).should == 'n'
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
            end
         | 
    
        data/spec/r18n_spec.rb
    CHANGED
    
    | @@ -44,5 +44,23 @@ describe R18n do | |
| 44 44 | 
             
              it "should convert Time to Date" do
         | 
| 45 45 | 
             
                  R18n::Utils.to_date(Time.now).should == Date.today
         | 
| 46 46 | 
             
              end
         | 
| 47 | 
            +
              
         | 
| 48 | 
            +
              it "should map hash" do
         | 
| 49 | 
            +
                R18n::Utils.hash_map({'a' => 1, 'b' => 2}) { |k, v| [k + 'a', v + 1] }.
         | 
| 50 | 
            +
                  should == { 'aa' => 2, 'ba' => 3 }
         | 
| 51 | 
            +
              end
         | 
| 52 | 
            +
              
         | 
| 53 | 
            +
              it "should merge hash recursively" do
         | 
| 54 | 
            +
                a = { :a => 1,
         | 
| 55 | 
            +
                      :b => {:ba => 1, :bb => 1},
         | 
| 56 | 
            +
                      :c => 1 }
         | 
| 57 | 
            +
                b = { :b => {:bb => 2, :bc => 2},
         | 
| 58 | 
            +
                      :c => 2 }
         | 
| 59 | 
            +
                
         | 
| 60 | 
            +
                R18n::Utils.deep_merge!(a, b)
         | 
| 61 | 
            +
                a.should == { :a => 1,
         | 
| 62 | 
            +
                              :b => { :ba => 1, :bb => 1, :bc => 2 },
         | 
| 63 | 
            +
                              :c => 1 }
         | 
| 64 | 
            +
              end
         | 
| 47 65 |  | 
| 48 66 | 
             
            end
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | @@ -6,9 +6,14 @@ dir = Pathname(__FILE__).dirname | |
| 6 6 |  | 
| 7 7 | 
             
            require dir + '../lib/r18n-core'
         | 
| 8 8 |  | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 9 | 
            +
            TRANSALTIONS = dir + 'translations'
         | 
| 10 | 
            +
            DIR = TRANSALTIONS + 'general' unless defined? DIR
         | 
| 11 | 
            +
            TWO = TRANSALTIONS + 'two' unless defined? TWO
         | 
| 12 | 
            +
            EXT = R18n::Loader::YAML.new(TRANSALTIONS + 'extension') unless defined? EXT
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            Spec::Runner.configure do |config|
         | 
| 15 | 
            +
              config.before { R18n.cache.clear }
         | 
| 16 | 
            +
            end
         | 
| 12 17 |  | 
| 13 18 | 
             
            gem 'maruku'
         | 
| 14 19 | 
             
            gem 'RedCloth'
         | 
    
        data/spec/yaml_loader_spec.rb
    CHANGED
    
    | @@ -31,4 +31,18 @@ describe R18n::Loader::YAML do | |
| 31 31 | 
             
                @loader.hash.should == R18n::Loader::YAML.new(DIR).hash
         | 
| 32 32 | 
             
              end
         | 
| 33 33 |  | 
| 34 | 
            +
              it "should load in dir recursively" do
         | 
| 35 | 
            +
                loader = R18n::Loader::YAML.new(TRANSALTIONS)
         | 
| 36 | 
            +
                loader.available.should =~ [R18n::Locale.load('ru'),
         | 
| 37 | 
            +
                                            R18n::Locale.load('en'),
         | 
| 38 | 
            +
                                            R18n::Locale.load('fr'),
         | 
| 39 | 
            +
                                            R18n::Locale.load('no-tr'),
         | 
| 40 | 
            +
                                            R18n::Locale.load('no-lc')]
         | 
| 41 | 
            +
                
         | 
| 42 | 
            +
                translation = loader.load(R18n::Locale.load('en'))
         | 
| 43 | 
            +
                translation['one'].should       == 'One'
         | 
| 44 | 
            +
                translation['in']['two'].should == 'Two'
         | 
| 45 | 
            +
                translation['ext'].should       == 'Extension'
         | 
| 46 | 
            +
              end
         | 
| 47 | 
            +
              
         | 
| 34 48 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: r18n-core
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              version: 0.4. | 
| 4 | 
            +
              version: 0.4.3
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors: 
         | 
| 7 7 | 
             
            - Andrey "A.I." Sitnik
         | 
| @@ -9,7 +9,7 @@ autorequire: | |
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 11 |  | 
| 12 | 
            -
            date: 2010-02- | 
| 12 | 
            +
            date: 2010-02-26 00:00:00 +03:00
         | 
| 13 13 | 
             
            default_executable: 
         | 
| 14 14 | 
             
            dependencies: []
         | 
| 15 15 |  | 
| @@ -28,6 +28,7 @@ files: | |
| 28 28 | 
             
            - base/it.yml
         | 
| 29 29 | 
             
            - base/ru.yml
         | 
| 30 30 | 
             
            - base/pl.yml
         | 
| 31 | 
            +
            - base/sk.yml
         | 
| 31 32 | 
             
            - base/de.yml
         | 
| 32 33 | 
             
            - base/eo.yml
         | 
| 33 34 | 
             
            - base/cs.yml
         | 
| @@ -58,6 +59,7 @@ files: | |
| 58 59 | 
             
            - locales/zh.rb
         | 
| 59 60 | 
             
            - locales/fr.rb
         | 
| 60 61 | 
             
            - locales/ru.rb
         | 
| 62 | 
            +
            - locales/sk.rb
         | 
| 61 63 | 
             
            - locales/pt-br.rb
         | 
| 62 64 | 
             
            - locales/de.rb
         | 
| 63 65 | 
             
            - locales/eo.rb
         | 
| @@ -96,6 +98,7 @@ test_files: | |
| 96 98 | 
             
            - spec/translated_spec.rb
         | 
| 97 99 | 
             
            - spec/locales/it_spec.rb
         | 
| 98 100 | 
             
            - spec/locales/fr_spec.rb
         | 
| 101 | 
            +
            - spec/locales/sk_spec.rb
         | 
| 99 102 | 
             
            - spec/locales/pl_spec.rb
         | 
| 100 103 | 
             
            - spec/locales/cs_spec.rb
         | 
| 101 104 | 
             
            - spec/locales/ru_spec.rb
         |