it 0.2.4 → 0.2.5
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/README.textile +3 -3
- data/Rakefile +1 -1
- data/lib/it.rb +2 -2
- data/lib/it/helper.rb +4 -4
- data/spec/it/helper_spec.rb +41 -40
- data/spec/it/link_spec.rb +3 -3
- data/spec/it/parser_spec.rb +4 -4
- data/spec/it/tag_spec.rb +12 -12
- data/spec/it_spec.rb +14 -4
- metadata +37 -28
- checksums.yaml +0 -7
data/README.textile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
"!https://codeclimate.com/github/iGEL/it.png!":https://codeclimate.com/github/iGEL/it "!https://travis-ci.org/iGEL/it.png!":https://travis-ci.org/iGEL/it (
|
1
|
+
"!https://codeclimate.com/github/iGEL/it.png!":https://codeclimate.com/github/iGEL/it "!https://travis-ci.org/iGEL/it.png!":https://travis-ci.org/iGEL/it (Tests Ruby 1.9.2, 1.9.3, 2.0.0, Rubinius and Jruby)
|
2
2
|
|
3
3
|
h1. What is *it*?
|
4
4
|
|
@@ -38,7 +38,7 @@ As you see above, unless the interpolation name is @link@ or starts with @_link@
|
|
38
38
|
|
39
39
|
<pre><code><%=it "copy", guide: It.link("http://guides.rubyonrails.org/i18n.html", target: '_blank', class: "important") %></code></pre>
|
40
40
|
|
41
|
-
You may pass any kind of object accepted by @link_to@ as the link target, so your loved named routes like @article_path(:
|
41
|
+
You may pass any kind of object accepted by @link_to@ as the link target, so your loved named routes like @article_path(id: article.id)@ will all work fine.
|
42
42
|
|
43
43
|
Want to introduce some markup into your sentences? *it* will help you:
|
44
44
|
|
@@ -52,7 +52,7 @@ Even nested interpolations are possible:
|
|
52
52
|
<pre><code>en:
|
53
53
|
copy: "Want to contact %{user}%? %{link:send %{b:%{user} a message}}!"</code></pre>
|
54
54
|
|
55
|
-
<pre><code><%=it "copy", link: "mailto:igel@igels.net", user: 'iGEL', :
|
55
|
+
<pre><code><%=it "copy", link: "mailto:igel@igels.net", user: 'iGEL', b: It.tag(:b) %></code></pre>
|
56
56
|
|
57
57
|
If you would like to use the same translations in your html and plain text mails, you will like the @It.plain@ method:
|
58
58
|
<pre><code>en:
|
data/Rakefile
CHANGED
data/lib/it.rb
CHANGED
@@ -14,13 +14,13 @@ module It
|
|
14
14
|
# It outside of your views. See documentation at Helper#it
|
15
15
|
def self.it(identifier, options = {})
|
16
16
|
options.stringify_keys!
|
17
|
-
Parser.new(I18n.t(identifier, :
|
17
|
+
Parser.new(I18n.t(identifier, locale: (options["locale"] || I18n.locale), default: options['default']), options).process
|
18
18
|
end
|
19
19
|
|
20
20
|
# Creates a new link to be used in +it+.
|
21
21
|
#
|
22
22
|
# * +href+: The url for the link. You may specify it as a String or as a named route like +article_path+. It's not possible to specify
|
23
|
-
# a Hash like <code>{:
|
23
|
+
# a Hash like <code>{controller: "articles", action: "index"}</code> directly. Use the +url_for+ helper, if you would like to specify your
|
24
24
|
# links like that.
|
25
25
|
# * +options+: The options as an Hash. Use them like you would with +link_to+. <em>(optional)</em>
|
26
26
|
def self.link(href, options = {})
|
data/lib/it/helper.rb
CHANGED
@@ -13,21 +13,21 @@ module It
|
|
13
13
|
#
|
14
14
|
# # translation: "Already signed up? %{login_link:Sign in}!"
|
15
15
|
#
|
16
|
-
# <%=it("translation", :
|
16
|
+
# <%=it("translation", login_link: It.link(login_path))
|
17
17
|
#
|
18
18
|
# If your link doesn't require additional attributes and the name is +link+, starts with +link_+ or ends with +_link+,
|
19
19
|
# you may specify the argument as a String or your helper.
|
20
20
|
#
|
21
21
|
# # translation: "Already signed up? %{login_link:Sign in}!"
|
22
22
|
#
|
23
|
-
# <%=it("translation", :
|
23
|
+
# <%=it("translation", login_link: login_path)
|
24
24
|
#
|
25
25
|
# You may have as many tags inside of one translation as you like, and you even may nest them into each other. Also you
|
26
26
|
# may specify arguments to links and other tags.
|
27
27
|
#
|
28
28
|
# # translation: "The top contributor of %{wiki_link:our wiki} is currently %{user_link:%{b:%{name}}}. Thanks a lot, %{name}!"
|
29
29
|
#
|
30
|
-
# <%= it("translation", :
|
30
|
+
# <%= it("translation", wiki_link: wiki_path, name: user.name, b: It.tag(:b, class: "user"), user_link: It.link(user_path(user), target: "_blank"))
|
31
31
|
#
|
32
32
|
# I recommend to limit the use of +it+ as much as possible. You could use it for <code><div></code> or <code><br /></code>, but I think,
|
33
33
|
# things seperated over multiple lines should go into different translations. Use it for inline tags like links, <code><span></code>,
|
@@ -40,7 +40,7 @@ module It
|
|
40
40
|
#
|
41
41
|
def it(identifier, options = {})
|
42
42
|
options.stringify_keys!
|
43
|
-
It::Parser.new(t(identifier, :
|
43
|
+
It::Parser.new(t(identifier, locale: (options["locale"] || I18n.locale)), options).process
|
44
44
|
end
|
45
45
|
end
|
46
46
|
end
|
data/spec/it/helper_spec.rb
CHANGED
@@ -2,11 +2,12 @@
|
|
2
2
|
|
3
3
|
require 'spec_helper'
|
4
4
|
require 'it'
|
5
|
+
require 'active_support/core_ext/string'
|
5
6
|
|
6
7
|
describe It::Helper, "#it" do
|
7
8
|
before do
|
8
|
-
I18n.backend.store_translations(:en, :
|
9
|
-
I18n.backend.store_translations(:de, :
|
9
|
+
I18n.backend.store_translations(:en, test1: "I have a %{link:link to Rails} in the middle.")
|
10
|
+
I18n.backend.store_translations(:de, test1: "Ich habe einen %{link:Link zu Rails} in der Mitte.")
|
10
11
|
|
11
12
|
@view = ActionView::Base.new
|
12
13
|
@controller = ActionController::Base.new
|
@@ -18,120 +19,120 @@ describe It::Helper, "#it" do
|
|
18
19
|
end
|
19
20
|
|
20
21
|
it "should insert the link into the string" do
|
21
|
-
expect(@view.it("test1", :
|
22
|
+
expect(@view.it("test1", link: It.link("http://www.rubyonrails.org"))).to eq('I have a <a href="http://www.rubyonrails.org">link to Rails</a> in the middle.')
|
22
23
|
end
|
23
24
|
|
24
25
|
it "should insert the link into the German translation" do
|
25
26
|
I18n.locale = :de
|
26
|
-
expect(@view.it("test1", :
|
27
|
+
expect(@view.it("test1", link: It.link("http://www.rubyonrails.org"))).to eq('Ich habe einen <a href="http://www.rubyonrails.org">Link zu Rails</a> in der Mitte.')
|
27
28
|
end
|
28
29
|
|
29
30
|
it "should allow link options to be set" do
|
30
|
-
expect(@view.it("test1", :
|
31
|
+
expect(@view.it("test1", link: It.link("http://www.rubyonrails.org", target: "_blank"))).to eq('I have a <a href="http://www.rubyonrails.org" target="_blank">link to Rails</a> in the middle.')
|
31
32
|
end
|
32
33
|
|
33
34
|
it "should support the plain thing" do
|
34
|
-
expect(@view.it("test1", :
|
35
|
+
expect(@view.it("test1", link: It.plain("%s[http://www.rubyonrails.org]"))).to eq('I have a link to Rails[http://www.rubyonrails.org] in the middle.')
|
35
36
|
end
|
36
37
|
|
37
38
|
it "should parse other tags as well" do
|
38
|
-
expect(@view.it("test1", :
|
39
|
+
expect(@view.it("test1", link: It.tag(:b, class: "classy"))).to eq('I have a <b class="classy">link to Rails</b> in the middle.')
|
39
40
|
end
|
40
41
|
|
41
42
|
it "should mark the result as html safe" do
|
42
|
-
expect(@view.it("test1", :
|
43
|
+
expect(@view.it("test1", link: It.link("http://www.rubyonrails.org")).html_safe?).to be_true
|
43
44
|
end
|
44
45
|
|
45
46
|
it "should escape all html in the translation" do
|
46
|
-
I18n.backend.store_translations(:en, :
|
47
|
-
expect(@view.it("test2", :
|
47
|
+
I18n.backend.store_translations(:en, test2: "<a href=\"hax0r\"> & %{link:link -> Rails} in <b>the middle</b>.")
|
48
|
+
expect(@view.it("test2", link: It.link("http://www.rubyonrails.org"))).to eq('<a href="hax0r"> & <a href="http://www.rubyonrails.org">link -> Rails</a> in <b>the middle</b>.')
|
48
49
|
end
|
49
50
|
|
50
51
|
it "should also work with 2 links" do
|
51
|
-
I18n.backend.store_translations(:en, :
|
52
|
-
expect(@view.it("test3", :
|
52
|
+
I18n.backend.store_translations(:en, test3: "I like %{link1:rails} and %{link2:github}.")
|
53
|
+
expect(@view.it("test3", link1: It.link("http://www.rubyonrails.org"), link2: It.link("http://www.github.com"))).to eq('I like <a href="http://www.rubyonrails.org">rails</a> and <a href="http://www.github.com">github</a>.')
|
53
54
|
end
|
54
55
|
|
55
56
|
it "should allow normal I18n interpolations" do
|
56
|
-
I18n.backend.store_translations(:en, :
|
57
|
-
expect(@view.it("test4", :
|
57
|
+
I18n.backend.store_translations(:en, test4: "I have a %{link:link to Rails} in the %{position}.")
|
58
|
+
expect(@view.it("test4", link: It.link("http://www.rubyonrails.org"), position: "middle")).to eq('I have a <a href="http://www.rubyonrails.org">link to Rails</a> in the middle.')
|
58
59
|
end
|
59
60
|
|
60
61
|
it "should allow Integers as normal interpolation" do
|
61
|
-
I18n.backend.store_translations(:en, :
|
62
|
-
expect(@view.it("test5", :
|
62
|
+
I18n.backend.store_translations(:en, test5: "Hello %{name}.")
|
63
|
+
expect(@view.it("test5", name: 2)).to eq('Hello 2.')
|
63
64
|
end
|
64
65
|
|
65
66
|
it "should escape the HTML in normal interpolations" do
|
66
|
-
I18n.backend.store_translations(:en, :
|
67
|
-
expect(@view.it("test5", :
|
67
|
+
I18n.backend.store_translations(:en, test5: "Hello %{name}.")
|
68
|
+
expect(@view.it("test5", name: '<a href="http://evil.haxor.com">victim</a>')).to eq('Hello <a href="http://evil.haxor.com">victim</a>.')
|
68
69
|
end
|
69
70
|
|
70
71
|
it "should not escape html_safe interpolations" do
|
71
|
-
I18n.backend.store_translations(:en, :
|
72
|
-
expect(@view.it("test5", :
|
72
|
+
I18n.backend.store_translations(:en, test5: "Hello %{name}.")
|
73
|
+
expect(@view.it("test5", name: '<a href="http://www.rubyonrails.org">Rails</a>'.html_safe)).to eq('Hello <a href="http://www.rubyonrails.org">Rails</a>.')
|
73
74
|
end
|
74
75
|
|
75
76
|
it "should allow interpolations inside of links" do
|
76
|
-
I18n.backend.store_translations(:en, :
|
77
|
-
expect(@view.it("test6", :
|
77
|
+
I18n.backend.store_translations(:en, test6: "Did you read our %{link:nice %{article}}?")
|
78
|
+
expect(@view.it("test6", link: It.link("/article/2"), article: "article")).to eq('Did you read our <a href="/article/2">nice article</a>?')
|
78
79
|
end
|
79
80
|
|
80
81
|
it "should raise a KeyError, if the key was not given" do
|
81
|
-
expect { @view.it("test1", :
|
82
|
+
expect { @view.it("test1", blubb: true) }.to raise_error(KeyError, "key{link} not found")
|
82
83
|
end
|
83
84
|
|
84
85
|
it "should raise an ArgumentError, if a String was given for an interpolation with argument" do
|
85
|
-
I18n.backend.store_translations(:en, :
|
86
|
-
expect { @view.it("test7", :
|
86
|
+
I18n.backend.store_translations(:en, test7: "Sign up %{asdf:here}!")
|
87
|
+
expect { @view.it("test7", asdf: "Heinz") }.to raise_error(ArgumentError, "key{asdf} has an argument, so it cannot resolved with a String")
|
87
88
|
end
|
88
89
|
|
89
90
|
it "should allow Strings, if the interpolation name is link" do
|
90
|
-
I18n.backend.store_translations(:en, :
|
91
|
-
expect(@view.it("test8", :
|
91
|
+
I18n.backend.store_translations(:en, test8: "Sign up %{link:here}!")
|
92
|
+
expect(@view.it("test8", link: "/register")).to eq('Sign up <a href="/register">here</a>!')
|
92
93
|
end
|
93
94
|
|
94
95
|
it "should allow Strings, if the interpolation name ends with _link" do
|
95
|
-
I18n.backend.store_translations(:en, :
|
96
|
-
expect(@view.it("test8", :
|
96
|
+
I18n.backend.store_translations(:en, test8: "Sign up %{register_link:here}!")
|
97
|
+
expect(@view.it("test8", register_link: "/register")).to eq('Sign up <a href="/register">here</a>!')
|
97
98
|
end
|
98
99
|
|
99
100
|
it "should allow Strings, if the interpolation name starts with link_" do
|
100
|
-
I18n.backend.store_translations(:en, :
|
101
|
-
expect(@view.it("test8", :
|
101
|
+
I18n.backend.store_translations(:en, test8: "Sign up %{link_to_register:here}!")
|
102
|
+
expect(@view.it("test8", link_to_register: "/register")).to eq('Sign up <a href="/register">here</a>!')
|
102
103
|
end
|
103
104
|
|
104
105
|
it "should work with tags without arguments" do
|
105
|
-
I18n.backend.store_translations(:en, :
|
106
|
-
expect(@view.it("test9", :
|
106
|
+
I18n.backend.store_translations(:en, test9: "We can %{br} do line breaks")
|
107
|
+
expect(@view.it("test9", br: It.tag(:br))).to eq('We can <br /> do line breaks')
|
107
108
|
end
|
108
109
|
|
109
110
|
it 'should support dot-prefixed keys' do
|
110
|
-
I18n.backend.store_translations(:en, :
|
111
|
+
I18n.backend.store_translations(:en, widgets: { show: { all_widgets: "See %{widgets_link:all widgets}" } })
|
111
112
|
@view.instance_variable_set(:"@_virtual_path", "widgets/show") # For Rails 3.0
|
112
113
|
@view.instance_variable_set(:"@virtual_path", "widgets/show") # For Rails 3.1, 3.2 and probably 4.0
|
113
|
-
expect(@view.it('.all_widgets', :
|
114
|
+
expect(@view.it('.all_widgets', widgets_link: '/widgets')).to eq('See <a href="/widgets">all widgets</a>')
|
114
115
|
end
|
115
116
|
|
116
117
|
it 'should support the locale option' do
|
117
|
-
expect(@view.it('test1', :
|
118
|
+
expect(@view.it('test1', locale: "de", link: It.link("http://www.rubyonrails.org"))).to eq('Ich habe einen <a href="http://www.rubyonrails.org">Link zu Rails</a> in der Mitte.')
|
118
119
|
end
|
119
120
|
|
120
121
|
context "With a pluralized translation" do
|
121
122
|
before do
|
122
|
-
I18n.backend.store_translations(:en, :
|
123
|
+
I18n.backend.store_translations(:en, test10: {zero: "You have zero messages.", one: "You have %{link:one message}.", other: "You have %{link:%{count} messages}."})
|
123
124
|
end
|
124
125
|
|
125
126
|
it 'should work with count = 0' do
|
126
|
-
expect(@view.it("test10", :
|
127
|
+
expect(@view.it("test10", count: 0, link: "/messages")).to eq('You have zero messages.')
|
127
128
|
end
|
128
129
|
|
129
130
|
it 'should work with count = 1' do
|
130
|
-
expect(@view.it("test10", :
|
131
|
+
expect(@view.it("test10", count: 1, link: "/messages")).to eq('You have <a href="/messages">one message</a>.')
|
131
132
|
end
|
132
133
|
|
133
134
|
it 'should work with count > 1' do
|
134
|
-
expect(@view.it("test10", :
|
135
|
+
expect(@view.it("test10", count: 2, link: "/messages")).to eq('You have <a href="/messages">2 messages</a>.')
|
135
136
|
end
|
136
137
|
end
|
137
138
|
end
|
data/spec/it/link_spec.rb
CHANGED
@@ -9,7 +9,7 @@ describe It::Link, '.new' do
|
|
9
9
|
end
|
10
10
|
|
11
11
|
it "should accept a Hash as first param" do
|
12
|
-
expect { It::Link.new({:
|
12
|
+
expect { It::Link.new({controller: "articles", action: "index"}) }.not_to raise_error
|
13
13
|
end
|
14
14
|
|
15
15
|
it "should raise a TypeError if the first param is an Integer" do
|
@@ -17,7 +17,7 @@ describe It::Link, '.new' do
|
|
17
17
|
end
|
18
18
|
|
19
19
|
it "should accept options as a Hash" do
|
20
|
-
expect { It::Link.new("http://www.rubyonrails.org/", {:
|
20
|
+
expect { It::Link.new("http://www.rubyonrails.org/", {id: "identity", class: "classy"}) }.not_to raise_error
|
21
21
|
end
|
22
22
|
|
23
23
|
it "should raise a TypeError, if the options are a String" do
|
@@ -37,6 +37,6 @@ end
|
|
37
37
|
|
38
38
|
describe It::Link, '#process' do
|
39
39
|
it "should return a link with the options set and the content as label" do
|
40
|
-
expect(It::Link.new("http://www.rubyonrails.org", :
|
40
|
+
expect(It::Link.new("http://www.rubyonrails.org", target: "_blank").process("Rails")).to eq('<a href="http://www.rubyonrails.org" target="_blank">Rails</a>')
|
41
41
|
end
|
42
42
|
end
|
data/spec/it/parser_spec.rb
CHANGED
@@ -7,10 +7,10 @@ describe It::Parser do
|
|
7
7
|
values = {'b' => It.tag(:b), 'link' => '/messages'}
|
8
8
|
parser = It::Parser.new('You have %{b:%{link:new messages}}!', values)
|
9
9
|
|
10
|
-
return1 = double('It::Interpolation', :
|
10
|
+
return1 = double('It::Interpolation', process: '<a href="/messages">new messages</a>')
|
11
11
|
It::Interpolation.should_receive(:new).with('%{link:new messages}', values).and_return(return1)
|
12
12
|
|
13
|
-
return2 = double('It::Interpolation', :
|
13
|
+
return2 = double('It::Interpolation', process: '<b><a href="/messages">new messages</a></b>')
|
14
14
|
It::Interpolation.should_receive(:new).with('%{b:<a href="/messages">new messages</a>}', values).and_return(return2)
|
15
15
|
|
16
16
|
expect(parser.process).to eq('You have <b><a href="/messages">new messages</a></b>!')
|
@@ -29,8 +29,8 @@ describe It::Parser do
|
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'delegates pluralization to I18n' do
|
32
|
-
I18n.backend.stub(:pluralize).with('en', {:
|
33
|
-
parser = It::Parser.new({:
|
32
|
+
I18n.backend.stub(:pluralize).with('en', {other: 'You have %{count} messages'}, 2) { 'This is the pluralized string' }
|
33
|
+
parser = It::Parser.new({other: 'You have %{count} messages'}, 'locale' => 'en', 'count' => 2)
|
34
34
|
|
35
35
|
expect(parser.process).to eq('This is the pluralized string')
|
36
36
|
end
|
data/spec/it/tag_spec.rb
CHANGED
@@ -7,23 +7,23 @@ describe It::Tag, '.new' do
|
|
7
7
|
it "should work with a parameter (Symbol)" do
|
8
8
|
expect { It::Tag.new(:b) }.not_to raise_error
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
it "should work with a paramter (String)" do
|
12
12
|
expect { It::Tag.new("b") }.not_to raise_error
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
it "should raise TypeError if called with an Integer" do
|
16
16
|
expect { It::Tag.new(1) }.to raise_error(TypeError)
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
it "should accept an options Hash" do
|
20
|
-
expect { It::Tag.new(:b, :
|
20
|
+
expect { It::Tag.new(:b, class: "very_bold") }.not_to raise_error
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
it "should raise a TypeError if called with a String" do
|
24
24
|
expect { It::Tag.new(:b, "very_bold") }.to raise_error(TypeError)
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
it "should raise an ArgumentError if called with three params" do
|
28
28
|
expect { It::Tag.new(:b, {}, :blubb) }.to raise_error(ArgumentError)
|
29
29
|
end
|
@@ -33,7 +33,7 @@ describe It::Tag, '#tag_name' do
|
|
33
33
|
it "should return the tag as a Symbol if given as a Symbol" do
|
34
34
|
expect(It::Tag.new(:i).tag_name).to eq(:i)
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
it "should return the tag_name as a Symbol if given as a String" do
|
38
38
|
expect(It::Tag.new("i").tag_name).to eq(:i)
|
39
39
|
end
|
@@ -41,7 +41,7 @@ end
|
|
41
41
|
|
42
42
|
describe It::Tag, '#options' do
|
43
43
|
it "should return the options with symbolized keys" do
|
44
|
-
expect(It::Tag.new(:i, "id" => "cool", :
|
44
|
+
expect(It::Tag.new(:i, "id" => "cool", class: "classy").options).to eq({id: "cool", class: "classy"})
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
@@ -49,19 +49,19 @@ describe It::Tag, '#process' do
|
|
49
49
|
it "should return a tag with the options as attributes and the param as content" do
|
50
50
|
expect(It::Tag.new(:i, "id" => "cool", "class" => "classy").process("some text")).to eq('<i class="classy" id="cool">some text</i>')
|
51
51
|
end
|
52
|
-
|
52
|
+
|
53
53
|
it "should be marked as html safe" do
|
54
54
|
expect(It::Tag.new(:i).process("some text").html_safe).to be_true
|
55
55
|
end
|
56
|
-
|
56
|
+
|
57
57
|
it "should escape HTML" do
|
58
58
|
expect(It::Tag.new(:i).process("some text & <b>html</b>")).to eq('<i>some text & <b>html</b></i>')
|
59
59
|
end
|
60
|
-
|
60
|
+
|
61
61
|
it "should not escape strings marked as HTML safe" do
|
62
62
|
expect(It::Tag.new(:i).process("some text & <b>html</b>".html_safe)).to eq('<i>some text & <b>html</b></i>')
|
63
63
|
end
|
64
|
-
|
64
|
+
|
65
65
|
it "should return an empty tag, if no content is provided" do
|
66
66
|
expect(It::Tag.new(:br, "id" => "cool").process).to eq('<br id="cool" />')
|
67
67
|
end
|
data/spec/it_spec.rb
CHANGED
@@ -5,9 +5,19 @@ require 'it'
|
|
5
5
|
|
6
6
|
describe It, '.it' do
|
7
7
|
it "should translate inside the controller as well" do
|
8
|
-
I18n.backend.store_translations(:en, :
|
9
|
-
expect(It.it("test1", :
|
8
|
+
I18n.backend.store_translations(:en, test1: "I have a %{link:link to Rails} in the middle.")
|
9
|
+
expect(It.it("test1", link: It.link("http://www.rubyonrails.org"))).to eq('I have a <a href="http://www.rubyonrails.org">link to Rails</a> in the middle.')
|
10
10
|
end
|
11
|
+
|
12
|
+
it 'should use default key if no translation is present on specified key' do
|
13
|
+
I18n.backend.store_translations(:en, fallback: 'this is a fallback')
|
14
|
+
expect(It.it('a.missing.key', default: :fallback)).to eq('this is a fallback')
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should use default string if key is missing' do
|
18
|
+
expect(It.it('a.missing.key', default: 'this is a fallback string')).to eq('this is a fallback string')
|
19
|
+
end
|
20
|
+
|
11
21
|
end
|
12
22
|
|
13
23
|
describe It, '.link' do
|
@@ -20,7 +30,7 @@ describe It, '.link' do
|
|
20
30
|
end
|
21
31
|
|
22
32
|
it "should accept two params" do
|
23
|
-
expect { It.link("http://www.rubyonrails.org/", {:
|
33
|
+
expect { It.link("http://www.rubyonrails.org/", {id: "identity", class: "classy"}) }.not_to raise_error
|
24
34
|
end
|
25
35
|
|
26
36
|
it "should raise ArgumentError, if called with three params" do
|
@@ -38,7 +48,7 @@ describe It, '.tag' do
|
|
38
48
|
end
|
39
49
|
|
40
50
|
it "should accept two params" do
|
41
|
-
expect { It.tag(:b, :
|
51
|
+
expect { It.tag(:b, class: "very_bold") }.not_to raise_error
|
42
52
|
end
|
43
53
|
|
44
54
|
it "should raise an ArgumentError if called with three params" do
|
metadata
CHANGED
@@ -1,32 +1,36 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: it
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Johannes Barre
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-
|
12
|
+
date: 2013-07-15 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: actionpack
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
|
-
- - '>='
|
19
|
+
- - ! '>='
|
18
20
|
- !ruby/object:Gem::Version
|
19
21
|
version: 3.0.0
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
|
-
- - '>='
|
27
|
+
- - ! '>='
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: 3.0.0
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: rspec
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
35
|
- - ~>
|
32
36
|
- !ruby/object:Gem::Version
|
@@ -34,6 +38,7 @@ dependencies:
|
|
34
38
|
type: :development
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
43
|
- - ~>
|
39
44
|
- !ruby/object:Gem::Version
|
@@ -41,15 +46,17 @@ dependencies:
|
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: rake
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
|
-
- - '>='
|
51
|
+
- - ! '>='
|
46
52
|
- !ruby/object:Gem::Version
|
47
53
|
version: '10.0'
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
|
-
- - '>='
|
59
|
+
- - ! '>='
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: '10.0'
|
55
62
|
description:
|
@@ -63,50 +70,52 @@ files:
|
|
63
70
|
- README.textile
|
64
71
|
- Rakefile
|
65
72
|
- Gemfile
|
66
|
-
- spec/spec_helper.rb
|
67
|
-
- spec/it_spec.rb
|
68
|
-
- spec/it/link_spec.rb
|
69
|
-
- spec/it/helper_spec.rb
|
70
|
-
- spec/it/parser_spec.rb
|
71
|
-
- spec/it/tag_spec.rb
|
72
|
-
- spec/it/plain_spec.rb
|
73
|
-
- spec/it/interpolation_spec.rb
|
74
|
-
- lib/it.rb
|
75
|
-
- lib/it/interpolation.rb
|
76
73
|
- lib/it/helper.rb
|
77
|
-
- lib/it/parser.rb
|
78
74
|
- lib/it/link.rb
|
79
75
|
- lib/it/plain.rb
|
76
|
+
- lib/it/parser.rb
|
80
77
|
- lib/it/tag.rb
|
78
|
+
- lib/it/interpolation.rb
|
79
|
+
- lib/it.rb
|
80
|
+
- spec/it/link_spec.rb
|
81
|
+
- spec/it/interpolation_spec.rb
|
82
|
+
- spec/it/plain_spec.rb
|
83
|
+
- spec/it/parser_spec.rb
|
84
|
+
- spec/it/helper_spec.rb
|
85
|
+
- spec/it/tag_spec.rb
|
86
|
+
- spec/spec_helper.rb
|
87
|
+
- spec/it_spec.rb
|
81
88
|
homepage: https://github.com/igel/it
|
82
|
-
licenses:
|
83
|
-
|
89
|
+
licenses:
|
90
|
+
- MIT
|
84
91
|
post_install_message:
|
85
92
|
rdoc_options: []
|
86
93
|
require_paths:
|
87
94
|
- lib
|
88
95
|
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
none: false
|
89
97
|
requirements:
|
90
|
-
- - '>='
|
98
|
+
- - ! '>='
|
91
99
|
- !ruby/object:Gem::Version
|
92
|
-
version:
|
100
|
+
version: 1.9.2
|
93
101
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
|
+
none: false
|
94
103
|
requirements:
|
95
|
-
- - '>='
|
104
|
+
- - ! '>='
|
96
105
|
- !ruby/object:Gem::Version
|
97
106
|
version: 1.3.6
|
98
107
|
requirements: []
|
99
108
|
rubyforge_project:
|
100
|
-
rubygems_version:
|
109
|
+
rubygems_version: 1.8.23
|
101
110
|
signing_key:
|
102
|
-
specification_version:
|
111
|
+
specification_version: 3
|
103
112
|
summary: A helper for links and other html tags in your translations
|
104
113
|
test_files:
|
105
|
-
- spec/it_spec.rb
|
106
114
|
- spec/it/link_spec.rb
|
107
|
-
- spec/it/
|
115
|
+
- spec/it/interpolation_spec.rb
|
116
|
+
- spec/it/plain_spec.rb
|
108
117
|
- spec/it/parser_spec.rb
|
118
|
+
- spec/it/helper_spec.rb
|
109
119
|
- spec/it/tag_spec.rb
|
110
|
-
- spec/
|
111
|
-
- spec/it/interpolation_spec.rb
|
120
|
+
- spec/it_spec.rb
|
112
121
|
- spec/spec_helper.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 540cf86712cced87828cbb22246c440c4fff172b
|
4
|
-
data.tar.gz: 58c4b692810db1b1732ad21d31394c5cec10b2a1
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: f16fe37fd4a51ee176710ed9efec3e6874a3c1d86daefc128d48c718b81766701977aa1a5e180447a70ec344d4463b6f4fbf7081c0bc271973733d60ff07ce15
|
7
|
-
data.tar.gz: 9a98bc3f607fb8d6903c2ed5fae6b0aec9e416f36fa1897f75474176a2c3819326ed81a7d933c7a47abc7820edd18333ec803145ccdc18c97971f06dc844924d
|