interpret 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,8 +4,10 @@ module Interpret
4
4
  default_scope order('locale ASC')
5
5
  validates_uniqueness_of :key, :scope => :locale
6
6
  validates_presence_of :locale
7
+ validate :key_format
7
8
 
8
9
  after_update :set_stale
10
+ before_validation :downcase_key
9
11
 
10
12
  scope :stale, where(:stale => true)
11
13
 
@@ -20,6 +22,14 @@ module Interpret
20
22
  Translation.where(:key => key).where(Translation.arel_table[:locale].not_eq(locale)).update_all({:stale => true})
21
23
  end
22
24
 
25
+ def downcase_key
26
+ self.key = key.downcase
27
+ end
28
+
29
+ def key_format
30
+ errors.add(:key, "has an invalid format") unless key =~ /^[a-zA-Z0-9\._]+$/
31
+ end
32
+
23
33
  class << self
24
34
 
25
35
  def allowed
data/interpret.gemspec CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
23
23
  s.add_dependency "i18n", "~> 0.6.0"
24
24
  s.add_dependency "i18n-active_record"
25
25
  s.add_dependency "ya2yaml", ">= 0.30.0"
26
- s.add_dependency "best_in_place", "~> 1.0.0"
26
+ s.add_dependency "best_in_place", "~> 1.0"
27
27
  s.add_dependency "lazyhash", ">= 0.1.1"
28
28
  s.add_dependency "cancan", "~> 1.6.0"
29
29
 
@@ -1,3 +1,3 @@
1
1
  module Interpret
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
@@ -302,4 +302,29 @@ es:
302
302
  Interpret::Translation.locale("pt").find_by_key("p1").stale?.should be_false
303
303
  end
304
304
  end
305
+
306
+ describe "downcase key" do
307
+ it "should be performed before validation" do
308
+ subject.key = "PayPal.resume"
309
+ subject.save!
310
+ subject.key.should == "paypal.resume"
311
+ end
312
+ end
313
+
314
+ describe "key format" do
315
+ it "should not allow spaces" do
316
+ subject.key = "not allowed spaces"
317
+ subject.should_not be_valid
318
+ end
319
+
320
+ it "should not allow -" do
321
+ subject.key = "not-allowed"
322
+ subject.should_not be_valid
323
+ end
324
+
325
+ it "should allow _" do
326
+ subject.key = "some_key.other_key"
327
+ subject.should be_valid
328
+ end
329
+ end
305
330
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: interpret
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-23 00:00:00.000000000 Z
12
+ date: 2012-05-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &71763650 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '3.1'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *71763650
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '3.1'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: i18n
27
- requirement: &71763160 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ~>
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: 0.6.0
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *71763160
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 0.6.0
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: i18n-active_record
38
- requirement: &71762760 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '0'
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *71762760
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: ya2yaml
49
- requirement: &71762350 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,21 +69,31 @@ dependencies:
54
69
  version: 0.30.0
55
70
  type: :runtime
56
71
  prerelease: false
57
- version_requirements: *71762350
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 0.30.0
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: best_in_place
60
- requirement: &71761950 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ~>
64
84
  - !ruby/object:Gem::Version
65
- version: 1.0.0
85
+ version: '1.0'
66
86
  type: :runtime
67
87
  prerelease: false
68
- version_requirements: *71761950
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: '1.0'
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: lazyhash
71
- requirement: &71760620 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ! '>='
@@ -76,10 +101,15 @@ dependencies:
76
101
  version: 0.1.1
77
102
  type: :runtime
78
103
  prerelease: false
79
- version_requirements: *71760620
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: 0.1.1
80
110
  - !ruby/object:Gem::Dependency
81
111
  name: cancan
82
- requirement: &71758700 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
83
113
  none: false
84
114
  requirements:
85
115
  - - ~>
@@ -87,10 +117,15 @@ dependencies:
87
117
  version: 1.6.0
88
118
  type: :runtime
89
119
  prerelease: false
90
- version_requirements: *71758700
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 1.6.0
91
126
  - !ruby/object:Gem::Dependency
92
127
  name: rspec-rails
93
- requirement: &71866240 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
94
129
  none: false
95
130
  requirements:
96
131
  - - ~>
@@ -98,10 +133,15 @@ dependencies:
98
133
  version: '2.5'
99
134
  type: :development
100
135
  prerelease: false
101
- version_requirements: *71866240
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: '2.5'
102
142
  - !ruby/object:Gem::Dependency
103
143
  name: capybara
104
- requirement: &71865910 !ruby/object:Gem::Requirement
144
+ requirement: !ruby/object:Gem::Requirement
105
145
  none: false
106
146
  requirements:
107
147
  - - ~>
@@ -109,10 +149,15 @@ dependencies:
109
149
  version: 1.0.1
110
150
  type: :development
111
151
  prerelease: false
112
- version_requirements: *71865910
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: 1.0.1
113
158
  - !ruby/object:Gem::Dependency
114
159
  name: launchy
115
- requirement: &71865660 !ruby/object:Gem::Requirement
160
+ requirement: !ruby/object:Gem::Requirement
116
161
  none: false
117
162
  requirements:
118
163
  - - ! '>='
@@ -120,7 +165,12 @@ dependencies:
120
165
  version: '0'
121
166
  type: :development
122
167
  prerelease: false
123
- version_requirements: *71865660
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
124
174
  description: Manage your app translations with an i18n active_record backend
125
175
  email:
126
176
  - roger@itnig.net
@@ -264,21 +314,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
264
314
  - - ! '>='
265
315
  - !ruby/object:Gem::Version
266
316
  version: '0'
267
- segments:
268
- - 0
269
- hash: -372104909
270
317
  required_rubygems_version: !ruby/object:Gem::Requirement
271
318
  none: false
272
319
  requirements:
273
320
  - - ! '>='
274
321
  - !ruby/object:Gem::Version
275
322
  version: '0'
276
- segments:
277
- - 0
278
- hash: -372104909
279
323
  requirements: []
280
324
  rubyforge_project: interpret
281
- rubygems_version: 1.8.10
325
+ rubygems_version: 1.8.18
282
326
  signing_key:
283
327
  specification_version: 3
284
328
  summary: Manage your app translations with an i18n active_record backend