fast_gettext 0.6.10 → 0.6.11
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/Gemfile +6 -7
- data/Gemfile.lock +3 -1
- data/Rakefile +3 -2
- data/Readme.md +2 -0
- data/benchmark/base.rb +5 -1
- data/benchmark/i18n_simple.rb +3 -2
- data/benchmark/locale/de.yml +8 -9
- data/benchmark/original.rb +5 -2
- data/lib/fast_gettext/storage.rb +4 -0
- data/lib/fast_gettext/translation_repository/db_models/translation_text.rb +7 -0
- data/lib/fast_gettext/version.rb +1 -1
- data/spec/fast_gettext/storage_spec.rb +10 -0
- data/spec/fast_gettext/translation_repository/db_spec.rb +6 -0
- metadata +4 -4
data/Gemfile
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
source :rubygems
|
2
2
|
gemspec
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
end
|
4
|
+
gem 'rake'
|
5
|
+
gem 'sqlite3'
|
6
|
+
gem 'rspec', '~>2'
|
7
|
+
gem 'activerecord', ENV['AR']
|
8
|
+
gem 'i18n'
|
9
|
+
gem 'bump'
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
fast_gettext (0.6.
|
4
|
+
fast_gettext (0.6.11)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: http://rubygems.org/
|
@@ -19,6 +19,7 @@ GEM
|
|
19
19
|
multi_json (~> 1.0)
|
20
20
|
arel (3.0.2)
|
21
21
|
builder (3.0.0)
|
22
|
+
bump (0.3.3)
|
22
23
|
diff-lcs (1.1.3)
|
23
24
|
i18n (0.6.0)
|
24
25
|
multi_json (1.3.6)
|
@@ -39,6 +40,7 @@ PLATFORMS
|
|
39
40
|
|
40
41
|
DEPENDENCIES
|
41
42
|
activerecord
|
43
|
+
bump
|
42
44
|
fast_gettext!
|
43
45
|
i18n
|
44
46
|
rake
|
data/Rakefile
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'bundler/gem_tasks'
|
2
|
+
require 'bump/tasks'
|
2
3
|
|
3
4
|
task :default do
|
4
5
|
['~>2', '~>3'].each do |version|
|
@@ -8,9 +9,9 @@ task :default do
|
|
8
9
|
end
|
9
10
|
|
10
11
|
task :benchmark do
|
11
|
-
puts "Running on #{
|
12
|
+
puts "Running on #{RUBY_DESCRIPTION}"
|
12
13
|
%w[baseline ideal fast_gettext original i18n_simple].each do |bench|
|
13
|
-
puts `ruby benchmark/#{bench}.rb`
|
14
|
+
puts `ruby -I. benchmark/#{bench}.rb`
|
14
15
|
puts ""
|
15
16
|
end
|
16
17
|
end
|
data/Readme.md
CHANGED
@@ -222,6 +222,8 @@ Mo/Po-file parsing from Masao Mutoh, see vendor/README
|
|
222
222
|
- [Dmitry Borodaenko](https://github.com/angdraug)
|
223
223
|
- [Kouhei Sutou](https://github.com/kou)
|
224
224
|
- [Hoang Nghiem](https://github.com/hoangnghiem)
|
225
|
+
- [Costa Shapiro](https://github.com/costa)
|
226
|
+
- [Jamie Dyer](https://github.com/kernow)
|
225
227
|
|
226
228
|
[Michael Grosser](http://grosser.it)<br/>
|
227
229
|
michael@grosser.it<br/>
|
data/benchmark/base.rb
CHANGED
@@ -35,7 +35,11 @@ end
|
|
35
35
|
|
36
36
|
def memory
|
37
37
|
pid = Process.pid
|
38
|
-
|
38
|
+
if RUBY_PLATFORM.downcase.include?("darwin")
|
39
|
+
map = `vmmap #{pid}`
|
40
|
+
else
|
41
|
+
map = `pmap -d #{pid}`
|
42
|
+
end
|
39
43
|
map.split("\n").last.strip.squeeze(' ').split(' ')[3].to_i - DEFAULTS[:memory]
|
40
44
|
end
|
41
45
|
|
data/benchmark/i18n_simple.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
require 'benchmark/base'
|
2
|
-
require '
|
2
|
+
require 'active_support'
|
3
|
+
|
3
4
|
I18n.backend = I18n::Backend::Simple.new
|
4
5
|
I18n.load_path = ['benchmark/locale/de.yml']
|
5
6
|
I18n.locale = :de
|
6
7
|
puts "ActiveSupport I18n::Backend::Simple :"
|
7
|
-
results_test{I18n.translate('activerecord.models.car')=='Auto'}
|
8
|
+
results_test{I18n.translate('activerecord.models.car')=='Auto'}
|
data/benchmark/locale/de.yml
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# German translations for Ruby on Rails
|
1
|
+
# German translations for Ruby on Rails
|
2
2
|
# by Clemens Kofler (clemens@railway.at)
|
3
3
|
|
4
4
|
de:
|
@@ -13,8 +13,7 @@ de:
|
|
13
13
|
abbr_day_names: [So, Mo, Di, Mi, Do, Fr, Sa]
|
14
14
|
month_names: [~, Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember]
|
15
15
|
abbr_month_names: [~, Jan, Feb, Mär, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez]
|
16
|
-
|
17
|
-
|
16
|
+
|
18
17
|
time:
|
19
18
|
formats:
|
20
19
|
default: "%A, %e. %B %Y, %H:%M Uhr"
|
@@ -24,7 +23,7 @@ de:
|
|
24
23
|
|
25
24
|
am: "vormittags"
|
26
25
|
pm: "nachmittags"
|
27
|
-
|
26
|
+
|
28
27
|
datetime:
|
29
28
|
distance_in_words:
|
30
29
|
half_a_minute: 'eine halbe Minute'
|
@@ -60,7 +59,7 @@ de:
|
|
60
59
|
over_x_years:
|
61
60
|
one: 'mehr als 1 Jahr'
|
62
61
|
other: 'mehr als {{count}} Jahre'
|
63
|
-
|
62
|
+
|
64
63
|
number:
|
65
64
|
format:
|
66
65
|
precision: 2
|
@@ -70,9 +69,9 @@ de:
|
|
70
69
|
format:
|
71
70
|
unit: '€'
|
72
71
|
format: '%n%u'
|
73
|
-
separator:
|
74
|
-
delimiter:
|
75
|
-
precision:
|
72
|
+
separator:
|
73
|
+
delimiter:
|
74
|
+
precision:
|
76
75
|
percentage:
|
77
76
|
format:
|
78
77
|
delimiter: ""
|
@@ -88,7 +87,7 @@ de:
|
|
88
87
|
array:
|
89
88
|
sentence_connector: "und"
|
90
89
|
skip_last_comma: true
|
91
|
-
|
90
|
+
|
92
91
|
activerecord:
|
93
92
|
errors:
|
94
93
|
template:
|
data/benchmark/original.rb
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
require 'benchmark/base'
|
2
2
|
|
3
3
|
begin
|
4
|
-
gem 'gettext', '>=2.0.0'
|
4
|
+
gem 'gettext', '>=2.0.0'
|
5
5
|
rescue LoadError
|
6
|
-
|
6
|
+
puts 'To run this benchmark, please install the gettext gem'
|
7
|
+
exit 1
|
7
8
|
end
|
9
|
+
|
10
|
+
$LOAD_PATH.unshift 'lib'
|
8
11
|
require 'gettext'
|
9
12
|
include GetText
|
10
13
|
|
data/lib/fast_gettext/storage.rb
CHANGED
@@ -3,4 +3,11 @@ class TranslationText < ActiveRecord::Base
|
|
3
3
|
validates_presence_of :locale
|
4
4
|
validates_uniqueness_of :locale, :scope=>:translation_key_id
|
5
5
|
attr_accessible :text, :locale, :translation_key, :translation_key_id
|
6
|
+
after_update :expire_cache
|
7
|
+
|
8
|
+
protected
|
9
|
+
|
10
|
+
def expire_cache
|
11
|
+
FastGettext.expire_cache_for(translation_key.key)
|
12
|
+
end
|
6
13
|
end
|
data/lib/fast_gettext/version.rb
CHANGED
@@ -327,6 +327,16 @@ describe 'Storage' do
|
|
327
327
|
end
|
328
328
|
end
|
329
329
|
|
330
|
+
describe :expire_cache_for do
|
331
|
+
it "expires the cached key" do
|
332
|
+
should_receive(:current_repository).and_return 'xxx' => 'new string'
|
333
|
+
current_cache['xxx'] = 'old string'
|
334
|
+
cached_find('xxx').should == 'old string'
|
335
|
+
expire_cache_for('xxx')
|
336
|
+
cached_find('xxx').should == 'new string'
|
337
|
+
end
|
338
|
+
end
|
339
|
+
|
330
340
|
describe FastGettext::Storage::NoTextDomainConfigured do
|
331
341
|
it "shows what to do" do
|
332
342
|
FastGettext::Storage::NoTextDomainConfigured.new.to_s.should =~ /FastGettext\.add_text_domain/
|
@@ -105,4 +105,10 @@ describe FastGettext::TranslationRepository::Db do
|
|
105
105
|
translation.should be_accessible(:translation_key_id)
|
106
106
|
translation.should_not be_accessible(:created_at)
|
107
107
|
end
|
108
|
+
|
109
|
+
it "expires the cache when updated" do
|
110
|
+
FastGettext.should_receive(:expire_cache_for).with('car')
|
111
|
+
translation_text = create_translation 'car', 'Auto'
|
112
|
+
translation_text.update_attributes :text => 'Autobot'
|
113
|
+
end
|
108
114
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fast_gettext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.11
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-10-26 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description:
|
15
15
|
email: michael@grosser.it
|
@@ -111,7 +111,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
111
111
|
version: '0'
|
112
112
|
segments:
|
113
113
|
- 0
|
114
|
-
hash: -
|
114
|
+
hash: -1129641372544859423
|
115
115
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
@@ -120,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
120
|
version: '0'
|
121
121
|
segments:
|
122
122
|
- 0
|
123
|
-
hash: -
|
123
|
+
hash: -1129641372544859423
|
124
124
|
requirements: []
|
125
125
|
rubyforge_project:
|
126
126
|
rubygems_version: 1.8.24
|