i18n-message 0.0.1 → 0.0.2
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 +2 -0
- data/Gemfile.lock +22 -0
- data/Rakefile +11 -0
- data/lib/i18n/message/cascade.rb +2 -3
- data/lib/i18n/message/version.rb +5 -3
- metadata +77 -59
- data/RakeFile +0 -28
- data/test/all.rb +0 -8
- data/test/api.rb +0 -7
- data/test/api/base.rb +0 -51
- data/test/api/cascade.rb +0 -18
- data/test/api/formatted.rb +0 -21
- data/test/api/gettext.rb +0 -8
- data/test/api/other.rb +0 -51
- data/test/api/variants.rb +0 -21
- data/test/message/all.rb +0 -8
- data/test/message/all_features_test.rb +0 -26
- data/test/message/base_test.rb +0 -15
- data/test/message/cascade_test.rb +0 -25
- data/test/message/formatted_test.rb +0 -16
- data/test/message/gettext_test.rb +0 -19
- data/test/message/variants_test.rb +0 -11
- data/test/test_case_declarative.rb +0 -23
- data/test/test_helper.rb +0 -27
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
i18n-message (0.0.1)
|
5
|
+
activesupport
|
6
|
+
i18n
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: http://rubygems.org/
|
10
|
+
specs:
|
11
|
+
activesupport (3.0.1)
|
12
|
+
i18n (0.4.2)
|
13
|
+
test_declarative (0.0.4)
|
14
|
+
|
15
|
+
PLATFORMS
|
16
|
+
ruby
|
17
|
+
|
18
|
+
DEPENDENCIES
|
19
|
+
activesupport
|
20
|
+
i18n
|
21
|
+
i18n-message!
|
22
|
+
test_declarative
|
data/Rakefile
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
$: << File.expand_path('../lib', __FILE__)
|
2
|
+
require 'rake/testtask'
|
3
|
+
require 'i18n/message'
|
4
|
+
|
5
|
+
task :default => [:test]
|
6
|
+
|
7
|
+
Rake::TestTask.new(:test) do |t|
|
8
|
+
t.pattern = "#{File.dirname(__FILE__)}/test/all.rb"
|
9
|
+
t.verbose = true
|
10
|
+
end
|
11
|
+
Rake::Task['test'].comment = "Run all tests"
|
data/lib/i18n/message/cascade.rb
CHANGED
@@ -19,8 +19,7 @@ class I18n::Message
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def scope
|
22
|
-
scopes = self.class.cascade_options[:scopes]
|
23
|
-
scopes = [super] + scopes.map do |scope|
|
22
|
+
scopes = [super] + Array(self.class.cascade_options[:scopes]).map do |scope|
|
24
23
|
if options[scope]
|
25
24
|
value = options[scope]
|
26
25
|
value = value.class.name unless value.is_a?(String) || value.is_a?(Symbol)
|
@@ -30,4 +29,4 @@ class I18n::Message
|
|
30
29
|
scopes.compact.join('.')
|
31
30
|
end
|
32
31
|
end
|
33
|
-
end
|
32
|
+
end
|
data/lib/i18n/message/version.rb
CHANGED
metadata
CHANGED
@@ -1,35 +1,74 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: i18n-message
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 27
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- Sven Fuchs
|
8
|
-
- Mateo Murphy
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
17
|
|
13
|
-
date: 2010-
|
18
|
+
date: 2010-10-31 01:00:00 +02:00
|
14
19
|
default_executable:
|
15
|
-
dependencies:
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: i18n
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: activesupport
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
46
|
+
version: "0"
|
47
|
+
type: :runtime
|
48
|
+
version_requirements: *id002
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: test_declarative
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
hash: 3
|
58
|
+
segments:
|
59
|
+
- 0
|
60
|
+
version: "0"
|
61
|
+
type: :development
|
62
|
+
version_requirements: *id003
|
63
|
+
description: I18n::Message is an object-oriented abstraction for looking up translations from I18n.translate. This is useful for storing lookup information in contexts such as ActiveModel validation error I18n.
|
64
|
+
email: svenfuchs@artweb-design.de
|
22
65
|
executables: []
|
23
66
|
|
24
67
|
extensions: []
|
25
68
|
|
26
|
-
extra_rdoc_files:
|
27
|
-
|
69
|
+
extra_rdoc_files: []
|
70
|
+
|
28
71
|
files:
|
29
|
-
- MIT-LICENSE
|
30
|
-
- README.textile
|
31
|
-
- RakeFile
|
32
|
-
- lib/i18n/message.rb
|
33
72
|
- lib/i18n/message/base.rb
|
34
73
|
- lib/i18n/message/cascade.rb
|
35
74
|
- lib/i18n/message/format.rb
|
@@ -37,66 +76,45 @@ files:
|
|
37
76
|
- lib/i18n/message/gettext.rb
|
38
77
|
- lib/i18n/message/variants.rb
|
39
78
|
- lib/i18n/message/version.rb
|
40
|
-
-
|
41
|
-
-
|
42
|
-
-
|
43
|
-
-
|
44
|
-
-
|
45
|
-
-
|
46
|
-
- test/api/other.rb
|
47
|
-
- test/api/variants.rb
|
48
|
-
- test/message/all.rb
|
49
|
-
- test/message/all_features_test.rb
|
50
|
-
- test/message/base_test.rb
|
51
|
-
- test/message/cascade_test.rb
|
52
|
-
- test/message/formatted_test.rb
|
53
|
-
- test/message/gettext_test.rb
|
54
|
-
- test/message/variants_test.rb
|
55
|
-
- test/test_case_declarative.rb
|
56
|
-
- test/test_helper.rb
|
79
|
+
- lib/i18n/message.rb
|
80
|
+
- Gemfile
|
81
|
+
- Gemfile.lock
|
82
|
+
- MIT-LICENSE
|
83
|
+
- Rakefile
|
84
|
+
- README.textile
|
57
85
|
has_rdoc: true
|
58
|
-
homepage: http://github.com/svenfuchs/
|
86
|
+
homepage: http://github.com/svenfuchs/i18n-message
|
59
87
|
licenses: []
|
60
88
|
|
61
89
|
post_install_message:
|
62
|
-
rdoc_options:
|
63
|
-
|
90
|
+
rdoc_options: []
|
91
|
+
|
64
92
|
require_paths:
|
65
93
|
- lib
|
66
94
|
required_ruby_version: !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
67
96
|
requirements:
|
68
97
|
- - ">="
|
69
98
|
- !ruby/object:Gem::Version
|
99
|
+
hash: 3
|
100
|
+
segments:
|
101
|
+
- 0
|
70
102
|
version: "0"
|
71
|
-
version:
|
72
103
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
|
+
none: false
|
73
105
|
requirements:
|
74
106
|
- - ">="
|
75
107
|
- !ruby/object:Gem::Version
|
108
|
+
hash: 3
|
109
|
+
segments:
|
110
|
+
- 0
|
76
111
|
version: "0"
|
77
|
-
version:
|
78
112
|
requirements: []
|
79
113
|
|
80
|
-
rubyforge_project:
|
81
|
-
rubygems_version: 1.3.
|
114
|
+
rubyforge_project: "[none]"
|
115
|
+
rubygems_version: 1.3.7
|
82
116
|
signing_key:
|
83
117
|
specification_version: 3
|
84
|
-
summary:
|
85
|
-
test_files:
|
86
|
-
|
87
|
-
- test/api/base.rb
|
88
|
-
- test/api/cascade.rb
|
89
|
-
- test/api/formatted.rb
|
90
|
-
- test/api/gettext.rb
|
91
|
-
- test/api/other.rb
|
92
|
-
- test/api/variants.rb
|
93
|
-
- test/api.rb
|
94
|
-
- test/message/all.rb
|
95
|
-
- test/message/all_features_test.rb
|
96
|
-
- test/message/base_test.rb
|
97
|
-
- test/message/cascade_test.rb
|
98
|
-
- test/message/formatted_test.rb
|
99
|
-
- test/message/gettext_test.rb
|
100
|
-
- test/message/variants_test.rb
|
101
|
-
- test/test_case_declarative.rb
|
102
|
-
- test/test_helper.rb
|
118
|
+
summary: I18n::Message is an object-oriented abstraction for looking up translations from I18n.translate
|
119
|
+
test_files: []
|
120
|
+
|
data/RakeFile
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
$: << File.expand_path('../lib', __FILE__)
|
2
|
-
require 'rake/testtask'
|
3
|
-
require 'i18n/message'
|
4
|
-
|
5
|
-
task :default => [:test]
|
6
|
-
|
7
|
-
Rake::TestTask.new(:test) do |t|
|
8
|
-
t.pattern = "#{File.dirname(__FILE__)}/test/all.rb"
|
9
|
-
t.verbose = true
|
10
|
-
end
|
11
|
-
Rake::Task['test'].comment = "Run all tests"
|
12
|
-
|
13
|
-
begin
|
14
|
-
require 'jeweler'
|
15
|
-
Jeweler::Tasks.new do |s|
|
16
|
-
s.name = "i18n-message"
|
17
|
-
s.version = I18n::Message::VERSION
|
18
|
-
s.summary = "Object-oriented abstraction for looking up translations from I18n.translate"
|
19
|
-
s.description = %(I18n::Message is an object-oriented abstraction for looking up translations
|
20
|
-
from I18n.translate. This is useful for storing lookup information in contexts
|
21
|
-
such as ActiveModel validation error I18n.)
|
22
|
-
s.homepage = "http://github.com/svenfuchs/i18n_message"
|
23
|
-
s.authors = ["Sven Fuchs", "Mateo Murphy"]
|
24
|
-
s.files = FileList["[A-Z]*", "{lib,test}/**/*"]
|
25
|
-
end
|
26
|
-
rescue LoadError
|
27
|
-
puts "Jeweler not available. Install it with: gem install jeweler"
|
28
|
-
end
|
data/test/all.rb
DELETED
data/test/api.rb
DELETED
data/test/api/base.rb
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
module Api
|
2
|
-
module Base
|
3
|
-
# NOT TRANSLATED
|
4
|
-
|
5
|
-
# e.g. validates_presence_of :email, :message => "message"
|
6
|
-
test "subject is a Message, no format key given" do
|
7
|
-
assert_equal 'message', message('message').to_s
|
8
|
-
end
|
9
|
-
|
10
|
-
test "subject evaluates to a Message, no format key given" do
|
11
|
-
assert_equal 'message', message(Proc.new {'message'}).to_s
|
12
|
-
end
|
13
|
-
|
14
|
-
# interpolation
|
15
|
-
test "subject is a Message, interpolates a variable" do
|
16
|
-
assert_equal 'FOO', message('%{foo}', :foo => 'FOO').to_s
|
17
|
-
end
|
18
|
-
|
19
|
-
test "subject evaluates to a Message, interpolates a variable" do
|
20
|
-
assert_equal 'FOO', message(Proc.new {'%{foo}'}, :foo => 'FOO').to_s
|
21
|
-
end
|
22
|
-
|
23
|
-
test "subject is a Message, bogus interpolation variable, does not raise" do
|
24
|
-
assert_nothing_raised { message('foo', :foo => 'FOO').to_s }
|
25
|
-
end
|
26
|
-
|
27
|
-
test "subject evaluates to a Message, bogus interpolation variable, does not raise" do
|
28
|
-
assert_nothing_raised { message(Proc.new {'foo'}, :foo => 'FOO').to_s }
|
29
|
-
end
|
30
|
-
|
31
|
-
# TRANSLATED
|
32
|
-
|
33
|
-
# e.g. validates_presence_of :email / translations :blank => 'No email?'
|
34
|
-
test "subject is a Symbol, no format key given, translation is a Message" do
|
35
|
-
store_translations(:blank => 'No email?')
|
36
|
-
assert_equal 'No email?', message(:blank).to_s
|
37
|
-
end
|
38
|
-
|
39
|
-
# INTERPOLATION
|
40
|
-
test "subject is a Symbol, translation is a Message, interpolates a variable" do
|
41
|
-
store_translations(:foo => '{{foo}}')
|
42
|
-
assert_equal 'FOO', message(:foo, :foo => 'FOO').to_s
|
43
|
-
end
|
44
|
-
|
45
|
-
test "subject evaluates to a Symbol, translation is a Message, interpolates a variable" do
|
46
|
-
store_translations(:foo => '{{foo}}')
|
47
|
-
assert_equal 'FOO', message(Proc.new { :foo }, :foo => 'FOO').to_s
|
48
|
-
end
|
49
|
-
|
50
|
-
end
|
51
|
-
end
|
data/test/api/cascade.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
module Api
|
2
|
-
module Cascade
|
3
|
-
test "returns translation from attribute scope" do
|
4
|
-
store_translations(:'models.model.attributes.attribute.message' => 'message')
|
5
|
-
assert_equal 'message', message(:message, :model => 'model', :attribute => 'attribute').to_s
|
6
|
-
end
|
7
|
-
|
8
|
-
test "returns translation from model scope" do
|
9
|
-
store_translations(:'models.model.message' => 'message')
|
10
|
-
assert_equal 'message', message(:message, :model => 'model', :attribute => 'attribute').to_s
|
11
|
-
end
|
12
|
-
|
13
|
-
test "returns translation from errors scope" do
|
14
|
-
store_translations(:message => 'message')
|
15
|
-
assert_equal 'message', message(:message, :model => 'model', :attribute => 'attribute').to_s
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
data/test/api/formatted.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
module Api
|
2
|
-
module Formatted
|
3
|
-
test "subject Message given, format Message given" do
|
4
|
-
assert_equal 'formatted message', message('message', :format => 'formatted %{message}').to_s
|
5
|
-
end
|
6
|
-
|
7
|
-
test "subject Message given, format Hash given" do
|
8
|
-
assert_equal 'formatted message', message('message', :format => { :full => 'formatted %{message}' }).to_s(:full)
|
9
|
-
end
|
10
|
-
|
11
|
-
test "uses a format to wrap a translated message" do
|
12
|
-
store_translations(:blank => 'blank')
|
13
|
-
assert_equal "formatted blank", message(:blank, :format => 'formatted %{message}').to_s
|
14
|
-
end
|
15
|
-
|
16
|
-
test "uses a translated format to wrap a message" do
|
17
|
-
store_translations(:blank => 'blank', :'formats.full' => 'full %{message}')
|
18
|
-
assert_equal "full blank", message(:blank).to_s(:full)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
data/test/api/gettext.rb
DELETED
data/test/api/other.rb
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
module Api
|
2
|
-
|
3
|
-
module TranslatedVariants
|
4
|
-
# # validates_presence_of :email / translations :blank => { :short => 'No email?' }
|
5
|
-
# test "subject is a Symbol, format key :short given, translation is a Hash w/ :short key" do
|
6
|
-
# store_translations(:blank => { :short => 'No email?' })
|
7
|
-
# assert_equal 'No email?', message(:blank).to_s(:short)
|
8
|
-
# end
|
9
|
-
#
|
10
|
-
# not implemented
|
11
|
-
# test "subject is a Symbol, format key :full given, translation is a Hash w/ :short key" do
|
12
|
-
# store_translations(:blank => { :short => 'No email?' })
|
13
|
-
# assert_equal 'No email?', message(:blank).to_s(:full)
|
14
|
-
# end
|
15
|
-
|
16
|
-
# # validates_presence_of :email / translations :blank => { :short => 'No email?', :full => "full" }
|
17
|
-
# test "subject is a Symbol, format key :short given, translation is a Hash w/ :short and :full keys" do
|
18
|
-
# store_translations(:blank => { :short => 'No email?', :full => "full" })
|
19
|
-
# assert_equal 'No email?', message(:blank).to_s(:short)
|
20
|
-
# end
|
21
|
-
#
|
22
|
-
# test "subject is a Symbol, format key :full given, translation is a Hash w/ :short and :full keys" do
|
23
|
-
# store_translations(:blank => { :short => 'No email?', :full => "full" })
|
24
|
-
# assert_equal "full", message(:blank).to_s(:full)
|
25
|
-
# end
|
26
|
-
#
|
27
|
-
# # e.g. validates_presence_of :email, :message => { :short => :foo } / translations :blank => { :short => 'No email?' }
|
28
|
-
# test "subject is a Hash, format key :short given, translation is a Hash w/ :short key" do
|
29
|
-
# store_translations(:foo => { :short => 'No email?' })
|
30
|
-
# assert_equal 'No email?', message(:blank, :short => :foo).to_s(:short)
|
31
|
-
# end
|
32
|
-
#
|
33
|
-
# # not implemented
|
34
|
-
# # test "subject is a Hash, format key :full given, translation is a Hash w/ :short key" do
|
35
|
-
# # store_translations(:foo => { :short => 'No email?' })
|
36
|
-
# # assert_equal 'No email?', message(:blank, :short => :foo).to_s(:full)
|
37
|
-
# # end
|
38
|
-
#
|
39
|
-
# # e.g. validates_presence_of :email, :message => { :short => :foo, :full => :foo } / translations :blank => { :short => 'No email?' }
|
40
|
-
# test "subject is a Hash, format key :short given, translation is a Hash w/ :short and :full key" do
|
41
|
-
# store_translations(:foo => { :short => 'No email?' })
|
42
|
-
# assert_equal 'No email?', message(:blank, :short => :foo, :full => :foo).to_s(:short)
|
43
|
-
# end
|
44
|
-
#
|
45
|
-
# # not implemented
|
46
|
-
# # test "subject is a Hash, format key :full given, translation is a Hash w/ :short and :full key" do
|
47
|
-
# # store_translations(:foo => { :short => 'No email?' })
|
48
|
-
# # assert_equal 'No email?', message(:blank, :short => :foo, :full => :foo).to_s(:full)
|
49
|
-
# # end
|
50
|
-
end
|
51
|
-
end
|
data/test/api/variants.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
module Api
|
2
|
-
module Variants
|
3
|
-
# e.g. validates_presence_of :email, :message => "message"
|
4
|
-
test "subject is a Message, variant :short" do
|
5
|
-
assert_equal 'message', message('message').to_s(:short)
|
6
|
-
end
|
7
|
-
|
8
|
-
test "subject is a Message, variant :full" do
|
9
|
-
assert_equal 'message', message('message').to_s(:full)
|
10
|
-
end
|
11
|
-
|
12
|
-
# e.g. validates_presence_of :email, :message => { :short => "short", :full => "full" } }
|
13
|
-
test "subject is a Hash w/ :short and :full messages, variant :short" do
|
14
|
-
assert_equal 'short', message(:short => 'short', :full => "full").to_s(:short)
|
15
|
-
end
|
16
|
-
|
17
|
-
test "subject is a Hash w/ :short and :full messages, variant :full" do
|
18
|
-
assert_equal "full", message(:short => 'short', :full => "full").to_s(:full)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
data/test/message/all.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
|
3
|
-
|
4
|
-
class I18nMessageAllFeaturesTest < Test::Unit::TestCase
|
5
|
-
class Format < I18n::Message::Format
|
6
|
-
include I18n::Message::Variants
|
7
|
-
end
|
8
|
-
|
9
|
-
class Message < I18n::Message
|
10
|
-
include Cascade
|
11
|
-
include Variants
|
12
|
-
include Formatted
|
13
|
-
|
14
|
-
self.format_class = Format
|
15
|
-
end
|
16
|
-
|
17
|
-
def setup
|
18
|
-
I18n.backend = CascadingBackend.new
|
19
|
-
Message.cascade_options = { :step => 2, :skip_root => false, :scopes => [:model, :attribute] }
|
20
|
-
end
|
21
|
-
|
22
|
-
include Api::Base
|
23
|
-
include Api::Cascade
|
24
|
-
include Api::Variants
|
25
|
-
include Api::Formatted
|
26
|
-
end
|
data/test/message/base_test.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require File.expand_path('../../test_helper', __FILE__)
|
3
|
-
|
4
|
-
class I18nMessageBaseTest < Test::Unit::TestCase
|
5
|
-
class Message < I18n::Message
|
6
|
-
end
|
7
|
-
|
8
|
-
def setup
|
9
|
-
I18n.backend = I18n::Backend::Simple.new
|
10
|
-
I18n.backend.send(:init_translations) # so our translations won't be overwritten by Rails
|
11
|
-
end
|
12
|
-
|
13
|
-
include Api::Base
|
14
|
-
# include Api::NonFormatted
|
15
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
|
3
|
-
|
4
|
-
class I18nMessageCascadeTest < Test::Unit::TestCase
|
5
|
-
class Message < I18n::Message
|
6
|
-
include Cascade
|
7
|
-
end
|
8
|
-
|
9
|
-
def setup
|
10
|
-
I18n.backend = CascadingBackend.new
|
11
|
-
Message.cascade_options = { :step => 2, :skip_root => false, :scopes => [:model, :attribute] }
|
12
|
-
end
|
13
|
-
|
14
|
-
include Api::Base
|
15
|
-
include Api::Cascade
|
16
|
-
end
|
17
|
-
|
18
|
-
class I18nMessageCascadeVariantsTest < I18nMessageCascadeTest
|
19
|
-
class Message < I18nMessageCascadeTest::Message
|
20
|
-
include Variants
|
21
|
-
end
|
22
|
-
|
23
|
-
include Api::Variants
|
24
|
-
end
|
25
|
-
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
|
3
|
-
|
4
|
-
class I18nMessageFormattedTest < Test::Unit::TestCase
|
5
|
-
class Format < I18n::Message::Format
|
6
|
-
include I18n::Message::Variants
|
7
|
-
end
|
8
|
-
|
9
|
-
class Message < I18n::Message
|
10
|
-
include Formatted
|
11
|
-
self.format_class = Format
|
12
|
-
end
|
13
|
-
|
14
|
-
include Api::Base
|
15
|
-
include Api::Formatted
|
16
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
|
3
|
-
|
4
|
-
class I18nMessageGettextTest < Test::Unit::TestCase
|
5
|
-
class Message < I18n::Message
|
6
|
-
include Gettext
|
7
|
-
end
|
8
|
-
|
9
|
-
def setup
|
10
|
-
store_translations(
|
11
|
-
:foo => 'foo',
|
12
|
-
:message => 'message',
|
13
|
-
:'%{foo}' => '%{foo}'
|
14
|
-
)
|
15
|
-
end
|
16
|
-
|
17
|
-
include Api::Base
|
18
|
-
include Api::Gettext
|
19
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
module Declarative
|
2
|
-
def self.included(base)
|
3
|
-
base.class_eval do
|
4
|
-
def test(name, &block)
|
5
|
-
name = "test_#{name.gsub(/\s+/,'_')}".to_sym
|
6
|
-
block ||= lambda { flunk "No implementation provided for #{name}" }
|
7
|
-
|
8
|
-
defined = instance_method(name) rescue false
|
9
|
-
raise("#{name} is already defined in #{self}") if defined
|
10
|
-
|
11
|
-
define_method(name, &block)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
class Test::Unit::TestCase
|
18
|
-
include Declarative
|
19
|
-
end
|
20
|
-
|
21
|
-
class Module
|
22
|
-
include Declarative
|
23
|
-
end
|
data/test/test_helper.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
$:.unshift File.expand_path("../lib", File.dirname(__FILE__))
|
2
|
-
$:.unshift(File.expand_path(File.dirname(__FILE__)))
|
3
|
-
|
4
|
-
require 'rubygems'
|
5
|
-
require 'test/unit'
|
6
|
-
require 'test_case_declarative'
|
7
|
-
require 'api'
|
8
|
-
|
9
|
-
require 'i18n/message'
|
10
|
-
|
11
|
-
class Test::Unit::TestCase
|
12
|
-
def teardown
|
13
|
-
I18n.backend = nil
|
14
|
-
end
|
15
|
-
|
16
|
-
def message(*args)
|
17
|
-
self.class.const_get(:Message).new(*args)
|
18
|
-
end
|
19
|
-
|
20
|
-
def store_translations(data)
|
21
|
-
I18n.backend.store_translations(:en, data)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
class CascadingBackend < I18n::Backend::Simple
|
26
|
-
include I18n::Backend::Cascade
|
27
|
-
end
|