it 0.2.1 → 0.2.3
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 +2 -2
- data/lib/it.rb +48 -7
- data/lib/it/helper.rb +18 -55
- data/spec/it/helper_spec.rb +44 -22
- data/spec/it_spec.rb +17 -10
- metadata +6 -8
data/README.textile
CHANGED
@@ -52,7 +52,7 @@ Even nested interpolations are possible:
|
|
52
52
|
|
53
53
|
<pre><code><%=it "copy", link: "mailto:igel@igels.net", user: 'iGEL', :b => It.tag(:b) %></code></pre>
|
54
54
|
|
55
|
-
If you would like to use the same translations in your html and plain text mails, you will like the
|
55
|
+
If you would like to use the same translations in your html and plain text mails, you will like the @It.plain@ method:
|
56
56
|
<pre><code>en:
|
57
57
|
mail_copy: "Do you like %{link:Rails}?"</code></pre>
|
58
58
|
|
@@ -63,7 +63,7 @@ Plain mail:
|
|
63
63
|
<%= it "mail_copy", link: It.plain("%s[http://www.rubyonrails.org/]") %>
|
64
64
|
</code></pre>
|
65
65
|
|
66
|
-
The
|
66
|
+
The @%s@ will be replaced with the label, in the example with Rails. You could provide any other string containing @%s@. The default is just @%s@, so it will return only the label itself.
|
67
67
|
|
68
68
|
h2. isit18.com?
|
69
69
|
|
data/lib/it.rb
CHANGED
@@ -9,8 +9,14 @@ end
|
|
9
9
|
|
10
10
|
# Namespace of the gem.
|
11
11
|
module It
|
12
|
+
# It outside of your views. See documentation at Helper#it
|
13
|
+
def self.it(identifier, options = {})
|
14
|
+
options.stringify_keys!
|
15
|
+
process(I18n.t(identifier, :locale => options["locale"]), options)
|
16
|
+
end
|
17
|
+
|
12
18
|
# Creates a new link to be used in +it+.
|
13
|
-
#
|
19
|
+
#
|
14
20
|
# * +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
|
15
21
|
# a Hash like <code>{:controller => "articles", :action => "index"}</code> directly. Use the +url_for+ helper, if you would like to specify your
|
16
22
|
# links like that.
|
@@ -18,20 +24,55 @@ module It
|
|
18
24
|
def self.link(href, options = {})
|
19
25
|
It::Link.new(href, options)
|
20
26
|
end
|
21
|
-
|
27
|
+
|
22
28
|
# Creates a new plain replacement to be used in +it+.
|
23
|
-
#
|
24
|
-
# * +template+: A string to be used as the template. An example would be <code>"%s[http://www.rubyonrails.org]"</code>. Defaults to
|
29
|
+
#
|
30
|
+
# * +template+: A string to be used as the template. An example would be <code>"%s[http://www.rubyonrails.org]"</code>. Defaults to
|
25
31
|
# <code>"%s"</code>. <em>(optional)</em>
|
26
32
|
def self.plain(template = "%s")
|
27
33
|
It::Plain.new(template)
|
28
34
|
end
|
29
|
-
|
35
|
+
|
30
36
|
# Creates a new tag to be used in +it+.
|
31
|
-
#
|
37
|
+
#
|
32
38
|
# * +tag_name+: The name of the tag as a Symbol or String.
|
33
39
|
# * +options+: The options will become attributes on the tag. <em>(optional)</em>
|
34
40
|
def self.tag(tag_name, options = {})
|
35
41
|
It::Tag.new(tag_name, options)
|
36
42
|
end
|
37
|
-
|
43
|
+
|
44
|
+
private
|
45
|
+
def self.process(string, options)
|
46
|
+
# Handle pluralization
|
47
|
+
string = I18n.backend.send(:pluralize, options["locale"] || I18n.locale, string, options["count"]) if string.is_a?(Hash) && options["count"]
|
48
|
+
|
49
|
+
# We want the escaped String, not an ActiveSupport::SafeBuffer
|
50
|
+
translation = String.new(ERB::Util.h(string))
|
51
|
+
|
52
|
+
# For deep nesting, we repeat the process until we have no interpolations anymore
|
53
|
+
while translation =~ /%\{[^{}}]+\}/
|
54
|
+
translation.gsub!(/%\{[^{}}]+\}/) do |interpolation|
|
55
|
+
token, label = interpolation[2..-2].split(":", 2)
|
56
|
+
|
57
|
+
# Convert tokens with String arguments into It::Links, if they are named link, link_* or *_link
|
58
|
+
if (token == "link" || token.ends_with?("_link") || token.starts_with?("link_")) && (options[token].is_a?(String) || options[token].is_a?(Hash))
|
59
|
+
options[token] = It::Link.new(options[token])
|
60
|
+
end
|
61
|
+
|
62
|
+
if !options.has_key?(token)
|
63
|
+
raise KeyError, "key{#{token}} not found"
|
64
|
+
elsif label && !options[token].is_a?(It::Tag)
|
65
|
+
raise ArgumentError, "key{#{token}} has an argument, so it cannot resolved with a #{options[token].class}"
|
66
|
+
elsif label # Normal tags
|
67
|
+
options[token].process(label.html_safe)
|
68
|
+
elsif options[token].is_a?(It::Tag) # Empty tag
|
69
|
+
options[token].process
|
70
|
+
else # Normal interpolations, as I18n.t would do it.
|
71
|
+
ERB::Util.h(options[token])
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
translation.html_safe
|
77
|
+
end
|
78
|
+
end
|
data/lib/it/helper.rb
CHANGED
@@ -3,81 +3,44 @@
|
|
3
3
|
module It
|
4
4
|
# The helper will be available in the views.
|
5
5
|
module Helper
|
6
|
-
# This helper method works just like +t+ (or +translate+ for long), but it allows to insert tags like links
|
6
|
+
# This helper method works just like +t+ (or +translate+ for long), but it allows to insert tags like links
|
7
7
|
# or spans in the result. The content of these tags can be written in line with the rest of the translation.
|
8
8
|
# Unless you need this functionality, use the normal +t+ method, which is faster.
|
9
|
-
#
|
9
|
+
#
|
10
10
|
# Like for normal translations, you specify interpolations with <code>%{</code> at the beginning and with
|
11
11
|
# <code>}</code> at the end. The new element is the <code>:</code>, which separates the name from the argument
|
12
12
|
# of this interpolation.
|
13
|
-
#
|
13
|
+
#
|
14
14
|
# # translation: "Already signed up? %{login_link:Sign in}!"
|
15
|
-
#
|
15
|
+
#
|
16
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
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
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
|
-
#
|
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,
|
31
|
+
#
|
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>,
|
34
34
|
# <code><b></code>, <code><i></code>, <code><em></code> or <code><strong></code>.
|
35
|
-
#
|
35
|
+
#
|
36
36
|
# It's currently not possible to specify your links as an Hash. Use the +url_for+ helper, if you want to specify your
|
37
|
-
# link target as an Hash.
|
38
|
-
#
|
39
|
-
#
|
40
|
-
#
|
41
|
-
# # Controller:
|
42
|
-
# flash[:message] = ["articles.update.success", {:article_link => It.link(article_path(article))}]
|
43
|
-
#
|
44
|
-
# # View (or layout)
|
45
|
-
# <% if flash[:message].is_a?(Array) %>
|
46
|
-
# <%= it(flash[:message].first, flash[:message].last) %>
|
47
|
-
# <% else %>
|
48
|
-
# <%= flash[:message] %>
|
49
|
-
# <% end %>
|
50
|
-
#
|
37
|
+
# link target as an Hash.
|
38
|
+
#
|
39
|
+
# If you need to use it outside of your views, use +It.it+.
|
40
|
+
#
|
51
41
|
def it(identifier, options = {})
|
52
42
|
options.stringify_keys!
|
53
|
-
|
54
|
-
translation = String.new(h(t(identifier)))
|
55
|
-
|
56
|
-
# For deep nesting, we repeat the process until we have not interpolations anymore
|
57
|
-
while translation =~ /%\{[^{}}]+\}/
|
58
|
-
translation.gsub!(/%\{[^{}}]+\}/) do |interpolation|
|
59
|
-
token, label = interpolation[2..-2].split(":", 2)
|
60
|
-
|
61
|
-
# Convert tokens with String arguments into It::Links, if they are named link, link_* or *_link
|
62
|
-
if (token == "link" || token.ends_with?("_link") || token.starts_with?("link_")) && (options[token].is_a?(String) || options[token].is_a?(Hash))
|
63
|
-
options[token] = It::Link.new(options[token])
|
64
|
-
end
|
65
|
-
|
66
|
-
if !options.has_key?(token)
|
67
|
-
raise KeyError, "key{#{token}} not found"
|
68
|
-
elsif label && !options[token].is_a?(It::Tag)
|
69
|
-
raise ArgumentError, "key{#{token}} has an argument, so it cannot resolved with a #{options[token].class}"
|
70
|
-
elsif label # Normal tags
|
71
|
-
options[token].process(raw label)
|
72
|
-
elsif options[token].is_a?(It::Tag) # Empty tag
|
73
|
-
options[token].process
|
74
|
-
else # Normal interpolations, as I18n.t would do it.
|
75
|
-
h(options[token])
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
raw translation
|
43
|
+
It.process(t(identifier, :locale => options["locale"]), options)
|
81
44
|
end
|
82
45
|
end
|
83
46
|
end
|
data/spec/it/helper_spec.rb
CHANGED
@@ -7,108 +7,130 @@ describe It::Helper, "#it" do
|
|
7
7
|
before do
|
8
8
|
I18n.backend.store_translations(:en, :test1 => "I'm containing a %{link:link to Rails} in the middle.")
|
9
9
|
I18n.backend.store_translations(:de, :test1 => "Ich enthalte einen %{link:Link zu Rails} in der Mitte.")
|
10
|
-
|
10
|
+
|
11
11
|
@view = ActionView::Base.new
|
12
12
|
@controller = ActionController::Base.new
|
13
13
|
@view.controller = @controller
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
after do
|
17
17
|
I18n.locale = :en
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
it "should insert the link into the string" do
|
21
21
|
@view.it("test1", :link => It.link("http://www.rubyonrails.org")).should == 'I\'m containing a <a href="http://www.rubyonrails.org">link to Rails</a> in the middle.'
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
it "should insert the link into the German translation" do
|
25
25
|
I18n.locale = :de
|
26
26
|
@view.it("test1", :link => It.link("http://www.rubyonrails.org")).should == 'Ich enthalte einen <a href="http://www.rubyonrails.org">Link zu Rails</a> in der Mitte.'
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
it "should allow link options to be set" do
|
30
30
|
@view.it("test1", :link => It.link("http://www.rubyonrails.org", :target => "_blank")).should == 'I\'m containing a <a href="http://www.rubyonrails.org" target="_blank">link to Rails</a> in the middle.'
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
it "should support the plain thing" do
|
34
34
|
@view.it("test1", :link => It.plain("%s[http://www.rubyonrails.org]")).should == 'I\'m containing a link to Rails[http://www.rubyonrails.org] in the middle.'
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
it "should parse other tags as well" do
|
38
38
|
@view.it("test1", :link => It.tag(:b, :class => "classy")).should == 'I\'m containing a <b class="classy">link to Rails</b> in the middle.'
|
39
39
|
end
|
40
|
-
|
40
|
+
|
41
41
|
it "should mark the result as html safe" do
|
42
42
|
@view.it("test1", :link => It.link("http://www.rubyonrails.org")).html_safe?.should be_true
|
43
43
|
end
|
44
|
-
|
44
|
+
|
45
45
|
it "should escape all html in the translation" do
|
46
46
|
I18n.backend.store_translations(:en, :test2 => "<a href=\"hax0r\"> & %{link:link -> Rails} in <b>the middle</b>.")
|
47
47
|
@view.it("test2", :link => It.link("http://www.rubyonrails.org")).should == '<a href="hax0r"> & <a href="http://www.rubyonrails.org">link -> Rails</a> in <b>the middle</b>.'
|
48
48
|
end
|
49
|
-
|
49
|
+
|
50
50
|
it "should also work with 2 links" do
|
51
51
|
I18n.backend.store_translations(:en, :test3 => "I like %{link1:rails} and %{link2:github}.")
|
52
52
|
@view.it("test3", :link1 => It.link("http://www.rubyonrails.org"), :link2 => It.link("http://www.github.com")).should == 'I like <a href="http://www.rubyonrails.org">rails</a> and <a href="http://www.github.com">github</a>.'
|
53
53
|
end
|
54
|
-
|
54
|
+
|
55
55
|
it "should allow normal I18n interpolations" do
|
56
56
|
I18n.backend.store_translations(:en, :test4 => "I'm containing a %{link:link to Rails} in the %{position}.")
|
57
57
|
@view.it("test4", :link => It.link("http://www.rubyonrails.org"), :position => "middle").should == 'I\'m containing a <a href="http://www.rubyonrails.org">link to Rails</a> in the middle.'
|
58
58
|
end
|
59
|
-
|
59
|
+
|
60
60
|
it "should allow Intergers as normal interpolation" do
|
61
61
|
I18n.backend.store_translations(:en, :test5 => "Hello %{name}.")
|
62
62
|
@view.it("test5", :name => 2).should == 'Hello 2.'
|
63
63
|
end
|
64
|
-
|
64
|
+
|
65
65
|
it "should escape the HTML in normal interpolations" do
|
66
66
|
I18n.backend.store_translations(:en, :test5 => "Hello %{name}.")
|
67
67
|
@view.it("test5", :name => '<a href="http://evil.haxor.com">victim</a>').should == 'Hello <a href="http://evil.haxor.com">victim</a>.'
|
68
68
|
end
|
69
|
-
|
69
|
+
|
70
70
|
it "should not escape html_safe interpolations" do
|
71
71
|
I18n.backend.store_translations(:en, :test5 => "Hello %{name}.")
|
72
72
|
@view.it("test5", :name => '<a href="http://www.rubyonrails.org">Rails</a>'.html_safe).should == 'Hello <a href="http://www.rubyonrails.org">Rails</a>.'
|
73
73
|
end
|
74
|
-
|
74
|
+
|
75
75
|
it "should allow interpolations inside of links" do
|
76
76
|
I18n.backend.store_translations(:en, :test6 => "Did you read our %{link:nice %{article}}?")
|
77
77
|
@view.it("test6", :link => It.link("/article/2"), :article => "article").should == 'Did you read our <a href="/article/2">nice article</a>?'
|
78
78
|
end
|
79
|
-
|
79
|
+
|
80
80
|
it "should raise a KeyError, if the key was not given" do
|
81
81
|
expect { @view.it("test1", :blubb => true) }.to raise_error(KeyError, "key{link} not found")
|
82
82
|
end
|
83
|
-
|
83
|
+
|
84
84
|
it "should raise an ArgumentError, if a String was given for an interpolation with argument" do
|
85
85
|
I18n.backend.store_translations(:en, :test7 => "Sign up %{asdf:here}!")
|
86
86
|
expect { @view.it("test7", :asdf => "Heinz") }.to raise_error(ArgumentError, "key{asdf} has an argument, so it cannot resolved with a String")
|
87
87
|
end
|
88
|
-
|
88
|
+
|
89
89
|
it "should allow Strings, if the interpolation name is link" do
|
90
90
|
I18n.backend.store_translations(:en, :test8 => "Sign up %{link:here}!")
|
91
91
|
@view.it("test8", :link => "/register").should == 'Sign up <a href="/register">here</a>!'
|
92
92
|
end
|
93
|
-
|
93
|
+
|
94
94
|
it "should allow Strings, if the interpolation name ends with _link" do
|
95
95
|
I18n.backend.store_translations(:en, :test8 => "Sign up %{register_link:here}!")
|
96
96
|
@view.it("test8", :register_link => "/register").should == 'Sign up <a href="/register">here</a>!'
|
97
97
|
end
|
98
|
-
|
98
|
+
|
99
99
|
it "should allow Strings, if the interpolation name starts with link_" do
|
100
100
|
I18n.backend.store_translations(:en, :test8 => "Sign up %{link_to_register:here}!")
|
101
101
|
@view.it("test8", :link_to_register => "/register").should == 'Sign up <a href="/register">here</a>!'
|
102
102
|
end
|
103
|
-
|
103
|
+
|
104
104
|
it "should work with tags without arguments" do
|
105
105
|
I18n.backend.store_translations(:en, :test9 => "We can %{br} do line breaks")
|
106
106
|
@view.it("test9", :br => It.tag(:br)).should == 'We can <br /> do line breaks'
|
107
107
|
end
|
108
|
-
|
108
|
+
|
109
109
|
it 'should support dot-prefixed keys' do
|
110
110
|
I18n.backend.store_translations(:en, :widgets => { :show => { :all_widgets => "See %{widgets_link:all widgets}" } })
|
111
111
|
@view.instance_variable_set(:"@_virtual_path", "widgets/show")
|
112
112
|
@view.it('.all_widgets', :widgets_link => '/widgets').should == 'See <a href="/widgets">all widgets</a>'
|
113
113
|
end
|
114
|
+
|
115
|
+
it 'should support the locale option' do
|
116
|
+
@view.it('test1', :locale => "de", :link => It.link("http://www.rubyonrails.org")).should == 'Ich enthalte einen <a href="http://www.rubyonrails.org">Link zu Rails</a> in der Mitte.'
|
117
|
+
end
|
118
|
+
|
119
|
+
context "With a pluralized translation" do
|
120
|
+
before do
|
121
|
+
I18n.backend.store_translations(:en, :test10 => {:zero => "You have zero messages.", :one => "You have %{link:one message}.", :other => "You have %{link:%{count} messages}."})
|
122
|
+
end
|
123
|
+
|
124
|
+
it 'should work with count = 0' do
|
125
|
+
@view.it("test10", :count => 0, :link => "/messages").should == 'You have zero messages.'
|
126
|
+
end
|
127
|
+
|
128
|
+
it 'should work with count = 1' do
|
129
|
+
@view.it("test10", :count => 1, :link => "/messages").should == 'You have <a href="/messages">one message</a>.'
|
130
|
+
end
|
131
|
+
|
132
|
+
it 'should work with count > 1' do
|
133
|
+
@view.it("test10", :count => 2, :link => "/messages").should == 'You have <a href="/messages">2 messages</a>.'
|
134
|
+
end
|
135
|
+
end
|
114
136
|
end
|
data/spec/it_spec.rb
CHANGED
@@ -3,19 +3,26 @@
|
|
3
3
|
require 'spec_helper'
|
4
4
|
require 'it'
|
5
5
|
|
6
|
+
describe It, '.it' do
|
7
|
+
it "should translate inside the controller as well" do
|
8
|
+
I18n.backend.store_translations(:en, :test1 => "I'm containing a %{link:link to Rails} in the middle.")
|
9
|
+
It.it("test1", :link => It.link("http://www.rubyonrails.org")).should == 'I\'m containing a <a href="http://www.rubyonrails.org">link to Rails</a> in the middle.'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
6
13
|
describe It, '.link' do
|
7
14
|
it "should return an It::Link object" do
|
8
15
|
It.link("https://www.github.com").class.should == It::Link
|
9
16
|
end
|
10
|
-
|
17
|
+
|
11
18
|
it "should accept one param" do
|
12
19
|
expect { It.link("http://www.rubyonrails.org/") }.not_to raise_error
|
13
20
|
end
|
14
|
-
|
21
|
+
|
15
22
|
it "should accept two params" do
|
16
23
|
expect { It.link("http://www.rubyonrails.org/", {:id => "identity", :class => "classy"}) }.not_to raise_error
|
17
24
|
end
|
18
|
-
|
25
|
+
|
19
26
|
it "should raise ArgumentError, if called with three params" do
|
20
27
|
expect { It.link("http://www.rubyonrails.org/", {}, :blubb) }.to raise_error(ArgumentError)
|
21
28
|
end
|
@@ -25,15 +32,15 @@ describe It, '.tag' do
|
|
25
32
|
it "should return an It::Tag object" do
|
26
33
|
It.tag(:b).class.should == It::Tag
|
27
34
|
end
|
28
|
-
|
35
|
+
|
29
36
|
it "should work with a param" do
|
30
37
|
expect { It.tag(:b) }.not_to raise_error
|
31
38
|
end
|
32
|
-
|
39
|
+
|
33
40
|
it "should accept two params" do
|
34
41
|
expect { It.tag(:b, :class => "very_bold") }.not_to raise_error
|
35
42
|
end
|
36
|
-
|
43
|
+
|
37
44
|
it "should raise an ArgumentError if called with three params" do
|
38
45
|
expect { It.tag(:b, {}, :blubb) }.to raise_error(ArgumentError)
|
39
46
|
end
|
@@ -43,16 +50,16 @@ describe It, '.plain' do
|
|
43
50
|
it "should return an It::Plain object" do
|
44
51
|
It.plain.class.should == It::Plain
|
45
52
|
end
|
46
|
-
|
53
|
+
|
47
54
|
it "should work without params" do
|
48
55
|
expect { It.plain }.not_to raise_error
|
49
56
|
end
|
50
|
-
|
57
|
+
|
51
58
|
it "should accept one param" do
|
52
59
|
expect { It.plain("%s[http://www.rubyonrails.org/]") }.not_to raise_error
|
53
60
|
end
|
54
|
-
|
61
|
+
|
55
62
|
it "should raise ArgumentError, if called with two params" do
|
56
63
|
expect { It.plain("%s[http://www.rubyonrails.org/]", :blubb) }.to raise_error(ArgumentError)
|
57
64
|
end
|
58
|
-
end
|
65
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: it
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 17
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 3
|
10
|
+
version: 0.2.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Johannes Barre
|
@@ -15,8 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
19
|
-
default_executable:
|
18
|
+
date: 2011-12-15 00:00:00 Z
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
22
21
|
name: actionpack
|
@@ -74,7 +73,6 @@ files:
|
|
74
73
|
- spec/it/plain_spec.rb
|
75
74
|
- spec/it_spec.rb
|
76
75
|
- spec/spec_helper.rb
|
77
|
-
has_rdoc: true
|
78
76
|
homepage: https://github.com/igel/it
|
79
77
|
licenses: []
|
80
78
|
|
@@ -106,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
106
104
|
requirements: []
|
107
105
|
|
108
106
|
rubyforge_project:
|
109
|
-
rubygems_version: 1.
|
107
|
+
rubygems_version: 1.8.10
|
110
108
|
signing_key:
|
111
109
|
specification_version: 3
|
112
110
|
summary: A helper for links and other html tags in your translations
|