merb_global 0.0.2 → 0.0.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/HISTORY +3 -0
- data/Rakefile +2 -1
- data/lib/merb_global/plural.rb +6 -1
- data/lib/merb_global/plural.treetop +267 -0
- data/lib/merb_global/providers/data_mapper.rb +1 -1
- metadata +12 -2
data/HISTORY
CHANGED
data/Rakefile
CHANGED
@@ -5,7 +5,7 @@ require 'spec/rake/spectask'
|
|
5
5
|
|
6
6
|
PLUGIN = "merb_global"
|
7
7
|
NAME = "merb_global"
|
8
|
-
GEM_VERSION = "0.0.
|
8
|
+
GEM_VERSION = "0.0.3"
|
9
9
|
AUTHORS = ["Alex Coles", "Maciej Piechotka"]
|
10
10
|
EMAIL = "alex@alexcolesportfolio.com"
|
11
11
|
HOMEPAGE = "http://trac.ikonoklastik.com/merb_global/"
|
@@ -21,6 +21,7 @@ spec = Gem::Specification.new do |s|
|
|
21
21
|
s.email = EMAIL
|
22
22
|
s.homepage = HOMEPAGE
|
23
23
|
s.add_dependency('merb-core', '>= 0.9.1')
|
24
|
+
s.add_dependency('treetop', '>= 1.2.3') # Tested on 1.2.3
|
24
25
|
s.require_path = 'lib'
|
25
26
|
s.autorequire = PLUGIN
|
26
27
|
s.files = %w(LICENSE README Rakefile TODO HISTORY) +
|
data/lib/merb_global/plural.rb
CHANGED
@@ -1,6 +1,11 @@
|
|
1
|
+
require 'treetop'
|
2
|
+
|
1
3
|
module Merb
|
2
4
|
module Global
|
3
5
|
module Plural
|
6
|
+
path = (Pathname.new(__FILE__).dirname.expand_path + 'plural')
|
7
|
+
@parser = Treetop.load(path.to_s).new
|
8
|
+
|
4
9
|
# Returns which form should be returned
|
5
10
|
# ==== Parameters
|
6
11
|
# n<Fixnum>:: A number of elements
|
@@ -8,7 +13,7 @@ module Merb
|
|
8
13
|
# ==== Returns
|
9
14
|
# Fixnum:: Which form should be translated
|
10
15
|
def self.which_form(n, plural)
|
11
|
-
|
16
|
+
@parser.parse(plural).to_lambda.call(n)
|
12
17
|
end
|
13
18
|
end
|
14
19
|
end
|
@@ -0,0 +1,267 @@
|
|
1
|
+
module Merb
|
2
|
+
module Global
|
3
|
+
grammar Plural
|
4
|
+
rule expression
|
5
|
+
comma
|
6
|
+
end
|
7
|
+
|
8
|
+
rule comma
|
9
|
+
ternary ',' comma {
|
10
|
+
def to_lambda
|
11
|
+
comma.to_lambda
|
12
|
+
end
|
13
|
+
}
|
14
|
+
/
|
15
|
+
ternary
|
16
|
+
end
|
17
|
+
|
18
|
+
rule ternary
|
19
|
+
logop '?' if_true:ternary ':' if_false:ternary {
|
20
|
+
def to_lambda
|
21
|
+
lambda do |n|
|
22
|
+
if logop.to_lambda.call(n) != 0
|
23
|
+
if_true.to_lambda.call(n)
|
24
|
+
else
|
25
|
+
if_false.to_lambda.call(n)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
}
|
30
|
+
/
|
31
|
+
logop
|
32
|
+
end
|
33
|
+
|
34
|
+
rule logop
|
35
|
+
bitop '&&' logop {
|
36
|
+
def to_lambda
|
37
|
+
lambda do |n|
|
38
|
+
bitop.to_lambda.call(n) && logop.to_lambda.call(n) ? 1 : 0
|
39
|
+
end
|
40
|
+
end
|
41
|
+
}
|
42
|
+
/
|
43
|
+
bitop '||' bitop {
|
44
|
+
def to_lambda
|
45
|
+
lambda do |n|
|
46
|
+
bitop.to_lambda.call(n) || logop.to_lambda.call(n) ? 1 : 0
|
47
|
+
end
|
48
|
+
end
|
49
|
+
}
|
50
|
+
/
|
51
|
+
bitop
|
52
|
+
end
|
53
|
+
|
54
|
+
rule bitop
|
55
|
+
equality '&' bitop {
|
56
|
+
def to_lambda
|
57
|
+
lambda do |n|
|
58
|
+
equality.to_lambda.call(n) & bitop.to_lambda.call(n)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
}
|
62
|
+
/
|
63
|
+
equality '^' bitop {
|
64
|
+
def to_lambda
|
65
|
+
lambda do |n|
|
66
|
+
equality.to_lambda.call(n) ^ bitop.to_lambda.call(n)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
}
|
70
|
+
/
|
71
|
+
equality '|' bitop {
|
72
|
+
def to_lambda
|
73
|
+
lambda do |n|
|
74
|
+
equality.to_lambda.call(n) | bitop.to_lambda.call(n)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
}
|
78
|
+
/
|
79
|
+
equality
|
80
|
+
end
|
81
|
+
|
82
|
+
rule equality
|
83
|
+
relation '==' equality {
|
84
|
+
def to_lambda
|
85
|
+
lambda do |n|
|
86
|
+
relation.to_lambda.call(n) == equality.to_lambda.call(n) ? 1 : 0
|
87
|
+
end
|
88
|
+
end
|
89
|
+
}
|
90
|
+
/
|
91
|
+
relation '!=' equality {
|
92
|
+
def to_lambda
|
93
|
+
lambda do |n|
|
94
|
+
relation.to_lambda.call(n) != equality.to_lambda.call(n) ? 0 : 1
|
95
|
+
end
|
96
|
+
end
|
97
|
+
}
|
98
|
+
/
|
99
|
+
relation
|
100
|
+
end
|
101
|
+
|
102
|
+
rule relation
|
103
|
+
bitwise '<' relation {
|
104
|
+
def to_lambda
|
105
|
+
lambda do |n|
|
106
|
+
bitwise.to_lambda.call(n) < relation.to_lambda.call(n) ? 1 : 0
|
107
|
+
end
|
108
|
+
end
|
109
|
+
}
|
110
|
+
/
|
111
|
+
bitwise '<=' relation {
|
112
|
+
def to_lambda
|
113
|
+
lambda do |n|
|
114
|
+
bitwise.to_lambda.call(n) <= relation.to_lambda.call(n) ? 1 : 0
|
115
|
+
end
|
116
|
+
end
|
117
|
+
}
|
118
|
+
/
|
119
|
+
bitwise '>' relation {
|
120
|
+
def to_lambda
|
121
|
+
lambda do |n|
|
122
|
+
bitwise.to_lambda.call(n) > relation.to_lambda.call(n) ? 1 : 0
|
123
|
+
end
|
124
|
+
end
|
125
|
+
}
|
126
|
+
/
|
127
|
+
bitwise '>=' relation {
|
128
|
+
def to_lambda
|
129
|
+
lambda do |n|
|
130
|
+
bitwise.to_lambda.call(n) >= relation.to_lambda.call(n) ? 1 : 0
|
131
|
+
end
|
132
|
+
end
|
133
|
+
}
|
134
|
+
/
|
135
|
+
bitwise
|
136
|
+
end
|
137
|
+
|
138
|
+
rule bitwise
|
139
|
+
addition '<<' bitwise {
|
140
|
+
def to_lambda
|
141
|
+
lambda do |n|
|
142
|
+
addition.to_lambda.call(n) << bitwise.to_lambda.call(n)
|
143
|
+
end
|
144
|
+
end
|
145
|
+
}
|
146
|
+
/
|
147
|
+
addition '>>' bitwise {
|
148
|
+
def to_lambda
|
149
|
+
lambda do |n|
|
150
|
+
addition.to_lambda.call(n) >> bitwise.to_lambda.call(n)
|
151
|
+
end
|
152
|
+
end
|
153
|
+
}
|
154
|
+
/
|
155
|
+
addition
|
156
|
+
end
|
157
|
+
|
158
|
+
rule addition
|
159
|
+
multiplication '+' addition {
|
160
|
+
def to_lambda
|
161
|
+
lambda do |n|
|
162
|
+
multiplication.to_lambda.call(n) + addition.to_lambda.call(n)
|
163
|
+
end
|
164
|
+
end
|
165
|
+
}
|
166
|
+
/
|
167
|
+
multiplication '-' addition {
|
168
|
+
def to_lambda
|
169
|
+
lambda do |n|
|
170
|
+
multiplication.to_lambda.call(n) - addition.to_lambda.call(n)
|
171
|
+
end
|
172
|
+
end
|
173
|
+
}
|
174
|
+
/
|
175
|
+
multiplication
|
176
|
+
end
|
177
|
+
|
178
|
+
rule multiplication
|
179
|
+
unary '*' multiplication {
|
180
|
+
def to_lambda
|
181
|
+
lambda do |n|
|
182
|
+
unary.to_lambda.call(n) * multiplication.to_lambda.call(n)
|
183
|
+
end
|
184
|
+
end
|
185
|
+
}
|
186
|
+
/
|
187
|
+
unary '/' multiplication {
|
188
|
+
def to_lambda
|
189
|
+
lambda do |n|
|
190
|
+
unary.to_lambda.call(n) / multiplication.to_lambda.call(n)
|
191
|
+
end
|
192
|
+
end
|
193
|
+
}
|
194
|
+
/
|
195
|
+
unary '%' multiplication {
|
196
|
+
def to_lambda
|
197
|
+
lambda do |n|
|
198
|
+
unary.to_lambda.call(n) % multiplication.to_lambda.call(n)
|
199
|
+
end
|
200
|
+
end
|
201
|
+
}
|
202
|
+
/
|
203
|
+
unary
|
204
|
+
end
|
205
|
+
|
206
|
+
rule unary
|
207
|
+
'+' base {
|
208
|
+
def to_lambda
|
209
|
+
base.to_lambda
|
210
|
+
end
|
211
|
+
}
|
212
|
+
/
|
213
|
+
'-' base {
|
214
|
+
def to_lambda
|
215
|
+
lambda {|n| -base.to_lambda.call(n)}
|
216
|
+
end
|
217
|
+
}
|
218
|
+
/
|
219
|
+
'!' base {
|
220
|
+
def to_lambda
|
221
|
+
lambda {|n| base.to_lambda.call(n) == 0 ? 1 : 0}
|
222
|
+
end
|
223
|
+
}
|
224
|
+
/
|
225
|
+
'~' base {
|
226
|
+
def to_lambda
|
227
|
+
lambda {|n| ~base.call(n)}
|
228
|
+
end
|
229
|
+
}
|
230
|
+
/
|
231
|
+
base
|
232
|
+
end
|
233
|
+
|
234
|
+
rule base
|
235
|
+
space* base_wospace space* {
|
236
|
+
def to_lambda
|
237
|
+
base_wospace.to_lambda
|
238
|
+
end
|
239
|
+
}
|
240
|
+
end
|
241
|
+
|
242
|
+
rule base_wospace
|
243
|
+
'(' expression ')' {
|
244
|
+
def to_lambda
|
245
|
+
expression.to_lambda
|
246
|
+
end
|
247
|
+
}
|
248
|
+
/
|
249
|
+
'n' {
|
250
|
+
def to_lambda
|
251
|
+
lambda {|n| n}
|
252
|
+
end
|
253
|
+
}
|
254
|
+
/
|
255
|
+
[0-9]+ {
|
256
|
+
def to_lambda
|
257
|
+
lambda {|n| text_value.to_i}
|
258
|
+
end
|
259
|
+
}
|
260
|
+
end
|
261
|
+
|
262
|
+
rule space
|
263
|
+
" " / "\n" / "\t"
|
264
|
+
end
|
265
|
+
end
|
266
|
+
end
|
267
|
+
end
|
@@ -38,7 +38,7 @@ module Merb
|
|
38
38
|
include ::DataMapper::Resource
|
39
39
|
storage_names[:default] = 'merb_global_languages'
|
40
40
|
property :id, Integer, :serial => true
|
41
|
-
property :name, String, :
|
41
|
+
property :name, String, :unique_index => true
|
42
42
|
property :plural, Text, :lazy => false
|
43
43
|
# validates_is_unique :name
|
44
44
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: merb_global
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Coles
|
@@ -10,7 +10,7 @@ autorequire: merb_global
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2008-06-
|
13
|
+
date: 2008-06-04 00:00:00 +02:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -22,6 +22,15 @@ dependencies:
|
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: 0.9.1
|
24
24
|
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: treetop
|
27
|
+
version_requirement:
|
28
|
+
version_requirements: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.2.3
|
33
|
+
version:
|
25
34
|
description: Localization (L10n) and Internationalization (i18n) support for the Merb MVC Framework
|
26
35
|
email: alex@alexcolesportfolio.com
|
27
36
|
executables: []
|
@@ -43,6 +52,7 @@ files:
|
|
43
52
|
- lib/merb_global/plural.rb
|
44
53
|
- lib/merb_global/providers.rb
|
45
54
|
- lib/merb_global/provider.rb
|
55
|
+
- lib/merb_global/plural.treetop
|
46
56
|
- lib/merb_global/config.rb
|
47
57
|
- lib/merb_global/controller.rb
|
48
58
|
- lib/merb_global/base.rb
|