i18n-one_sky 2.0.7 → 2.0.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,7 +7,8 @@ I18n::Backend::ActiveRecord.send(:include, I18n::Backend::Flatten)
7
7
  # ensure we have migrated before we try and use the backend.
8
8
  if I18n::Backend::ActiveRecord::Translation.table_exists?
9
9
  # chain it into the existing backend
10
- I18n.backend = I18n::Backend::Chain.new(I18n.backend, I18n::Backend::ActiveRecord.new)
10
+ # the Active Record backend must come first!
11
+ I18n.backend = I18n::Backend::Chain.new(I18n::Backend::ActiveRecord.new, I18n.backend)
11
12
  else
12
13
  warn "There is currently no translations table. You may need to migrate."
13
14
  end
@@ -7,8 +7,6 @@ module I18n
7
7
  # it encapsulates the logic of I18n::Backend::ActiveRecord
8
8
  class ActiveRecordClient < ClientBase
9
9
 
10
- Translation = I18n::Backend::ActiveRecord::Translation
11
-
12
10
  def download
13
11
  puts "Downloading translations for I18n Active Record Backend:"
14
12
 
@@ -25,11 +23,8 @@ module I18n
25
23
  else
26
24
  yaml = platform.translation.download_yaml(locale_code)
27
25
  YAML.load(yaml).each do |code, translations|
28
- puts " locale: #{locale_code}, count: #{translations.length}"
29
- translations.each do |key, value|
30
- Translation.locale(i18n_locale_code).delete_all(["key=?", key])
31
- Translation.create!(:locale => i18n_locale_code, :key => key.to_s, :value => value)
32
- end
26
+ active_record_backend.store_translations(i18n_locale_code, translations)
27
+ puts " locale: #{i18n_locale_code}, count: #{translation_scope(i18n_locale_code).count}"
33
28
  end
34
29
  end
35
30
  end
@@ -42,13 +37,29 @@ module I18n
42
37
  # Grab all the keys from the active record store.
43
38
  def all_phrases
44
39
  phrases = Hash.new
45
- I18n::Backend::ActiveRecord::Translation.locale(I18n.default_locale).find_each() do |translation|
40
+ translation_scope(I18n.default_locale).find_each() do |translation|
46
41
  phrases[translation.key] = translation.value
47
42
  end
48
43
  phrases
49
44
  end
50
45
  memoize :all_phrases
51
46
 
47
+ protected
48
+
49
+ def active_record_backend
50
+ if I18n.backend.is_a?(I18n::Backend::Chain)
51
+ I18n.backend.backends.detect do |backend|
52
+ backend.is_a?(I18n::Backend::ActiveRecord)
53
+ end
54
+ else
55
+ I18n.backend
56
+ end
57
+ end
58
+
59
+ def translation_scope(locale)
60
+ I18n::Backend::ActiveRecord::Translation.locale(locale)
61
+ end
62
+
52
63
  end
53
64
  end
54
65
  end
@@ -1,5 +1,5 @@
1
1
  module I18n
2
2
  module Onesky
3
- VERSION = "2.0.7"
3
+ VERSION = "2.0.8"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: i18n-one_sky
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.7
4
+ version: 2.0.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -15,7 +15,7 @@ date: 2012-01-24 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: i18n
18
- requirement: &70092684525480 !ruby/object:Gem::Requirement
18
+ requirement: &70160615244300 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ! '>='
@@ -23,10 +23,10 @@ dependencies:
23
23
  version: 0.5.0
24
24
  type: :runtime
25
25
  prerelease: false
26
- version_requirements: *70092684525480
26
+ version_requirements: *70160615244300
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: one_sky
29
- requirement: &70092684524980 !ruby/object:Gem::Requirement
29
+ requirement: &70160615243800 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
32
  - - ~>
@@ -34,10 +34,10 @@ dependencies:
34
34
  version: 2.0.0
35
35
  type: :runtime
36
36
  prerelease: false
37
- version_requirements: *70092684524980
37
+ version_requirements: *70160615243800
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: i18n-active_record
40
- requirement: &70092684524520 !ruby/object:Gem::Requirement
40
+ requirement: &70160615243320 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ! '>='
@@ -45,10 +45,10 @@ dependencies:
45
45
  version: 0.0.2
46
46
  type: :runtime
47
47
  prerelease: false
48
- version_requirements: *70092684524520
48
+ version_requirements: *70160615243320
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: activesupport
51
- requirement: &70092684524060 !ruby/object:Gem::Requirement
51
+ requirement: &70160615242840 !ruby/object:Gem::Requirement
52
52
  none: false
53
53
  requirements:
54
54
  - - ! '>='
@@ -56,10 +56,10 @@ dependencies:
56
56
  version: 2.2.2
57
57
  type: :runtime
58
58
  prerelease: false
59
- version_requirements: *70092684524060
59
+ version_requirements: *70160615242840
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: memoist
62
- requirement: &70092684523680 !ruby/object:Gem::Requirement
62
+ requirement: &70160615242460 !ruby/object:Gem::Requirement
63
63
  none: false
64
64
  requirements:
65
65
  - - ! '>='
@@ -67,10 +67,10 @@ dependencies:
67
67
  version: '0'
68
68
  type: :runtime
69
69
  prerelease: false
70
- version_requirements: *70092684523680
70
+ version_requirements: *70160615242460
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: rspec
73
- requirement: &70092684523140 !ruby/object:Gem::Requirement
73
+ requirement: &70160615241900 !ruby/object:Gem::Requirement
74
74
  none: false
75
75
  requirements:
76
76
  - - ~>
@@ -78,10 +78,10 @@ dependencies:
78
78
  version: 2.2.0
79
79
  type: :development
80
80
  prerelease: false
81
- version_requirements: *70092684523140
81
+ version_requirements: *70160615241900
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: bundler
84
- requirement: &70092684522640 !ruby/object:Gem::Requirement
84
+ requirement: &70160615241400 !ruby/object:Gem::Requirement
85
85
  none: false
86
86
  requirements:
87
87
  - - ! '>='
@@ -89,7 +89,7 @@ dependencies:
89
89
  version: 1.0.0
90
90
  type: :development
91
91
  prerelease: false
92
- version_requirements: *70092684522640
92
+ version_requirements: *70160615241400
93
93
  description: A set of I18n extensions that use OneSky. At its most basic, this allows
94
94
  you to easily submit translation requests to the OneSky service and download available
95
95
  translations as Simple backend YAML files.