protokoll 0.3.1 → 0.4.0
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/MIT-LICENSE +1 -1
- data/README.rdoc +28 -1
- data/lib/generators/protokoll/migration/migration_generator.rb +24 -0
- data/lib/generators/protokoll/migration/templates/create_custom_auto_increments.rb +15 -0
- data/lib/protokoll/counter.rb +33 -0
- data/lib/protokoll/formater.rb +79 -0
- data/lib/protokoll/models/custom_auto_increment.rb +8 -0
- data/lib/protokoll/protokoll.rb +34 -0
- data/lib/protokoll/version.rb +1 -1
- data/lib/protokoll.rb +4 -37
- data/test/dummy/app/models/call_defined_in_tests.rb +7 -0
- data/test/dummy/app/models/protocol_defined_in_tests.rb +7 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/migrate/20120222164124_create_custom_auto_increments.rb +15 -0
- data/test/dummy/db/schema.rb +16 -7
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +424 -0
- data/test/dummy/log/test.log +212148 -0
- data/test/protokoll_test.rb +251 -121
- metadata +21 -20
- data/lib/protokoll/auto_increment.rb +0 -95
- data/lib/protokoll/class_variable.rb +0 -13
- data/lib/protokoll/extract_number.rb +0 -25
- data/test/dummy/app/models/call.rb +0 -3
- data/test/dummy/app/models/principal.rb +0 -2
- data/test/dummy/app/models/protocol.rb +0 -3
- data/test/dummy/db/migrate/20110923101536_create_principals.rb +0 -9
data/test/protokoll_test.rb
CHANGED
@@ -5,213 +5,343 @@ class ProtokollTest < ActiveSupport::TestCase
|
|
5
5
|
def setup
|
6
6
|
time = Time.local(2011, 9, 25, 12, 0, 0)
|
7
7
|
Timecop.travel(time)
|
8
|
-
|
9
|
-
Protocol.protokoll.count = 0
|
10
8
|
end
|
11
9
|
|
10
|
+
def teardown
|
11
|
+
reset_models
|
12
|
+
end
|
13
|
+
|
14
|
+
def reset_models
|
15
|
+
ProtokollTest.send(:remove_const, 'Protocol') if defined? Protocol
|
16
|
+
ProtokollTest.send(:remove_const, 'Call') if defined? Call
|
17
|
+
end
|
18
|
+
|
19
|
+
##
|
20
|
+
# Tests
|
21
|
+
##
|
22
|
+
|
12
23
|
test "using new number_symbol with default pattern should get 20110900001" do
|
13
|
-
Protocol
|
14
|
-
|
24
|
+
class Protocol < ActiveRecord::Base
|
25
|
+
protokoll :number, :pattern => "%Y%m$$$$$", :number_symbol => "$"
|
26
|
+
end
|
27
|
+
|
28
|
+
protocol = Protocol.create
|
29
|
+
assert_equal "20110900001", protocol.number
|
30
|
+
end
|
31
|
+
|
32
|
+
test "should get 20110900001 (format number %Y%m#####)" do
|
33
|
+
class Protocol < ActiveRecord::Base
|
34
|
+
protokoll :number
|
35
|
+
end
|
36
|
+
|
37
|
+
protocol = Protocol.create
|
38
|
+
assert_equal "20110900001", protocol.number
|
39
|
+
end
|
40
|
+
|
41
|
+
test "should get 20110900002 for second save (format number %Y%m#####)" do
|
42
|
+
class Protocol < ActiveRecord::Base
|
43
|
+
protokoll :number
|
44
|
+
end
|
15
45
|
|
16
46
|
protocol1 = Protocol.create
|
17
|
-
|
47
|
+
protocol2 = Protocol.create
|
48
|
+
|
49
|
+
assert_equal "20110900002", protocol2.number
|
18
50
|
end
|
19
51
|
|
20
|
-
test "
|
21
|
-
Protocol
|
22
|
-
|
52
|
+
test "should get 201100002 for second save (format number %Y#####)" do
|
53
|
+
class Protocol < ActiveRecord::Base
|
54
|
+
protokoll :number, :pattern => "%Y#####"
|
55
|
+
end
|
56
|
+
|
23
57
|
protocol = Protocol.create
|
24
|
-
|
58
|
+
|
59
|
+
assert_equal "201100001", protocol.number
|
25
60
|
end
|
26
61
|
|
27
|
-
test "second protocol on DB should have number should equals
|
28
|
-
Protocol
|
62
|
+
test "second protocol on DB should have number should equals 1" do
|
63
|
+
class Protocol < ActiveRecord::Base
|
64
|
+
protokoll :number, :pattern => "#"
|
65
|
+
end
|
29
66
|
|
30
|
-
Protocol.create
|
31
67
|
protocol = Protocol.create
|
32
|
-
assert_equal "
|
68
|
+
assert_equal "1", protocol.number
|
33
69
|
end
|
34
|
-
|
70
|
+
|
35
71
|
test "third protocol on DB should have number should equals 3" do
|
36
|
-
Protocol
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
72
|
+
class Protocol < ActiveRecord::Base
|
73
|
+
protokoll :number, :pattern => "#"
|
74
|
+
end
|
75
|
+
|
76
|
+
Protocol.new.save
|
77
|
+
Protocol.new.save
|
78
|
+
protocol3 = Protocol.new
|
79
|
+
protocol3.save
|
80
|
+
|
41
81
|
assert_equal "3", protocol3.number
|
42
82
|
end
|
43
|
-
|
83
|
+
|
44
84
|
test "first using format A# should get A1" do
|
45
|
-
Protocol
|
46
|
-
|
47
|
-
|
85
|
+
class Protocol < ActiveRecord::Base
|
86
|
+
protokoll :number, :pattern => "A#"
|
87
|
+
end
|
88
|
+
|
89
|
+
protocol1 = Protocol.new
|
90
|
+
protocol1.save
|
91
|
+
|
48
92
|
assert_equal "A1", protocol1.number
|
49
93
|
end
|
50
94
|
|
51
|
-
test "second using format A# should get A2" do
|
52
|
-
Protocol.protokoll.pattern = "A#"
|
53
|
-
|
54
|
-
protocol1 = Protocol.create
|
55
|
-
protocol2 = Protocol.create
|
56
|
-
assert_equal "A2", protocol2.number
|
57
|
-
end
|
58
|
-
|
59
95
|
test "first using format A## should get A01" do
|
60
|
-
Protocol
|
61
|
-
|
96
|
+
class Protocol < ActiveRecord::Base
|
97
|
+
protokoll :number, :pattern => "A##"
|
98
|
+
end
|
99
|
+
|
62
100
|
protocol1 = Protocol.create
|
63
101
|
assert_equal "A01", protocol1.number
|
64
102
|
end
|
65
|
-
|
103
|
+
|
66
104
|
test "second using format A## should get A02" do
|
67
|
-
Protocol
|
68
|
-
|
105
|
+
class Protocol < ActiveRecord::Base
|
106
|
+
protokoll :number, :pattern => "A##"
|
107
|
+
end
|
108
|
+
|
69
109
|
protocol1 = Protocol.create
|
70
110
|
protocol2 = Protocol.create
|
71
111
|
assert_equal "A02", protocol2.number
|
72
112
|
end
|
73
|
-
|
113
|
+
|
74
114
|
test "third using format A## should get A03" do
|
75
|
-
Protocol
|
76
|
-
|
115
|
+
class Protocol < ActiveRecord::Base
|
116
|
+
protokoll :number, :pattern => "A##"
|
117
|
+
end
|
118
|
+
|
77
119
|
protocol1 = Protocol.create
|
78
120
|
protocol2 = Protocol.create
|
79
121
|
protocol3 = Protocol.create
|
80
122
|
assert_equal "A03", protocol3.number
|
81
123
|
end
|
82
|
-
|
124
|
+
|
83
125
|
test "first use of %y# should get 111" do
|
84
|
-
Protocol
|
85
|
-
|
126
|
+
class Protocol < ActiveRecord::Base
|
127
|
+
protokoll :number, :pattern => "%y#"
|
128
|
+
end
|
129
|
+
|
86
130
|
protocol1 = Protocol.create
|
87
131
|
assert_equal "111", protocol1.number
|
88
132
|
end
|
89
|
-
|
90
|
-
|
91
|
-
Protocol.protokoll.pattern = "%y##"
|
92
|
-
|
93
|
-
protocol1 = Protocol.create
|
94
|
-
assert_equal "1101", protocol1.number
|
95
|
-
end
|
96
|
-
|
133
|
+
|
134
|
+
#
|
97
135
|
test "first use of %y%m## should get 110901" do
|
98
|
-
Protocol
|
99
|
-
|
136
|
+
class Protocol < ActiveRecord::Base
|
137
|
+
protokoll :number, :pattern => "%y%m##"
|
138
|
+
end
|
139
|
+
|
100
140
|
protocol1 = Protocol.create
|
101
141
|
assert_equal "110901", protocol1.number
|
102
142
|
end
|
103
|
-
|
104
|
-
test "
|
105
|
-
Protocol
|
106
|
-
|
107
|
-
|
143
|
+
#
|
144
|
+
test "using %y%m## on next month after should get 111001" do
|
145
|
+
class Protocol < ActiveRecord::Base
|
146
|
+
protokoll :number, :pattern => "%y%m##"
|
147
|
+
end
|
148
|
+
|
149
|
+
time = Time.local(2011, 9, 25, 12, 0, 0)
|
150
|
+
Timecop.travel(time)
|
151
|
+
|
152
|
+
Protocol.create
|
153
|
+
Protocol.create
|
154
|
+
|
108
155
|
Timecop.travel(Time.now + 1.month)
|
109
|
-
|
110
|
-
|
111
|
-
assert_equal "111001",
|
112
|
-
end
|
113
|
-
|
114
|
-
test "%y%m%H#### should get 1109120001" do
|
115
|
-
Protocol.protokoll.pattern = "%y%m%H####"
|
116
|
-
|
117
|
-
protocol1 = Protocol.create
|
118
|
-
|
119
|
-
assert_equal "1109120001", protocol1.number
|
156
|
+
|
157
|
+
protocol = Protocol.create
|
158
|
+
assert_equal "111001", protocol.number
|
120
159
|
end
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
160
|
+
|
161
|
+
test "%y%m%H#### should get 1109120001" do
|
162
|
+
class Protocol < ActiveRecord::Base
|
163
|
+
protokoll :number, :pattern => "%y%m%H####"
|
164
|
+
end
|
165
|
+
|
166
|
+
protocol1 = Protocol.create
|
167
|
+
|
168
|
+
assert_equal "1109120001", protocol1.number
|
169
|
+
end
|
170
|
+
|
171
|
+
test "%y## on next year should get 1201" do
|
172
|
+
class Protocol < ActiveRecord::Base
|
173
|
+
protokoll :number, :pattern => "%y##"
|
174
|
+
end
|
175
|
+
|
176
|
+
time = Time.local(2011, 9, 25, 12, 3, 0) # 2011
|
126
177
|
protocol1 = Protocol.create
|
127
|
-
time = Time.local(2012, 9, 25, 12, 3, 0) # exactly 1 year after
|
178
|
+
time = Time.local(2012, 9, 25, 12, 3, 0) # 2012 - exactly 1 year after
|
128
179
|
Timecop.travel(time)
|
129
|
-
|
180
|
+
|
130
181
|
protocol2 = Protocol.create
|
131
|
-
|
182
|
+
|
132
183
|
assert_equal "1201", protocol2.number
|
133
|
-
|
134
|
-
|
184
|
+
end
|
185
|
+
|
135
186
|
test "500.time create using %y%m%H#### should get 1109120500" do
|
136
|
-
Protocol
|
137
|
-
|
187
|
+
class Protocol < ActiveRecord::Base
|
188
|
+
protokoll :number, :pattern => "%y%m%H####"
|
189
|
+
end
|
190
|
+
|
138
191
|
500.times { Protocol.create }
|
139
|
-
|
192
|
+
|
140
193
|
assert_equal "1109120500", Protocol.last.number
|
141
194
|
end
|
142
|
-
|
195
|
+
|
143
196
|
test "PROT%H%m%y#### should get PROT%H%m%y0001" do
|
144
|
-
Protocol
|
145
|
-
|
197
|
+
class Protocol < ActiveRecord::Base
|
198
|
+
protokoll :number, :pattern => "PROT%H%m%y####"
|
199
|
+
end
|
200
|
+
|
146
201
|
protocol1 = Protocol.create
|
147
|
-
|
202
|
+
|
148
203
|
assert_equal "PROT1209110001", protocol1.number
|
149
204
|
end
|
150
|
-
|
205
|
+
|
151
206
|
test "PROT%Y%m%H#### should get PROT201109120001" do
|
152
|
-
Protocol
|
153
|
-
|
207
|
+
class Protocol < ActiveRecord::Base
|
208
|
+
protokoll :number, :pattern => "PROT%Y%m%H####"
|
209
|
+
end
|
210
|
+
|
154
211
|
protocol1 = Protocol.create
|
155
|
-
|
212
|
+
|
156
213
|
assert_equal "PROT201109120001", protocol1.number
|
157
214
|
end
|
158
|
-
|
215
|
+
|
159
216
|
test "use of sufix ####PROTO should get 0001PROTO" do
|
160
|
-
Protocol
|
161
|
-
|
217
|
+
class Protocol < ActiveRecord::Base
|
218
|
+
protokoll :number, :pattern => "####PROTO"
|
219
|
+
end
|
220
|
+
|
162
221
|
protocol1 = Protocol.create
|
163
|
-
|
222
|
+
|
164
223
|
assert_equal "0001PROTO", protocol1.number
|
165
224
|
end
|
166
|
-
|
225
|
+
|
167
226
|
test "use of sufix %Y%M####PROTO on 12:03 should get 2011030001PROTO" do
|
168
|
-
Protocol
|
169
|
-
|
227
|
+
class Protocol < ActiveRecord::Base
|
228
|
+
protokoll :number, :pattern => "%Y%M####PROTO"
|
229
|
+
end
|
230
|
+
|
170
231
|
time = Time.local(2011, 9, 25, 12, 3, 0)
|
171
232
|
Timecop.travel(time)
|
172
|
-
|
233
|
+
|
173
234
|
protocol1 = Protocol.create
|
174
|
-
|
235
|
+
|
175
236
|
assert_equal "2011030001PROTO", protocol1.number
|
176
237
|
end
|
177
|
-
|
238
|
+
|
178
239
|
test "use of sufix %Y%M####PROTO on 12:15 should get 2011150001PROTO" do
|
179
|
-
Protocol
|
180
|
-
|
240
|
+
class Protocol < ActiveRecord::Base
|
241
|
+
protokoll :number, :pattern => "%Y%M####PROTO"
|
242
|
+
end
|
243
|
+
|
181
244
|
time = Time.local(2011, 9, 25, 12, 15, 0)
|
182
245
|
Timecop.travel(time)
|
183
|
-
|
246
|
+
|
184
247
|
protocol1 = Protocol.create
|
185
|
-
|
248
|
+
|
186
249
|
assert_equal "2011150001PROTO", protocol1.number
|
187
250
|
end
|
188
251
|
|
189
252
|
test "using 2 models" do
|
190
|
-
Protocol
|
191
|
-
|
253
|
+
class Protocol < ActiveRecord::Base
|
254
|
+
protokoll :number, :pattern => "%Y##"
|
255
|
+
end
|
192
256
|
|
257
|
+
class Call < ActiveRecord::Base
|
258
|
+
protokoll :number, :pattern => "%Y##"
|
259
|
+
end
|
260
|
+
|
193
261
|
protocol = Protocol.create
|
194
262
|
call = Call.create
|
195
263
|
assert_equal "201101", protocol.number
|
196
264
|
assert_equal "201101", call.number
|
197
265
|
end
|
198
266
|
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
267
|
+
test "using 2 models with different patterns" do
|
268
|
+
class Protocol < ActiveRecord::Base
|
269
|
+
protokoll :number, :pattern => "%YA#"
|
270
|
+
end
|
271
|
+
|
272
|
+
class Call < ActiveRecord::Base
|
273
|
+
protokoll :number, :pattern => "%YB#"
|
274
|
+
end
|
275
|
+
|
276
|
+
protocol = Protocol.create
|
277
|
+
call = Call.create
|
278
|
+
assert_equal "2011A1", protocol.number
|
279
|
+
assert_equal "2011B1", call.number
|
280
|
+
end
|
281
|
+
|
282
|
+
test "updating model should not get a different number" do
|
283
|
+
class Protocol < ActiveRecord::Base
|
284
|
+
protokoll :number, :pattern => "%Y##"
|
285
|
+
end
|
286
|
+
|
287
|
+
protocol = Protocol.new
|
288
|
+
|
289
|
+
protocol.save
|
290
|
+
assert_equal "201101", protocol.number
|
291
|
+
|
292
|
+
protocol.save
|
293
|
+
assert_equal "201101", protocol.number
|
294
|
+
end
|
295
|
+
|
296
|
+
test "reserve_number should set number to instance" do
|
297
|
+
class Protocol < ActiveRecord::Base
|
298
|
+
protokoll :number, :pattern => "%Y##"
|
299
|
+
end
|
300
|
+
|
301
|
+
protocol = Protocol.new
|
302
|
+
protocol.reserve_number!
|
303
|
+
|
304
|
+
assert_equal "201101", protocol.number
|
305
|
+
protocol.save
|
306
|
+
assert_equal "201101", protocol.number
|
307
|
+
|
308
|
+
protocol = Protocol.new
|
309
|
+
protocol.save
|
310
|
+
assert_equal "201102", protocol.number
|
311
|
+
end
|
312
|
+
|
313
|
+
test "reserve_number should assure number if reserved" do
|
314
|
+
class Protocol < ActiveRecord::Base
|
315
|
+
protokoll :number, :pattern => "%Y##"
|
316
|
+
end
|
317
|
+
|
318
|
+
protocol1 = Protocol.new
|
319
|
+
protocol1.reserve_number!
|
320
|
+
|
321
|
+
protocol2 = Protocol.new
|
322
|
+
protocol2.save
|
323
|
+
|
324
|
+
assert_equal "201101", protocol1.number
|
325
|
+
assert_equal "201102", protocol2.number
|
326
|
+
end
|
327
|
+
|
328
|
+
test "reserve_number should assure number if reserved if next month" do
|
329
|
+
class Protocol < ActiveRecord::Base
|
330
|
+
protokoll :number, :pattern => "%Y%m##"
|
331
|
+
end
|
332
|
+
|
333
|
+
protocol1 = Protocol.new
|
334
|
+
protocol1.reserve_number!
|
335
|
+
|
336
|
+
Timecop.travel(Time.now + 1.month)
|
337
|
+
|
338
|
+
protocol2 = Protocol.new
|
339
|
+
protocol2.save!
|
340
|
+
|
341
|
+
assert_equal "20110901", protocol1.number
|
342
|
+
assert_equal "20111001", protocol2.number
|
343
|
+
end
|
344
|
+
|
215
345
|
end
|
216
346
|
|
217
347
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: protokoll
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,22 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2012-02-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &70246610625400 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
|
-
- -
|
19
|
+
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70246610625400
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: sqlite3
|
27
|
-
requirement: &
|
27
|
+
requirement: &70246610622920 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70246610622920
|
36
36
|
description: Rails 3 gem to enable creation of a custom autoincrement Time based string
|
37
37
|
on a model defined by a pattern. ex. 20110001, 20110002, 20110003, 20120001, 20120002...
|
38
38
|
email:
|
@@ -41,9 +41,12 @@ executables: []
|
|
41
41
|
extensions: []
|
42
42
|
extra_rdoc_files: []
|
43
43
|
files:
|
44
|
-
- lib/protokoll/
|
45
|
-
- lib/protokoll/
|
46
|
-
- lib/protokoll/
|
44
|
+
- lib/generators/protokoll/migration/migration_generator.rb
|
45
|
+
- lib/generators/protokoll/migration/templates/create_custom_auto_increments.rb
|
46
|
+
- lib/protokoll/counter.rb
|
47
|
+
- lib/protokoll/formater.rb
|
48
|
+
- lib/protokoll/models/custom_auto_increment.rb
|
49
|
+
- lib/protokoll/protokoll.rb
|
47
50
|
- lib/protokoll/version.rb
|
48
51
|
- lib/protokoll.rb
|
49
52
|
- lib/tasks/protokoll_tasks.rake
|
@@ -54,9 +57,8 @@ files:
|
|
54
57
|
- test/dummy/app/assets/stylesheets/application.css
|
55
58
|
- test/dummy/app/controllers/application_controller.rb
|
56
59
|
- test/dummy/app/helpers/application_helper.rb
|
57
|
-
- test/dummy/app/models/
|
58
|
-
- test/dummy/app/models/
|
59
|
-
- test/dummy/app/models/protocol.rb
|
60
|
+
- test/dummy/app/models/call_defined_in_tests.rb
|
61
|
+
- test/dummy/app/models/protocol_defined_in_tests.rb
|
60
62
|
- test/dummy/app/views/layouts/application.html.erb
|
61
63
|
- test/dummy/config/application.rb
|
62
64
|
- test/dummy/config/boot.rb
|
@@ -76,8 +78,8 @@ files:
|
|
76
78
|
- test/dummy/config.ru
|
77
79
|
- test/dummy/db/development.sqlite3
|
78
80
|
- test/dummy/db/migrate/20110923024431_create_protocols.rb
|
79
|
-
- test/dummy/db/migrate/20110923101536_create_principals.rb
|
80
81
|
- test/dummy/db/migrate/20110928013630_create_calls.rb
|
82
|
+
- test/dummy/db/migrate/20120222164124_create_custom_auto_increments.rb
|
81
83
|
- test/dummy/db/schema.rb
|
82
84
|
- test/dummy/db/seeds.rb
|
83
85
|
- test/dummy/db/test.sqlite3
|
@@ -111,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
111
113
|
version: '0'
|
112
114
|
requirements: []
|
113
115
|
rubyforge_project:
|
114
|
-
rubygems_version: 1.8.
|
116
|
+
rubygems_version: 1.8.15
|
115
117
|
signing_key:
|
116
118
|
specification_version: 3
|
117
119
|
summary: A simple Rails gem to create custom autoincrement Time base values to a database
|
@@ -121,9 +123,8 @@ test_files:
|
|
121
123
|
- test/dummy/app/assets/stylesheets/application.css
|
122
124
|
- test/dummy/app/controllers/application_controller.rb
|
123
125
|
- test/dummy/app/helpers/application_helper.rb
|
124
|
-
- test/dummy/app/models/
|
125
|
-
- test/dummy/app/models/
|
126
|
-
- test/dummy/app/models/protocol.rb
|
126
|
+
- test/dummy/app/models/call_defined_in_tests.rb
|
127
|
+
- test/dummy/app/models/protocol_defined_in_tests.rb
|
127
128
|
- test/dummy/app/views/layouts/application.html.erb
|
128
129
|
- test/dummy/config/application.rb
|
129
130
|
- test/dummy/config/boot.rb
|
@@ -143,8 +144,8 @@ test_files:
|
|
143
144
|
- test/dummy/config.ru
|
144
145
|
- test/dummy/db/development.sqlite3
|
145
146
|
- test/dummy/db/migrate/20110923024431_create_protocols.rb
|
146
|
-
- test/dummy/db/migrate/20110923101536_create_principals.rb
|
147
147
|
- test/dummy/db/migrate/20110928013630_create_calls.rb
|
148
|
+
- test/dummy/db/migrate/20120222164124_create_custom_auto_increments.rb
|
148
149
|
- test/dummy/db/schema.rb
|
149
150
|
- test/dummy/db/seeds.rb
|
150
151
|
- test/dummy/db/test.sqlite3
|
@@ -1,95 +0,0 @@
|
|
1
|
-
module Protokoll
|
2
|
-
|
3
|
-
class AutoIncrement
|
4
|
-
attr_accessor :options
|
5
|
-
attr_accessor :count
|
6
|
-
|
7
|
-
def initialize
|
8
|
-
@count = 0
|
9
|
-
end
|
10
|
-
|
11
|
-
def pattern=(p)
|
12
|
-
options[:pattern] = p
|
13
|
-
end
|
14
|
-
|
15
|
-
def pattern
|
16
|
-
options[:pattern]
|
17
|
-
end
|
18
|
-
|
19
|
-
def number_symbol=(s)
|
20
|
-
options[:number_symbol] = s
|
21
|
-
end
|
22
|
-
|
23
|
-
def number_symbol
|
24
|
-
options[:number_symbol]
|
25
|
-
end
|
26
|
-
|
27
|
-
def next_custom_number(column, number)
|
28
|
-
prefix(options[:pattern]).to_s +
|
29
|
-
counter(options[:pattern], number).to_s +
|
30
|
-
sufix(options[:pattern]).to_s
|
31
|
-
end
|
32
|
-
|
33
|
-
def prefix(pattern)
|
34
|
-
prefx = extract_prefix(pattern)
|
35
|
-
expand_times(prefx.to_s)
|
36
|
-
end
|
37
|
-
|
38
|
-
def counter(pattern, n)
|
39
|
-
format_counter(digits_size(pattern), n)
|
40
|
-
end
|
41
|
-
|
42
|
-
def sufix(pattern)
|
43
|
-
sufx = extract_sufix(pattern)
|
44
|
-
expand_times(sufx.to_s)
|
45
|
-
end
|
46
|
-
|
47
|
-
def format_counter(zeros, value)
|
48
|
-
"%0#{zeros}d" % value
|
49
|
-
end
|
50
|
-
|
51
|
-
def extract_prefix(pattern)
|
52
|
-
# Company#### => Company
|
53
|
-
symbol = options[:number_symbol]
|
54
|
-
(pattern =~ /^(\s|\d)*[^#{symbol}]+/ and $&)
|
55
|
-
end
|
56
|
-
|
57
|
-
def extract_sufix(pattern)
|
58
|
-
# ###Company => Company
|
59
|
-
symbol = options[:number_symbol]
|
60
|
-
(pattern =~ /[^#{symbol}]+$/ and $&)
|
61
|
-
end
|
62
|
-
|
63
|
-
def expand_times(pattern)
|
64
|
-
pattern.sub!("%y", Time.now.strftime("%y"))
|
65
|
-
pattern.sub!("%Y", Time.now.strftime("%Y"))
|
66
|
-
pattern.sub!("%d", Time.now.strftime("%d"))
|
67
|
-
pattern.sub!("%m", Time.now.strftime("%m"))
|
68
|
-
pattern.sub!("%M", Time.now.strftime("%M"))
|
69
|
-
pattern.sub("%H", Time.now.strftime("%H"))
|
70
|
-
end
|
71
|
-
|
72
|
-
def digits_size(pattern)
|
73
|
-
symbol = options[:number_symbol]
|
74
|
-
(pattern =~ /[#{symbol}]+/ and $&).length
|
75
|
-
end
|
76
|
-
|
77
|
-
def outdated?(record)
|
78
|
-
Time.now.strftime(update_event).to_i > record.created_at.strftime(update_event).to_i
|
79
|
-
end
|
80
|
-
|
81
|
-
# BUG 1 : If using %y%m# and only year changes (user stays
|
82
|
-
# more then one year without updating the model) counter doesn't updates!
|
83
|
-
def update_event
|
84
|
-
pattern = options[:pattern]
|
85
|
-
event = String.new
|
86
|
-
|
87
|
-
event += "%Y" if pattern.include? "%y" or pattern.include? "%Y"
|
88
|
-
event += "%m" if pattern.include? "%m"
|
89
|
-
event += "%H" if pattern.include? "%H"
|
90
|
-
event += "%M" if pattern.include? "%M"
|
91
|
-
event
|
92
|
-
end
|
93
|
-
|
94
|
-
end
|
95
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
module Protokoll
|
2
|
-
module ClassVariable
|
3
|
-
def self.add_to(klass, instance, options = nil)
|
4
|
-
if not klass.class_variables.include? instance
|
5
|
-
klass.class_variable_set instance, options[:default]
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
|
-
def self.get_from(klass, instance)
|
10
|
-
klass.class_variable_get(instance)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|