rpv_i18n 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/Rakefile +3 -0
- data/lib/rpv/i18n.rb +2 -0
- data/lib/rpv/wiring/i18n.rb +24 -0
- data/spec/i18n/de.yml +6 -0
- data/spec/i18n_wiring_spec.rb +34 -0
- data/tasks/rdoc.rake +10 -0
- data/tasks/rspec.rake +10 -0
- metadata +101 -0
data/Rakefile
ADDED
data/lib/rpv/i18n.rb
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
require "rpv/wiring/base"
|
|
2
|
+
|
|
3
|
+
X18n = I18n
|
|
4
|
+
|
|
5
|
+
module RPV
|
|
6
|
+
module Wiring
|
|
7
|
+
class I18n < Base
|
|
8
|
+
def initialize(args = {}, &block)
|
|
9
|
+
@view, @key = args[:view], args[:key]
|
|
10
|
+
@block = block
|
|
11
|
+
raise ArgumentError, "View field must be given" if @view.nil?
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def update_view(model, view, presenter)
|
|
15
|
+
args = @block.call unless @block.nil?
|
|
16
|
+
if args.nil?
|
|
17
|
+
send_nested(view, "#{@view}=", X18n.t(@key).to_s)
|
|
18
|
+
else
|
|
19
|
+
send_nested(view, "#{@view}=", X18n.t(@key, args).to_s)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
data/spec/i18n/de.yml
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require "rubygems"
|
|
2
|
+
require "rpv/i18n"
|
|
3
|
+
|
|
4
|
+
describe "I18n Wiring" do
|
|
5
|
+
before(:all) do
|
|
6
|
+
I18n.backend.load_translations File.dirname(__FILE__) + "/i18n/de.yml"
|
|
7
|
+
I18n.locale = :de
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
it "should set a plain string" do
|
|
11
|
+
view = mock("view")
|
|
12
|
+
view.should_receive("drinking_place=").with("Trinkhalle")
|
|
13
|
+
w = RPV::Wiring::I18n.new(:view => "drinking_place", :key => "foo.bar")
|
|
14
|
+
w.update_view(nil, view, nil)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it "should execute the argument block" do
|
|
18
|
+
view = mock("view")
|
|
19
|
+
view.should_receive("dogs=").with("0 Hunde")
|
|
20
|
+
w = RPV::Wiring::I18n.new(:view => "dogs", :key => "dogs") { {:count => 0} }
|
|
21
|
+
w.update_view(nil, view, nil)
|
|
22
|
+
|
|
23
|
+
view.should_receive("dogs=").with("Ein Hund")
|
|
24
|
+
w = RPV::Wiring::I18n.new(:view => "dogs", :key => "dogs") { {:count => 1} }
|
|
25
|
+
w.update_view(nil, view, nil)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "should return a string if the key is missing" do
|
|
29
|
+
view = mock("view")
|
|
30
|
+
view.should_receive("bar=").with("translation missing: de, not_there")
|
|
31
|
+
w = RPV::Wiring::I18n.new(:view => "bar", :key => "not_there")
|
|
32
|
+
w.update_view(nil, view, nil)
|
|
33
|
+
end
|
|
34
|
+
end
|
data/tasks/rdoc.rake
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
require 'rdoc/task'
|
|
2
|
+
|
|
3
|
+
RDoc::Task.new do |rdoc|
|
|
4
|
+
rdoc.main = "Readme.rdoc"
|
|
5
|
+
rdoc.rdoc_dir = "doc"
|
|
6
|
+
rdoc.title = "RPV: I18n"
|
|
7
|
+
rdoc.rdoc_files.include("Readme.rdoc")
|
|
8
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
9
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
|
10
|
+
end
|
data/tasks/rspec.rake
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
require 'rake'
|
|
2
|
+
require 'spec/rake/spectask'
|
|
3
|
+
|
|
4
|
+
desc "Run all specs"
|
|
5
|
+
Spec::Rake::SpecTask.new('spec') do |t|
|
|
6
|
+
t.spec_opts = ["--colour", "--format progress", "--loadby mtime"]
|
|
7
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
|
8
|
+
t.libs = [File.dirname(__FILE__) + '/../lib']
|
|
9
|
+
end
|
|
10
|
+
|
metadata
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: rpv_i18n
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
hash: 15
|
|
5
|
+
prerelease: false
|
|
6
|
+
segments:
|
|
7
|
+
- 0
|
|
8
|
+
- 2
|
|
9
|
+
version: "0.2"
|
|
10
|
+
platform: ruby
|
|
11
|
+
authors:
|
|
12
|
+
- Martin Vielsmaier
|
|
13
|
+
autorequire:
|
|
14
|
+
bindir: bin
|
|
15
|
+
cert_chain: []
|
|
16
|
+
|
|
17
|
+
date: 2010-07-07 00:00:00 +02:00
|
|
18
|
+
default_executable:
|
|
19
|
+
dependencies:
|
|
20
|
+
- !ruby/object:Gem::Dependency
|
|
21
|
+
name: i18n
|
|
22
|
+
prerelease: false
|
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
24
|
+
none: false
|
|
25
|
+
requirements:
|
|
26
|
+
- - ">="
|
|
27
|
+
- !ruby/object:Gem::Version
|
|
28
|
+
hash: 3
|
|
29
|
+
segments:
|
|
30
|
+
- 0
|
|
31
|
+
- 4
|
|
32
|
+
version: "0.4"
|
|
33
|
+
type: :runtime
|
|
34
|
+
version_requirements: *id001
|
|
35
|
+
- !ruby/object:Gem::Dependency
|
|
36
|
+
name: rpv_core
|
|
37
|
+
prerelease: false
|
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
|
39
|
+
none: false
|
|
40
|
+
requirements:
|
|
41
|
+
- - ">="
|
|
42
|
+
- !ruby/object:Gem::Version
|
|
43
|
+
hash: 15
|
|
44
|
+
segments:
|
|
45
|
+
- 0
|
|
46
|
+
- 2
|
|
47
|
+
version: "0.2"
|
|
48
|
+
type: :runtime
|
|
49
|
+
version_requirements: *id002
|
|
50
|
+
description: ""
|
|
51
|
+
email: martin.vielsmaier@gmail.com
|
|
52
|
+
executables: []
|
|
53
|
+
|
|
54
|
+
extensions: []
|
|
55
|
+
|
|
56
|
+
extra_rdoc_files: []
|
|
57
|
+
|
|
58
|
+
files:
|
|
59
|
+
- Rakefile
|
|
60
|
+
- spec/i18n/de.yml
|
|
61
|
+
- spec/i18n_wiring_spec.rb
|
|
62
|
+
- tasks/rspec.rake
|
|
63
|
+
- tasks/rdoc.rake
|
|
64
|
+
- lib/rpv/wiring/i18n.rb
|
|
65
|
+
- lib/rpv/i18n.rb
|
|
66
|
+
has_rdoc: true
|
|
67
|
+
homepage: http://moserei.de
|
|
68
|
+
licenses: []
|
|
69
|
+
|
|
70
|
+
post_install_message:
|
|
71
|
+
rdoc_options: []
|
|
72
|
+
|
|
73
|
+
require_paths:
|
|
74
|
+
- lib
|
|
75
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
76
|
+
none: false
|
|
77
|
+
requirements:
|
|
78
|
+
- - ">="
|
|
79
|
+
- !ruby/object:Gem::Version
|
|
80
|
+
hash: 3
|
|
81
|
+
segments:
|
|
82
|
+
- 0
|
|
83
|
+
version: "0"
|
|
84
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
85
|
+
none: false
|
|
86
|
+
requirements:
|
|
87
|
+
- - ">="
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
hash: 3
|
|
90
|
+
segments:
|
|
91
|
+
- 0
|
|
92
|
+
version: "0"
|
|
93
|
+
requirements: []
|
|
94
|
+
|
|
95
|
+
rubyforge_project:
|
|
96
|
+
rubygems_version: 1.3.7
|
|
97
|
+
signing_key:
|
|
98
|
+
specification_version: 3
|
|
99
|
+
summary: ""
|
|
100
|
+
test_files: []
|
|
101
|
+
|