i18n-inflector 2.5.1 → 2.6.1
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/ChangeLog +80 -0
- data/Gemfile +8 -5
- data/Gemfile.lock +27 -0
- data/Manifest.txt +2 -0
- data/README.rdoc +27 -1
- data/Rakefile +14 -4
- data/ci/i18n-inflector.gemspec +7 -6
- data/ci/i18nv4-Gemfile +1 -1
- data/ci/i18nv4-Gemfile.lock +25 -0
- data/docs/HISTORY +22 -0
- data/docs/TODO +2 -1
- data/docs/USAGE +28 -0
- data/lib/i18n-inflector/api.rb +111 -107
- data/lib/i18n-inflector/api_strict.rb +164 -21
- data/lib/i18n-inflector/backend.rb +10 -7
- data/lib/i18n-inflector/config.rb +19 -19
- data/lib/i18n-inflector/errors.rb +13 -13
- data/lib/i18n-inflector/hset.rb +1 -1
- data/lib/i18n-inflector/inflection_data.rb +52 -59
- data/lib/i18n-inflector/inflection_data_strict.rb +49 -40
- data/lib/i18n-inflector/inflector.rb +3 -3
- data/lib/i18n-inflector/interpolate.rb +68 -37
- data/lib/i18n-inflector/lazy_enum.rb +119 -32
- data/lib/i18n-inflector/long_comments.rb +1 -1
- data/lib/i18n-inflector/options.rb +3 -3
- data/lib/i18n-inflector/version.rb +2 -2
- metadata +38 -27
- metadata.gz.sig +0 -0
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# Author:: Paweł Wilk (mailto:pw@gnu.org)
|
4
4
|
# Copyright:: (c) 2011 by Paweł Wilk
|
5
|
-
# License:: This program is licensed under the terms of {file:docs/LGPL GNU Lesser General Public License} or {file:COPYING Ruby License}.
|
5
|
+
# License:: This program is licensed under the terms of {file:docs/LGPL GNU Lesser General Public License} or {file:docs/COPYING Ruby License}.
|
6
6
|
#
|
7
7
|
# This file contains lazy enumerators.
|
8
8
|
|
@@ -34,6 +34,11 @@ module I18n
|
|
34
34
|
@final_block.call(*arg)
|
35
35
|
end
|
36
36
|
end
|
37
|
+
|
38
|
+
if method_defined?(:yield) and not method_defined?(:"<<")
|
39
|
+
alias_method :"<<", :yield
|
40
|
+
end
|
41
|
+
|
37
42
|
end
|
38
43
|
|
39
44
|
unless (self.new{} rescue false)
|
@@ -43,7 +48,7 @@ module I18n
|
|
43
48
|
end
|
44
49
|
|
45
50
|
if method_defined?(:with_object) and not method_defined?(:each_with_object)
|
46
|
-
alias_method :
|
51
|
+
alias_method :each_with_object, :with_object
|
47
52
|
end
|
48
53
|
|
49
54
|
end # class LazyEnumerator for ruby18
|
@@ -55,42 +60,82 @@ module I18n
|
|
55
60
|
|
56
61
|
end
|
57
62
|
|
58
|
-
# This class
|
59
|
-
|
60
|
-
|
63
|
+
# This class adds some lazy operations for collections
|
64
|
+
class LazyEnumerator
|
65
|
+
|
66
|
+
# Addition operator for collections
|
67
|
+
# @return [I18n::Inflector::LazyEnumerator] the enumerator
|
68
|
+
def +(other)
|
69
|
+
self.class.new do |yielder|
|
70
|
+
each do |v|
|
71
|
+
yielder << v
|
72
|
+
end
|
73
|
+
other.each do |v|
|
74
|
+
yielder << v
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
# Insertion operator for collections
|
80
|
+
# @return [I18n::Inflector::LazyEnumerator] the enumerator
|
81
|
+
def insert(value)
|
82
|
+
self.class.new do |yielder|
|
83
|
+
yielder << value
|
84
|
+
each do |v|
|
85
|
+
yielder << v
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
# Appending operator for collections
|
91
|
+
# @return [I18n::Inflector::LazyEnumerator] the enumerator
|
92
|
+
def append(value)
|
93
|
+
self.class.new do |yielder|
|
94
|
+
each do |v|
|
95
|
+
yielder << v
|
96
|
+
end
|
97
|
+
yielder << value
|
98
|
+
end
|
99
|
+
end
|
61
100
|
|
62
101
|
# Mapping enumerator
|
63
102
|
# @return [I18n::Inflector::LazyEnumerator] the enumerator
|
64
103
|
def map(&block)
|
65
|
-
|
66
|
-
|
67
|
-
yielder
|
104
|
+
self.class.new do |yielder|
|
105
|
+
each do |v|
|
106
|
+
yielder << block[v]
|
68
107
|
end
|
69
108
|
end
|
70
109
|
end
|
71
110
|
|
72
|
-
#
|
73
|
-
# @return [I18n::Inflector::
|
111
|
+
# Selecting enumerator
|
112
|
+
# @return [I18n::Inflector::LazyEnumerator] the enumerator
|
74
113
|
def select(&block)
|
75
|
-
|
76
|
-
|
77
|
-
yielder
|
114
|
+
self.class.new do |yielder|
|
115
|
+
each do |v|
|
116
|
+
yielder << v if block[v]
|
78
117
|
end
|
79
118
|
end
|
80
119
|
end
|
81
120
|
|
82
|
-
#
|
83
|
-
# @return [I18n::Inflector::
|
121
|
+
# Rejecting enumerator
|
122
|
+
# @return [I18n::Inflector::LazyEnumerator] the enumerator
|
84
123
|
def reject(&block)
|
85
|
-
|
86
|
-
|
87
|
-
yielder
|
124
|
+
self.class.new do |yielder|
|
125
|
+
each do |v|
|
126
|
+
yielder << v unless block[v]
|
88
127
|
end
|
89
128
|
end
|
90
129
|
end
|
91
130
|
|
92
131
|
end
|
93
132
|
|
133
|
+
# This class implements simple enumerators for arrays
|
134
|
+
# that allow to do lazy operations on them.
|
135
|
+
class LazyArrayEnumerator < LazyEnumerator
|
136
|
+
|
137
|
+
end
|
138
|
+
|
94
139
|
# This class implements simple enumerators for hashes
|
95
140
|
# that allow to do lazy operations on them.
|
96
141
|
class LazyHashEnumerator < LazyEnumerator
|
@@ -100,26 +145,48 @@ module I18n
|
|
100
145
|
# @return [Hash] the resulting hash
|
101
146
|
def to_h
|
102
147
|
h = Hash.new
|
103
|
-
|
148
|
+
each{|k,v| h[k]=v }
|
104
149
|
h
|
105
150
|
end
|
106
151
|
|
152
|
+
# Insertion operator for Hash enumerators
|
153
|
+
# @return [I18n::Inflector::LazyHashEnumerator] the enumerator
|
154
|
+
def insert(key, value)
|
155
|
+
self.class.new do |yielder|
|
156
|
+
yielder.yield(key, value)
|
157
|
+
each do |k,v|
|
158
|
+
yielder.yield(k,v)
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
# Appending operator for Hash enumerators
|
164
|
+
# @return [I18n::Inflector::LazyHashEnumerator] the enumerator
|
165
|
+
def append(key, value)
|
166
|
+
self.class.new do |yielder|
|
167
|
+
each do |k,v|
|
168
|
+
yielder.yield(k,v)
|
169
|
+
end
|
170
|
+
yielder.yield(key, value)
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
107
174
|
# Hash mapping enumerator
|
108
175
|
# @return [I18n::Inflector::LazyHashEnumerator] the enumerator
|
109
176
|
def map(&block)
|
110
177
|
LazyHashEnumerator.new do |yielder|
|
111
|
-
|
112
|
-
yielder.yield(k,block
|
178
|
+
each do |k,v|
|
179
|
+
yielder.yield(k,block[k,v])
|
113
180
|
end
|
114
181
|
end
|
115
182
|
end
|
116
183
|
|
117
184
|
# Hash to Array mapping enumerator
|
118
|
-
# @return [I18n::Inflector::
|
185
|
+
# @return [I18n::Inflector::LazyHashEnumerator] the enumerator
|
119
186
|
def ary_map(&block)
|
120
187
|
LazyHashEnumerator.new do |yielder|
|
121
|
-
|
122
|
-
yielder
|
188
|
+
each do |value|
|
189
|
+
yielder << block[value]
|
123
190
|
end
|
124
191
|
end
|
125
192
|
end
|
@@ -128,7 +195,7 @@ module I18n
|
|
128
195
|
# to an array.
|
129
196
|
def keys
|
130
197
|
ary = []
|
131
|
-
|
198
|
+
each{ |k,v| ary << k }
|
132
199
|
return ary
|
133
200
|
end
|
134
201
|
|
@@ -136,16 +203,36 @@ module I18n
|
|
136
203
|
# to an array.
|
137
204
|
def values
|
138
205
|
ary = []
|
139
|
-
|
206
|
+
each{ |k,v| ary << v }
|
140
207
|
return ary
|
141
208
|
end
|
142
209
|
|
210
|
+
# Keys enumerator
|
211
|
+
# @return [I18n::Inflector::LazyArrayEnumerator.new] the enumerator
|
212
|
+
def each_key(&block)
|
213
|
+
LazyArrayEnumerator.new do |yielder|
|
214
|
+
each do |k,v|
|
215
|
+
yielder << k
|
216
|
+
end
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
# Values enumerator
|
221
|
+
# @return [I18n::Inflector::LazyArrayEnumerator.new] the enumerator
|
222
|
+
def each_value(&block)
|
223
|
+
LazyArrayEnumerator.new do |yielder|
|
224
|
+
each do |k,v|
|
225
|
+
yielder << v
|
226
|
+
end
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
143
230
|
# Hash selecting enumerator
|
144
231
|
# @return [I18n::Inflector::LazyHashEnumerator] the enumerator
|
145
232
|
def select(&block)
|
146
|
-
|
147
|
-
|
148
|
-
yielder.yield(k,v) if block
|
233
|
+
self.class.new do |yielder|
|
234
|
+
each do |k,v|
|
235
|
+
yielder.yield(k,v) if block[k,v]
|
149
236
|
end
|
150
237
|
end
|
151
238
|
end
|
@@ -153,9 +240,9 @@ module I18n
|
|
153
240
|
# Hash rejecting enumerator
|
154
241
|
# @return [I18n::Inflector::LazyHashEnumerator] the enumerator
|
155
242
|
def reject(&block)
|
156
|
-
|
157
|
-
|
158
|
-
yielder.yield(k,v) unless block
|
243
|
+
self.class.new do |yielder|
|
244
|
+
each do |k,v|
|
245
|
+
yielder.yield(k,v) unless block[k,v]
|
159
246
|
end
|
160
247
|
end
|
161
248
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# Author:: Paweł Wilk (mailto:pw@gnu.org)
|
4
4
|
# Copyright:: (c) 2011 by Paweł Wilk
|
5
|
-
# License:: This program is licensed under the terms of {file:docs/LGPL GNU Lesser General Public License} or {file:COPYING Ruby License}.
|
5
|
+
# License:: This program is licensed under the terms of {file:docs/LGPL GNU Lesser General Public License} or {file:docs/COPYING Ruby License}.
|
6
6
|
#
|
7
7
|
# This file contains inline documentation data
|
8
8
|
# that would make the file with code less readable
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# Author:: Paweł Wilk (mailto:pw@gnu.org)
|
4
4
|
# Copyright:: (c) 2011 by Paweł Wilk
|
5
|
-
# License:: This program is licensed under the terms of {file:docs/LGPL GNU Lesser General Public License} or {file:COPYING Ruby License}.
|
5
|
+
# License:: This program is licensed under the terms of {file:docs/LGPL GNU Lesser General Public License} or {file:docs/COPYING Ruby License}.
|
6
6
|
#
|
7
7
|
# This file contains a class used to set up some options,
|
8
8
|
# for engine.
|
@@ -45,8 +45,8 @@ module I18n
|
|
45
45
|
r = old_attr_accessor(*args)
|
46
46
|
@known ||= Hash.new
|
47
47
|
args.each do |arg|
|
48
|
-
key = '@'
|
49
|
-
@known[key.to_sym] = (OPTION_PREFIX
|
48
|
+
key = '@' << arg.to_s
|
49
|
+
@known[key.to_sym] = ("" << OPTION_PREFIX << arg.to_s).to_sym
|
50
50
|
end
|
51
51
|
r
|
52
52
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
#
|
3
3
|
# Author:: Paweł Wilk (mailto:pw@gnu.org)
|
4
4
|
# Copyright:: (c) 2011 by Paweł Wilk
|
5
|
-
# License:: This program is licensed under the terms of {file:docs/LGPL GNU Lesser General Public License} or {file:COPYING Ruby License}.
|
5
|
+
# License:: This program is licensed under the terms of {file:docs/LGPL GNU Lesser General Public License} or {file:docs/COPYING Ruby License}.
|
6
6
|
#
|
7
7
|
# This file contains version information.
|
8
8
|
|
@@ -14,7 +14,7 @@ module I18n
|
|
14
14
|
# @private
|
15
15
|
EMAIL = 'pw@gnu.org'
|
16
16
|
# @private
|
17
|
-
VERSION = '2.
|
17
|
+
VERSION = '2.6.1'
|
18
18
|
# @private
|
19
19
|
NAME = 'i18n-inflector'
|
20
20
|
# @private
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: i18n-inflector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -48,12 +48,11 @@ cert_chain:
|
|
48
48
|
-----END CERTIFICATE-----
|
49
49
|
|
50
50
|
'
|
51
|
-
date: 2011-
|
52
|
-
default_executable:
|
51
|
+
date: 2011-07-10 00:00:00.000000000Z
|
53
52
|
dependencies:
|
54
53
|
- !ruby/object:Gem::Dependency
|
55
54
|
name: i18n
|
56
|
-
requirement: &
|
55
|
+
requirement: &2155640860 !ruby/object:Gem::Requirement
|
57
56
|
none: false
|
58
57
|
requirements:
|
59
58
|
- - ! '>='
|
@@ -61,10 +60,10 @@ dependencies:
|
|
61
60
|
version: 0.4.1
|
62
61
|
type: :runtime
|
63
62
|
prerelease: false
|
64
|
-
version_requirements: *
|
63
|
+
version_requirements: *2155640860
|
65
64
|
- !ruby/object:Gem::Dependency
|
66
65
|
name: hoe-yard
|
67
|
-
requirement: &
|
66
|
+
requirement: &2155640120 !ruby/object:Gem::Requirement
|
68
67
|
none: false
|
69
68
|
requirements:
|
70
69
|
- - ! '>='
|
@@ -72,62 +71,73 @@ dependencies:
|
|
72
71
|
version: 0.1.2
|
73
72
|
type: :development
|
74
73
|
prerelease: false
|
75
|
-
version_requirements: *
|
74
|
+
version_requirements: *2155640120
|
76
75
|
- !ruby/object:Gem::Dependency
|
77
76
|
name: test_declarative
|
78
|
-
requirement: &
|
77
|
+
requirement: &2155639320 !ruby/object:Gem::Requirement
|
79
78
|
none: false
|
80
79
|
requirements:
|
81
80
|
- - ! '>='
|
82
81
|
- !ruby/object:Gem::Version
|
83
|
-
version: 0.0.
|
82
|
+
version: 0.0.5
|
84
83
|
type: :development
|
85
84
|
prerelease: false
|
86
|
-
version_requirements: *
|
85
|
+
version_requirements: *2155639320
|
87
86
|
- !ruby/object:Gem::Dependency
|
88
87
|
name: yard
|
89
|
-
requirement: &
|
88
|
+
requirement: &2155638560 !ruby/object:Gem::Requirement
|
90
89
|
none: false
|
91
90
|
requirements:
|
92
91
|
- - ! '>='
|
93
92
|
- !ruby/object:Gem::Version
|
94
|
-
version: 0.
|
93
|
+
version: 0.7.2
|
95
94
|
type: :development
|
96
95
|
prerelease: false
|
97
|
-
version_requirements: *
|
96
|
+
version_requirements: *2155638560
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rdoc
|
99
|
+
requirement: &2155637560 !ruby/object:Gem::Requirement
|
100
|
+
none: false
|
101
|
+
requirements:
|
102
|
+
- - ! '>='
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: 3.8.0
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: *2155637560
|
98
108
|
- !ruby/object:Gem::Dependency
|
99
109
|
name: bundler
|
100
|
-
requirement: &
|
110
|
+
requirement: &2155635360 !ruby/object:Gem::Requirement
|
101
111
|
none: false
|
102
112
|
requirements:
|
103
113
|
- - ! '>='
|
104
114
|
- !ruby/object:Gem::Version
|
105
|
-
version: 1.0.
|
115
|
+
version: 1.0.15
|
106
116
|
type: :development
|
107
117
|
prerelease: false
|
108
|
-
version_requirements: *
|
118
|
+
version_requirements: *2155635360
|
109
119
|
- !ruby/object:Gem::Dependency
|
110
120
|
name: hoe-bundler
|
111
|
-
requirement: &
|
121
|
+
requirement: &2155634420 !ruby/object:Gem::Requirement
|
112
122
|
none: false
|
113
123
|
requirements:
|
114
124
|
- - ! '>='
|
115
125
|
- !ruby/object:Gem::Version
|
116
|
-
version: 1.
|
126
|
+
version: 1.1.0
|
117
127
|
type: :development
|
118
128
|
prerelease: false
|
119
|
-
version_requirements: *
|
129
|
+
version_requirements: *2155634420
|
120
130
|
- !ruby/object:Gem::Dependency
|
121
131
|
name: hoe
|
122
|
-
requirement: &
|
132
|
+
requirement: &2155633700 !ruby/object:Gem::Requirement
|
123
133
|
none: false
|
124
134
|
requirements:
|
125
|
-
- -
|
135
|
+
- - ~>
|
126
136
|
- !ruby/object:Gem::Version
|
127
|
-
version: 2.
|
137
|
+
version: '2.10'
|
128
138
|
type: :development
|
129
139
|
prerelease: false
|
130
|
-
version_requirements: *
|
140
|
+
version_requirements: *2155633700
|
131
141
|
description: Enhances simple I18n backend so that it inflects translations using pattern
|
132
142
|
interpolation.
|
133
143
|
email:
|
@@ -140,12 +150,14 @@ files:
|
|
140
150
|
- .yardopts
|
141
151
|
- ChangeLog
|
142
152
|
- Gemfile
|
153
|
+
- Gemfile.lock
|
143
154
|
- LGPL-LICENSE
|
144
155
|
- Manifest.txt
|
145
156
|
- README.rdoc
|
146
157
|
- Rakefile
|
147
158
|
- ci/i18n-inflector.gemspec
|
148
159
|
- ci/i18nv4-Gemfile
|
160
|
+
- ci/i18nv4-Gemfile.lock
|
149
161
|
- docs/COPYING
|
150
162
|
- docs/EXAMPLES
|
151
163
|
- docs/HISTORY
|
@@ -172,13 +184,12 @@ files:
|
|
172
184
|
- test/inflector_test.rb
|
173
185
|
- test/test_helper.rb
|
174
186
|
- .gemtest
|
175
|
-
has_rdoc: true
|
176
187
|
homepage: https://rubygems.org/gems/i18n-inflector/
|
177
188
|
licenses: []
|
178
189
|
post_install_message:
|
179
190
|
rdoc_options:
|
180
191
|
- --title
|
181
|
-
-
|
192
|
+
- I18n::Inflector Documentation
|
182
193
|
- --quiet
|
183
194
|
require_paths:
|
184
195
|
- lib
|
@@ -190,7 +201,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
190
201
|
version: '0'
|
191
202
|
segments:
|
192
203
|
- 0
|
193
|
-
hash: -
|
204
|
+
hash: -4582047018279432324
|
194
205
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
195
206
|
none: false
|
196
207
|
requirements:
|
@@ -199,7 +210,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
199
210
|
version: '0'
|
200
211
|
requirements: []
|
201
212
|
rubyforge_project: i18n-inflector
|
202
|
-
rubygems_version: 1.5
|
213
|
+
rubygems_version: 1.8.5
|
203
214
|
signing_key:
|
204
215
|
specification_version: 3
|
205
216
|
summary: Simple inflection module for I18n
|