fast_gettext 0.5.10 → 0.5.11

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ source :rubygems
2
+
3
+ group :dev do
4
+ gem 'rake'
5
+ gem 'sqlite3'
6
+ gem 'rspec', '~>2'
7
+ gem 'jeweler'
8
+ gem 'activerecord'
9
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,43 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ activemodel (3.0.3)
5
+ activesupport (= 3.0.3)
6
+ builder (~> 2.1.2)
7
+ i18n (~> 0.4)
8
+ activerecord (3.0.3)
9
+ activemodel (= 3.0.3)
10
+ activesupport (= 3.0.3)
11
+ arel (~> 2.0.2)
12
+ tzinfo (~> 0.3.23)
13
+ activesupport (3.0.3)
14
+ arel (2.0.7)
15
+ builder (2.1.2)
16
+ diff-lcs (1.1.2)
17
+ git (1.2.5)
18
+ i18n (0.5.0)
19
+ jeweler (1.5.2)
20
+ bundler (~> 1.0.0)
21
+ git (>= 1.2.5)
22
+ rake
23
+ rake (0.8.7)
24
+ rspec (2.5.0)
25
+ rspec-core (~> 2.5.0)
26
+ rspec-expectations (~> 2.5.0)
27
+ rspec-mocks (~> 2.5.0)
28
+ rspec-core (2.5.1)
29
+ rspec-expectations (2.5.0)
30
+ diff-lcs (~> 1.1.2)
31
+ rspec-mocks (2.5.0)
32
+ sqlite3 (1.3.3)
33
+ tzinfo (0.3.24)
34
+
35
+ PLATFORMS
36
+ ruby
37
+
38
+ DEPENDENCIES
39
+ activerecord
40
+ jeweler
41
+ rake
42
+ rspec (~> 2)
43
+ sqlite3
data/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
1
  task :default => :spec
2
- require 'spec/rake/spectask'
3
- Spec::Rake::SpecTask.new {|t| t.spec_opts = ['--color']}
2
+ require "rspec/core/rake_task"
3
+ RSpec::Core::RakeTask.new(:spec) do |t|
4
+ t.rspec_opts = '--backtrace --color'
5
+ end
4
6
 
5
7
  task :benchmark do
6
8
  puts "Running on #{RUBY}"
@@ -17,16 +19,15 @@ end
17
19
 
18
20
  begin
19
21
  require 'jeweler'
20
- project_name = 'fast_gettext'
21
22
  Jeweler::Tasks.new do |gem|
22
- gem.name = project_name
23
- gem.summary = "A simple, fast and threadsafe implementation of GetText"
24
- gem.email = "grosser.michael@gmail.com"
25
- gem.homepage = "http://github.com/grosser/#{project_name}"
23
+ gem.name = 'fast_gettext'
24
+ gem.summary = "A simple, fast, memory-efficient and threadsafe implementation of GetText"
25
+ gem.email = "michael@grosser.it"
26
+ gem.homepage = "http://github.com/grosser/#{gem.name}"
26
27
  gem.authors = ["Michael Grosser"]
27
28
  end
28
29
 
29
30
  Jeweler::GemcutterTasks.new
30
31
  rescue LoadError
31
32
  puts "Jeweler, or one of its dependencies, is not available. Install it with: sudo gem install jeweler"
32
- end
33
+ end
@@ -1,6 +1,6 @@
1
1
  FastGettext
2
2
  ===========
3
- GetText but 3.5 x faster, 560 x less memory, simple, clean namespace (7 vs 34) and threadsave!
3
+ GetText but 3.5 x faster, 560 x less memory, simple, clean namespace (7 vs 34) and threadsave!
4
4
 
5
5
  It supports multiple backends (.mo, .po, .yml files, Database(ActiveRecor + any other), Chain, Loggers) and can easily be extended.
6
6
 
@@ -59,7 +59,7 @@ Or yaml files (use I18n syntax/indentation)
59
59
  FastGettext.add_text_domain('my_app',:path=>'config/locales', :type=>:yaml)
60
60
 
61
61
  Or database (scaleable, good for many locales/translators)
62
- # db access is cached <-> only first lookup hits the db
62
+ # db access is cached <-> only first lookup hits the db
63
63
  require "fast_gettext/translation_repository/db"
64
64
  FastGettext::TranslationRepository::Db.require_models #load and include default models
65
65
  FastGettext.add_text_domain('my_app', :type=>:db, :model=>TranslationKey)
@@ -90,7 +90,7 @@ Use the [original GetText](http://github.com/mutoh/gettext) to create and manage
90
90
  (Work on a po/mo parser & reader that is easier to use has started, contributions welcome @ [pomo](http://github.com/grosser/pomo) )
91
91
 
92
92
  ###Database
93
- [Example migration for ActiveRecord](http://github.com/grosser/fast_gettext/blob/master/examples/db/migration.rb)
93
+ [Example migration for ActiveRecord](http://github.com/grosser/fast_gettext/blob/master/examples/db/migration.rb)<br/>
94
94
  The default plural seperator is `||||` but you may overwrite it (or suggest a better one..).
95
95
 
96
96
  This is usable with any model DataMapper/Sequel or any other(non-database) backend, the only thing you need to do is respond to the self.translation(key, locale) call.
@@ -100,7 +100,7 @@ To manage translations via a Web GUI, use a [Rails application and the translati
100
100
 
101
101
  Rails
102
102
  =======================
103
- Try the [gettext_i18n_rails plugin](http://github.com/grosser/gettext_i18n_rails), it simplifies the setup.
103
+ Try the [gettext_i18n_rails plugin](http://github.com/grosser/gettext_i18n_rails), it simplifies the setup.<br/>
104
104
  Try the [translation_db_engine](http://github.com/grosser/translation_db_engine), to manage your translations in a db.
105
105
 
106
106
  Setting `available_locales`,`text_domain` or `locale` will not work inside the `evironment.rb`,
@@ -195,6 +195,6 @@ Mo/Po-file parsing from Masao Mutoh, see vendor/README
195
195
  - [J. Pablo Fernández](http://pupeno.com)
196
196
  - Rudolf Gavlas
197
197
 
198
- [Michael Grosser](http://pragmatig.wordpress.com)
199
- grosser.michael@gmail.com
200
- Hereby placed under public domain, do what you want, just do not hold me accountable...
198
+ [Michael Grosser](http://grosser.it)<br/>
199
+ michael@grosser.it<br/>
200
+ Hereby placed under public domain, do what you want, just do not hold me accountable...
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.10
1
+ 0.5.11
data/fast_gettext.gemspec CHANGED
@@ -1,122 +1,118 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{fast_gettext}
8
- s.version = "0.5.10"
8
+ s.version = "0.5.11"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Michael Grosser"]
12
- s.date = %q{2010-09-17}
13
- s.email = %q{grosser.michael@gmail.com}
14
- s.extra_rdoc_files = [
15
- "README.markdown"
16
- ]
12
+ s.date = %q{2011-02-27}
13
+ s.email = %q{michael@grosser.it}
17
14
  s.files = [
18
- ".gitignore",
19
- "CHANGELOG",
20
- "README.markdown",
21
- "Rakefile",
22
- "VERSION",
23
- "benchmark/base.rb",
24
- "benchmark/baseline.rb",
25
- "benchmark/fast_gettext.rb",
26
- "benchmark/i18n_simple.rb",
27
- "benchmark/ideal.rb",
28
- "benchmark/locale/de.yml",
29
- "benchmark/locale/de/LC_MESSAGES/large.mo",
30
- "benchmark/misc/threadsave.rb",
31
- "benchmark/namespace/fast_gettext.rb",
32
- "benchmark/namespace/original.rb",
33
- "benchmark/original.rb",
34
- "examples/db/migration.rb",
35
- "examples/missing_translation_logger.rb",
36
- "fast_gettext.gemspec",
37
- "lib/fast_gettext.rb",
38
- "lib/fast_gettext/VERSION",
39
- "lib/fast_gettext/mo_file.rb",
40
- "lib/fast_gettext/po_file.rb",
41
- "lib/fast_gettext/storage.rb",
42
- "lib/fast_gettext/translation.rb",
43
- "lib/fast_gettext/translation_repository.rb",
44
- "lib/fast_gettext/translation_repository/base.rb",
45
- "lib/fast_gettext/translation_repository/chain.rb",
46
- "lib/fast_gettext/translation_repository/db.rb",
47
- "lib/fast_gettext/translation_repository/db_models/translation_key.rb",
48
- "lib/fast_gettext/translation_repository/db_models/translation_text.rb",
49
- "lib/fast_gettext/translation_repository/logger.rb",
50
- "lib/fast_gettext/translation_repository/mo.rb",
51
- "lib/fast_gettext/translation_repository/po.rb",
52
- "lib/fast_gettext/translation_repository/yaml.rb",
53
- "lib/fast_gettext/vendor/README.rdoc",
54
- "lib/fast_gettext/vendor/empty.mo",
55
- "lib/fast_gettext/vendor/iconv.rb",
56
- "lib/fast_gettext/vendor/mofile.rb",
57
- "lib/fast_gettext/vendor/poparser.rb",
58
- "lib/fast_gettext/vendor/string.rb",
59
- "spec/aa_unconfigued_spec.rb",
60
- "spec/fast_gettext/mo_file_spec.rb",
61
- "spec/fast_gettext/storage_spec.rb",
62
- "spec/fast_gettext/translation_repository/base_spec.rb",
63
- "spec/fast_gettext/translation_repository/chain_spec.rb",
64
- "spec/fast_gettext/translation_repository/db_spec.rb",
65
- "spec/fast_gettext/translation_repository/logger_spec.rb",
66
- "spec/fast_gettext/translation_repository/mo_spec.rb",
67
- "spec/fast_gettext/translation_repository/po_spec.rb",
68
- "spec/fast_gettext/translation_repository/yaml_spec.rb",
69
- "spec/fast_gettext/translation_repository_spec.rb",
70
- "spec/fast_gettext/translation_spec.rb",
71
- "spec/fast_gettext/vendor/fake_load_path/iconv.rb",
72
- "spec/fast_gettext/vendor/iconv_spec.rb",
73
- "spec/fast_gettext/vendor/string_spec.rb",
74
- "spec/fast_gettext_spec.rb",
75
- "spec/fuzzy_locale/de/test.po",
76
- "spec/locale/de/LC_MESSAGES/test.mo",
77
- "spec/locale/de/test.po",
78
- "spec/locale/en/LC_MESSAGES/plural_test.mo",
79
- "spec/locale/en/LC_MESSAGES/test.mo",
80
- "spec/locale/en/plural_test.po",
81
- "spec/locale/en/test.po",
82
- "spec/locale/yaml/de.yml",
83
- "spec/locale/yaml/en.yml",
84
- "spec/locale/yaml/notfound.yml",
85
- "spec/obsolete_locale/de/test.po",
86
- "spec/spec_helper.rb"
15
+ "CHANGELOG",
16
+ "Gemfile",
17
+ "Gemfile.lock",
18
+ "Rakefile",
19
+ "Readme.md",
20
+ "VERSION",
21
+ "benchmark/base.rb",
22
+ "benchmark/baseline.rb",
23
+ "benchmark/fast_gettext.rb",
24
+ "benchmark/i18n_simple.rb",
25
+ "benchmark/ideal.rb",
26
+ "benchmark/locale/de.yml",
27
+ "benchmark/locale/de/LC_MESSAGES/large.mo",
28
+ "benchmark/misc/threadsave.rb",
29
+ "benchmark/namespace/fast_gettext.rb",
30
+ "benchmark/namespace/original.rb",
31
+ "benchmark/original.rb",
32
+ "examples/db/migration.rb",
33
+ "examples/missing_translation_logger.rb",
34
+ "fast_gettext.gemspec",
35
+ "lib/fast_gettext.rb",
36
+ "lib/fast_gettext/VERSION",
37
+ "lib/fast_gettext/mo_file.rb",
38
+ "lib/fast_gettext/po_file.rb",
39
+ "lib/fast_gettext/storage.rb",
40
+ "lib/fast_gettext/translation.rb",
41
+ "lib/fast_gettext/translation_repository.rb",
42
+ "lib/fast_gettext/translation_repository/base.rb",
43
+ "lib/fast_gettext/translation_repository/chain.rb",
44
+ "lib/fast_gettext/translation_repository/db.rb",
45
+ "lib/fast_gettext/translation_repository/db_models/translation_key.rb",
46
+ "lib/fast_gettext/translation_repository/db_models/translation_text.rb",
47
+ "lib/fast_gettext/translation_repository/logger.rb",
48
+ "lib/fast_gettext/translation_repository/mo.rb",
49
+ "lib/fast_gettext/translation_repository/po.rb",
50
+ "lib/fast_gettext/translation_repository/yaml.rb",
51
+ "lib/fast_gettext/vendor/README.rdoc",
52
+ "lib/fast_gettext/vendor/empty.mo",
53
+ "lib/fast_gettext/vendor/iconv.rb",
54
+ "lib/fast_gettext/vendor/mofile.rb",
55
+ "lib/fast_gettext/vendor/poparser.rb",
56
+ "lib/fast_gettext/vendor/string.rb",
57
+ "spec/aa_unconfigued_spec.rb",
58
+ "spec/fast_gettext/mo_file_spec.rb",
59
+ "spec/fast_gettext/storage_spec.rb",
60
+ "spec/fast_gettext/translation_repository/base_spec.rb",
61
+ "spec/fast_gettext/translation_repository/chain_spec.rb",
62
+ "spec/fast_gettext/translation_repository/db_spec.rb",
63
+ "spec/fast_gettext/translation_repository/logger_spec.rb",
64
+ "spec/fast_gettext/translation_repository/mo_spec.rb",
65
+ "spec/fast_gettext/translation_repository/po_spec.rb",
66
+ "spec/fast_gettext/translation_repository/yaml_spec.rb",
67
+ "spec/fast_gettext/translation_repository_spec.rb",
68
+ "spec/fast_gettext/translation_spec.rb",
69
+ "spec/fast_gettext/vendor/fake_load_path/iconv.rb",
70
+ "spec/fast_gettext/vendor/iconv_spec.rb",
71
+ "spec/fast_gettext/vendor/string_spec.rb",
72
+ "spec/fast_gettext_spec.rb",
73
+ "spec/fuzzy_locale/de/test.po",
74
+ "spec/locale/de/LC_MESSAGES/test.mo",
75
+ "spec/locale/de/test.po",
76
+ "spec/locale/en/LC_MESSAGES/plural_test.mo",
77
+ "spec/locale/en/LC_MESSAGES/test.mo",
78
+ "spec/locale/en/plural_test.po",
79
+ "spec/locale/en/test.po",
80
+ "spec/locale/yaml/de.yml",
81
+ "spec/locale/yaml/en.yml",
82
+ "spec/locale/yaml/notfound.yml",
83
+ "spec/obsolete_locale/de/test.po",
84
+ "spec/spec_helper.rb"
87
85
  ]
88
86
  s.homepage = %q{http://github.com/grosser/fast_gettext}
89
- s.rdoc_options = ["--charset=UTF-8"]
90
87
  s.require_paths = ["lib"]
91
- s.rubygems_version = %q{1.3.6}
92
- s.summary = %q{A simple, fast and threadsafe implementation of GetText}
88
+ s.rubygems_version = %q{1.4.2}
89
+ s.summary = %q{A simple, fast, memory-efficient and threadsafe implementation of GetText}
93
90
  s.test_files = [
91
+ "examples/db/migration.rb",
92
+ "examples/missing_translation_logger.rb",
94
93
  "spec/aa_unconfigued_spec.rb",
95
- "spec/fast_gettext/mo_file_spec.rb",
96
- "spec/fast_gettext/storage_spec.rb",
97
- "spec/fast_gettext/translation_spec.rb",
98
- "spec/fast_gettext/translation_repository_spec.rb",
99
- "spec/fast_gettext/translation_repository/base_spec.rb",
100
- "spec/fast_gettext/translation_repository/chain_spec.rb",
101
- "spec/fast_gettext/translation_repository/db_spec.rb",
102
- "spec/fast_gettext/translation_repository/po_spec.rb",
103
- "spec/fast_gettext/translation_repository/mo_spec.rb",
104
- "spec/fast_gettext/translation_repository/logger_spec.rb",
105
- "spec/fast_gettext/translation_repository/yaml_spec.rb",
106
- "spec/fast_gettext/vendor/string_spec.rb",
107
- "spec/fast_gettext/vendor/iconv_spec.rb",
108
- "spec/fast_gettext/vendor/fake_load_path/iconv.rb",
109
- "spec/spec_helper.rb",
110
- "spec/fast_gettext_spec.rb",
111
- "examples/db/migration.rb",
112
- "examples/missing_translation_logger.rb"
94
+ "spec/fast_gettext/mo_file_spec.rb",
95
+ "spec/fast_gettext/storage_spec.rb",
96
+ "spec/fast_gettext/translation_repository/base_spec.rb",
97
+ "spec/fast_gettext/translation_repository/chain_spec.rb",
98
+ "spec/fast_gettext/translation_repository/db_spec.rb",
99
+ "spec/fast_gettext/translation_repository/logger_spec.rb",
100
+ "spec/fast_gettext/translation_repository/mo_spec.rb",
101
+ "spec/fast_gettext/translation_repository/po_spec.rb",
102
+ "spec/fast_gettext/translation_repository/yaml_spec.rb",
103
+ "spec/fast_gettext/translation_repository_spec.rb",
104
+ "spec/fast_gettext/translation_spec.rb",
105
+ "spec/fast_gettext/vendor/fake_load_path/iconv.rb",
106
+ "spec/fast_gettext/vendor/iconv_spec.rb",
107
+ "spec/fast_gettext/vendor/string_spec.rb",
108
+ "spec/fast_gettext_spec.rb",
109
+ "spec/spec_helper.rb"
113
110
  ]
114
111
 
115
112
  if s.respond_to? :specification_version then
116
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
117
113
  s.specification_version = 3
118
114
 
119
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
115
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
120
116
  else
121
117
  end
122
118
  else
data/lib/fast_gettext.rb CHANGED
@@ -10,9 +10,9 @@ module FastGettext
10
10
 
11
11
  VERSION = File.read( File.join(File.dirname(__FILE__), 'fast_gettext', 'VERSION') ).strip
12
12
  LOCALE_REX = /^[a-z]{2}$|^[a-z]{2}_[A-Z]{2}$/
13
- NAMESPACE_SEPERATOR = '|'
13
+ NAMESPACE_SEPARATOR = '|'
14
14
 
15
- # users should not include FastGettext, since this would conterminate their namespace
15
+ # users should not include FastGettext, since this would contaminate their namespace
16
16
  # rather use
17
17
  # FastGettext.locale = ..
18
18
  # FastGettext.text_domain = ..
@@ -27,4 +27,9 @@ module FastGettext
27
27
  def add_text_domain(name,options)
28
28
  translation_repositories[name] = TranslationRepository.build(name,options)
29
29
  end
30
+
31
+ # some repositories know where to store their locales
32
+ def locale_path
33
+ translation_repositories[text_domain].instance_variable_get(:@options)[:path]
34
+ end
30
35
  end
@@ -59,7 +59,7 @@ module FastGettext
59
59
 
60
60
 
61
61
  # if overwritten by user( FastGettext.pluralisation_rule = xxx) use it,
62
- # otherwise fall back to repo or to default lambda
62
+ # otherwise fall back to repo or to default lambda
63
63
  def pluralisation_rule
64
64
  Thread.current[:fast_gettext_pluralisation_rule] || current_repository.pluralisation_rule || lambda{|i| i!=1}
65
65
  end
@@ -122,7 +122,7 @@ module FastGettext
122
122
  self.locale = new_locale
123
123
  locale
124
124
  end
125
-
125
+
126
126
  @@default_locale = nil
127
127
  def default_locale=(new_locale)
128
128
  @@default_locale = best_locale_in(new_locale)
@@ -149,7 +149,7 @@ module FastGettext
149
149
  #turn off translation if none was defined to disable all resulting errors
150
150
  def silence_errors
151
151
  require 'fast_gettext/translation_repository/base'
152
- translation_repositories[text_domain] = TranslationRepository::Base.new('x')
152
+ translation_repositories[text_domain] ||= TranslationRepository::Base.new('x', :path => 'locale')
153
153
  end
154
154
 
155
155
  private
@@ -189,4 +189,4 @@ module FastGettext
189
189
  self.current_cache = caches[text_domain][locale]
190
190
  end
191
191
  end
192
- end
192
+ end
@@ -35,9 +35,9 @@ module FastGettext
35
35
 
36
36
  #translate, but discard namespace if nothing was found
37
37
  # Car|Tire -> Tire if no translation could be found
38
- def s_(key,seperator=nil)
38
+ def s_(key,separator=nil)
39
39
  translation = FastGettext.cached_find(key) and return translation
40
- key.split(seperator||NAMESPACE_SEPERATOR).last
40
+ key.split(separator||NAMESPACE_SEPARATOR).last
41
41
  end
42
42
 
43
43
  #tell gettext: this string need translation (will be found during parsing)
@@ -51,7 +51,7 @@ module FastGettext
51
51
  end
52
52
 
53
53
  def ns_(*args)
54
- n_(*args).split(NAMESPACE_SEPERATOR).last
54
+ n_(*args).split(NAMESPACE_SEPARATOR).last
55
55
  end
56
56
  end
57
- end
57
+ end
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require File.expand_path('spec/spec_helper')
2
2
 
3
3
  describe 'unconfigured' do
4
4
  it "gives a useful error message when trying to just translate" do
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require File.expand_path('spec/spec_helper')
2
2
 
3
3
  de_file = File.join('spec','locale','de','LC_MESSAGES','test.mo')
4
4
  de = FastGettext::MoFile.new(de_file)
@@ -1,33 +1,47 @@
1
- require 'spec/spec_helper'
1
+ require File.expand_path('spec/spec_helper')
2
2
 
3
3
  describe 'Storage' do
4
4
  include FastGettext::Storage
5
5
 
6
6
  before do
7
7
  #reset everything to nil
8
- self.available_locales = nil
8
+ self.default_available_locales = nil
9
9
  self.default_text_domain = nil
10
10
  self.default_locale = nil
11
- send(:_locale=,nil)#nil is not allowed to be set...
12
- default_locale.should be_nil
13
- available_locales.should be_nil
11
+ self.available_locales = nil
12
+ self.text_domain = 'xxx'
13
+ send(:_locale=, nil)#nil is not allowed to be set...
14
+
15
+ # fake a simple text-domain
16
+ translation_repositories[text_domain] = FastGettext::TranslationRepository::Base.new('x')
17
+
18
+ default_locale.should == nil
19
+ default_available_locales.should == nil
20
+ available_locales.should == nil
14
21
  locale.should == 'en'
22
+ text_domain.should == 'xxx'
15
23
  end
16
24
 
17
- def thread_save(method, value)
18
- send("#{method}=",value)
25
+ def thread_save(method, value_a, value_b)
26
+ send("#{method}=",value_a)
19
27
 
20
28
  # mess around with other threads
21
29
  100.times do
22
- Thread.new {FastGettext.send("#{method}=",'en')}
30
+ Thread.new {FastGettext.send("#{method}=",value_b)}
23
31
  end
24
-
25
- send(method) == value
32
+ sleep 0.1 # Ruby 1.9 cannot switch threads fat enough <-> spec fails without this WTF!
33
+
34
+ !!(send(method) == value_a)
26
35
  end
27
36
 
28
- {:locale=>'de', :available_locales=>['de'], :text_domain=>'xx', :pluralisation_rule=>lambda{|x|x==4}}.each do |method, value|
37
+ {
38
+ :locale=>['de','en'],
39
+ :available_locales=>[['de'],['en']],
40
+ :text_domain=>['xx','yy'],
41
+ :pluralisation_rule=>[lambda{|x|x==4},lambda{|x|x==1}]
42
+ }.each do |method, (value_a, value_b)|
29
43
  it "stores #{method} thread-save" do
30
- thread_save(method, value).should == true
44
+ thread_save(method, value_a, value_b).should == true
31
45
  end
32
46
  end
33
47
 
@@ -50,7 +64,7 @@ describe 'Storage' do
50
64
 
51
65
  describe :default_locale do
52
66
  it "stores default_locale non-thread-safe" do
53
- thread_save(:default_locale, 'de').should == false
67
+ thread_save(:default_locale, 'de', 'en').should == false
54
68
  end
55
69
 
56
70
  it "does not overwrite locale" do
@@ -79,7 +93,7 @@ describe 'Storage' do
79
93
 
80
94
  describe :default_text_domain do
81
95
  it "stores default_text_domain non-thread-safe" do
82
- thread_save(:default_text_domain, 'xx').should == false
96
+ thread_save(:default_text_domain, 'xx', 'en').should == false
83
97
  end
84
98
 
85
99
  it "uses default_text_domain when text_domain is not set" do
@@ -96,12 +110,8 @@ describe 'Storage' do
96
110
  end
97
111
 
98
112
  describe :default_available_locales do
99
- after do
100
- self.default_available_locales = nil
101
- end
102
-
103
113
  it "stores default_available_locales non-thread-safe" do
104
- thread_save(:default_available_locales, 'xx').should == false
114
+ thread_save(:default_available_locales, ['xx'], ['yy']).should == false
105
115
  end
106
116
 
107
117
  it "converts locales to s" do
@@ -196,21 +206,32 @@ describe 'Storage' do
196
206
 
197
207
  describe :silence_errors do
198
208
  before do
199
- FastGettext.text_domain = 'xxx'
209
+ self.text_domain = rand(99999).to_s
200
210
  end
201
211
 
202
212
  it "raises when a textdomain was empty" do
203
- begin
213
+ begin
204
214
  FastGettext._('x')
205
- "".should == "success!?"
215
+ raise 'NOPE!'
206
216
  rescue FastGettext::Storage::NoTextDomainConfigured
207
217
  end
208
218
  end
209
219
 
210
- it "can silence erros" do
220
+ it "can silence errors" do
211
221
  FastGettext.silence_errors
212
222
  FastGettext._('x').should == 'x'
213
223
  end
224
+
225
+ it "does not overwrite existing textdomain" do
226
+ self.translation_repositories[FastGettext.text_domain] = 1
227
+ FastGettext.silence_errors
228
+ self.translation_repositories[FastGettext.text_domain].should == 1
229
+ end
230
+
231
+ it "has ./locale as locale path when silenced" do
232
+ FastGettext.silence_errors
233
+ FastGettext.locale_path.should == 'locale'
234
+ end
214
235
  end
215
236
 
216
237
  describe :current_cache do
@@ -310,4 +331,4 @@ describe 'Storage' do
310
331
  FastGettext::Storage::NoTextDomainConfigured.new('xxx').to_s.should =~ /xxx/
311
332
  end
312
333
  end
313
- end
334
+ end
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require File.expand_path('spec/spec_helper')
2
2
  require 'fast_gettext/translation_repository/base'
3
3
 
4
4
  describe 'FastGettext::TranslationRepository::Base' do
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require File.expand_path('spec/spec_helper')
2
2
 
3
3
  class MockRepo
4
4
  def [](key)#should_receive :[] does not work so well...
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require File.expand_path('spec/spec_helper')
2
2
 
3
3
  require 'active_record'
4
4
  require 'fast_gettext/translation_repository/db'
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require File.expand_path('spec/spec_helper')
2
2
 
3
3
  describe 'FastGettext::TranslationRepository::Logger' do
4
4
  before do
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require File.expand_path('spec/spec_helper')
2
2
 
3
3
  describe 'FastGettext::TranslationRepository::Mo' do
4
4
  before do
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require File.expand_path('spec/spec_helper')
2
2
 
3
3
  describe 'FastGettext::TranslationRepository::Po' do
4
4
  before do
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require File.expand_path('spec/spec_helper')
2
2
 
3
3
  describe 'FastGettext::TranslationRepository::Yaml' do
4
4
  before do
@@ -47,7 +47,7 @@ describe 'FastGettext::TranslationRepository::Yaml' do
47
47
  4.times do |i|
48
48
  it "can be used to do wanky pluralisation rules #{i}" do
49
49
  FastGettext.stub!(:current_repository).and_return @rep
50
- @rep.stub!(:pluralisation_rule).and_return lambda{i}
50
+ @rep.stub!(:pluralisation_rule).and_return lambda{|x| i}
51
51
  FastGettext.n_('cars.silly',1).should == i.to_s # cars.silly translations are 0,1,2,3
52
52
  end
53
53
  end
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require File.expand_path('spec/spec_helper')
2
2
 
3
3
  module FastGettext
4
4
  module TranslationRepository
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require File.expand_path('spec/spec_helper')
2
2
 
3
3
  describe FastGettext::Translation do
4
4
  include FastGettext::Translation
@@ -1,3 +1,4 @@
1
+ require File.expand_path('spec/spec_helper')
1
2
 
2
3
  describe 'Iconv' do
3
4
  before do
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require File.expand_path('spec/spec_helper')
2
2
 
3
3
  #just to make sure we did not mess up while copying...
4
4
  describe String do
@@ -1,4 +1,4 @@
1
- require 'spec/spec_helper'
1
+ require File.expand_path('spec/spec_helper')
2
2
 
3
3
  default_setup
4
4
  class IncludeTest
data/spec/spec_helper.rb CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift File.expand_path("../lib", File.dirname(__FILE__))
4
4
  require 'fast_gettext'
5
5
 
6
6
  # ---- revert to defaults
7
- Spec::Runner.configure do |config|
7
+ RSpec.configure do |config|
8
8
  config.before :all do
9
9
  FastGettext.locale = 'de'
10
10
  FastGettext.available_locales = nil
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fast_gettext
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ hash: 29
5
+ prerelease:
5
6
  segments:
6
7
  - 0
7
8
  - 5
8
- - 10
9
- version: 0.5.10
9
+ - 11
10
+ version: 0.5.11
10
11
  platform: ruby
11
12
  authors:
12
13
  - Michael Grosser
@@ -14,23 +15,24 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-09-17 00:00:00 +02:00
18
+ date: 2011-02-27 00:00:00 +01:00
18
19
  default_executable:
19
20
  dependencies: []
20
21
 
21
22
  description:
22
- email: grosser.michael@gmail.com
23
+ email: michael@grosser.it
23
24
  executables: []
24
25
 
25
26
  extensions: []
26
27
 
27
- extra_rdoc_files:
28
- - README.markdown
28
+ extra_rdoc_files: []
29
+
29
30
  files:
30
- - .gitignore
31
31
  - CHANGELOG
32
- - README.markdown
32
+ - Gemfile
33
+ - Gemfile.lock
33
34
  - Rakefile
35
+ - Readme.md
34
36
  - VERSION
35
37
  - benchmark/base.rb
36
38
  - benchmark/baseline.rb
@@ -101,48 +103,52 @@ homepage: http://github.com/grosser/fast_gettext
101
103
  licenses: []
102
104
 
103
105
  post_install_message:
104
- rdoc_options:
105
- - --charset=UTF-8
106
+ rdoc_options: []
107
+
106
108
  require_paths:
107
109
  - lib
108
110
  required_ruby_version: !ruby/object:Gem::Requirement
111
+ none: false
109
112
  requirements:
110
113
  - - ">="
111
114
  - !ruby/object:Gem::Version
115
+ hash: 3
112
116
  segments:
113
117
  - 0
114
118
  version: "0"
115
119
  required_rubygems_version: !ruby/object:Gem::Requirement
120
+ none: false
116
121
  requirements:
117
122
  - - ">="
118
123
  - !ruby/object:Gem::Version
124
+ hash: 3
119
125
  segments:
120
126
  - 0
121
127
  version: "0"
122
128
  requirements: []
123
129
 
124
130
  rubyforge_project:
125
- rubygems_version: 1.3.6
131
+ rubygems_version: 1.4.2
126
132
  signing_key:
127
133
  specification_version: 3
128
- summary: A simple, fast and threadsafe implementation of GetText
134
+ summary: A simple, fast, memory-efficient and threadsafe implementation of GetText
129
135
  test_files:
136
+ - examples/db/migration.rb
137
+ - examples/missing_translation_logger.rb
130
138
  - spec/aa_unconfigued_spec.rb
131
139
  - spec/fast_gettext/mo_file_spec.rb
132
140
  - spec/fast_gettext/storage_spec.rb
133
- - spec/fast_gettext/translation_spec.rb
134
- - spec/fast_gettext/translation_repository_spec.rb
135
141
  - spec/fast_gettext/translation_repository/base_spec.rb
136
142
  - spec/fast_gettext/translation_repository/chain_spec.rb
137
143
  - spec/fast_gettext/translation_repository/db_spec.rb
138
- - spec/fast_gettext/translation_repository/po_spec.rb
139
- - spec/fast_gettext/translation_repository/mo_spec.rb
140
144
  - spec/fast_gettext/translation_repository/logger_spec.rb
145
+ - spec/fast_gettext/translation_repository/mo_spec.rb
146
+ - spec/fast_gettext/translation_repository/po_spec.rb
141
147
  - spec/fast_gettext/translation_repository/yaml_spec.rb
142
- - spec/fast_gettext/vendor/string_spec.rb
143
- - spec/fast_gettext/vendor/iconv_spec.rb
148
+ - spec/fast_gettext/translation_repository_spec.rb
149
+ - spec/fast_gettext/translation_spec.rb
144
150
  - spec/fast_gettext/vendor/fake_load_path/iconv.rb
145
- - spec/spec_helper.rb
151
+ - spec/fast_gettext/vendor/iconv_spec.rb
152
+ - spec/fast_gettext/vendor/string_spec.rb
146
153
  - spec/fast_gettext_spec.rb
147
- - examples/db/migration.rb
148
- - examples/missing_translation_logger.rb
154
+ - spec/spec_helper.rb
data/.gitignore DELETED
@@ -1,2 +0,0 @@
1
- pkg
2
- benchmark/locle