ski_binding_calculator 0.0.2 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/config/binding_codes.yml +43 -0
- data/config/binding_settings.yml +485 -0
- data/lib/calculator/calculator.rb +37 -0
- data/lib/calculator/code.rb +3 -0
- data/lib/calculator/config_loader.rb +13 -35
- data/lib/calculator/setting.rb +3 -0
- data/lib/person.rb +22 -0
- data/lib/ski_binding.rb +2 -0
- data/lib/ski_binding_calculator.rb +5 -4
- data/ski_binding_calculator.gemspec +4 -2
- data/spec/calculator_spec.rb +67 -0
- data/spec/code_spec.rb +24 -0
- data/spec/config_loader_spec.rb +55 -21
- data/spec/person_spec.rb +47 -0
- data/spec/setting_spec.rb +31 -0
- data/spec/spec_helper.rb +2 -2
- metadata +31 -13
- data/config/criterias.yml +0 -6
- data/config/indices.yml +0 -51
- data/lib/calculator/binding_calculator.rb +0 -31
- data/lib/calculator/criteria.rb +0 -10
- data/lib/calculator/driver_type.rb +0 -9
- data/lib/calculator/index.rb +0 -13
- data/spec/binding_calculator_spec.rb +0 -47
- data/spec/criteria_spec.rb +0 -37
- data/spec/driver_type_spec.rb +0 -36
- data/spec/index_spec.rb +0 -36
@@ -0,0 +1,43 @@
|
|
1
|
+
- !ruby/object:SkiBinding::Code
|
2
|
+
weight: !ruby/range 10..13
|
3
|
+
height: !ruby/range 1..148
|
4
|
+
- !ruby/object:SkiBinding::Code
|
5
|
+
weight: !ruby/range 14..17
|
6
|
+
height: !ruby/range 1..148
|
7
|
+
- !ruby/object:SkiBinding::Code
|
8
|
+
weight: !ruby/range 18..21
|
9
|
+
height: !ruby/range 1..148
|
10
|
+
- !ruby/object:SkiBinding::Code
|
11
|
+
weight: !ruby/range 22..25
|
12
|
+
height: !ruby/range 1..148
|
13
|
+
- !ruby/object:SkiBinding::Code
|
14
|
+
weight: !ruby/range 26..30
|
15
|
+
height: !ruby/range 1..148
|
16
|
+
- !ruby/object:SkiBinding::Code
|
17
|
+
weight: !ruby/range 31..35
|
18
|
+
height: !ruby/range 1..148
|
19
|
+
- !ruby/object:SkiBinding::Code
|
20
|
+
weight: !ruby/range 36..41
|
21
|
+
height: !ruby/range 1..148
|
22
|
+
- !ruby/object:SkiBinding::Code
|
23
|
+
weight: !ruby/range 42..48
|
24
|
+
height: !ruby/range 1..148
|
25
|
+
- !ruby/object:SkiBinding::Code
|
26
|
+
weight: !ruby/range 49..57
|
27
|
+
height: !ruby/range 149..157
|
28
|
+
- !ruby/object:SkiBinding::Code
|
29
|
+
weight: !ruby/range 58..66
|
30
|
+
height: !ruby/range 158..166
|
31
|
+
- !ruby/object:SkiBinding::Code
|
32
|
+
weight: !ruby/range 67..78
|
33
|
+
height: !ruby/range 167..178
|
34
|
+
- !ruby/object:SkiBinding::Code
|
35
|
+
weight: !ruby/range 79..94
|
36
|
+
height: !ruby/range 179..194
|
37
|
+
- !ruby/object:SkiBinding::Code
|
38
|
+
weight: !ruby/range
|
39
|
+
begin: 1
|
40
|
+
end: .inf
|
41
|
+
height: !ruby/range
|
42
|
+
begin: 1
|
43
|
+
end: .inf
|
@@ -0,0 +1,485 @@
|
|
1
|
+
-
|
2
|
+
- !ruby/object:SkiBinding::Setting
|
3
|
+
range: !ruby/range 1..250
|
4
|
+
z_value: 0.75
|
5
|
+
turning_moment: &turning_moment 8
|
6
|
+
forward_pressure: &forward_pressure 29
|
7
|
+
- !ruby/object:SkiBinding::Setting
|
8
|
+
range: !ruby/range 251..270
|
9
|
+
z_value: 0.75
|
10
|
+
turning_moment: *turning_moment
|
11
|
+
forward_pressure: *forward_pressure
|
12
|
+
- !ruby/object:SkiBinding::Setting
|
13
|
+
range: ~
|
14
|
+
z_value: ~
|
15
|
+
turning_moment: ~
|
16
|
+
forward_pressure: ~
|
17
|
+
- !ruby/object:SkiBinding::Setting
|
18
|
+
range: ~
|
19
|
+
z_value: ~
|
20
|
+
turning_moment: ~
|
21
|
+
forward_pressure: ~
|
22
|
+
- !ruby/object:SkiBinding::Setting
|
23
|
+
range: ~
|
24
|
+
z_value: ~
|
25
|
+
turning_moment: ~
|
26
|
+
forward_pressure: ~
|
27
|
+
- !ruby/object:SkiBinding::Setting
|
28
|
+
range: ~
|
29
|
+
z_value: ~
|
30
|
+
turning_moment: ~
|
31
|
+
forward_pressure: ~
|
32
|
+
-
|
33
|
+
- !ruby/object:SkiBinding::Setting
|
34
|
+
range: !ruby/range 1..250
|
35
|
+
z_value: 1
|
36
|
+
turning_moment: &turning_moment 11
|
37
|
+
forward_pressure: &forward_pressure 40
|
38
|
+
- !ruby/object:SkiBinding::Setting
|
39
|
+
range: !ruby/range 251..270
|
40
|
+
z_value: 1
|
41
|
+
turning_moment: *turning_moment
|
42
|
+
forward_pressure: *forward_pressure
|
43
|
+
- !ruby/object:SkiBinding::Setting
|
44
|
+
range: !ruby/range 271..290
|
45
|
+
z_value: 0.75
|
46
|
+
turning_moment: *turning_moment
|
47
|
+
forward_pressure: *forward_pressure
|
48
|
+
- !ruby/object:SkiBinding::Setting
|
49
|
+
range: ~
|
50
|
+
z_value: ~
|
51
|
+
turning_moment: ~
|
52
|
+
forward_pressure: ~
|
53
|
+
- !ruby/object:SkiBinding::Setting
|
54
|
+
range: ~
|
55
|
+
z_value: ~
|
56
|
+
turning_moment: ~
|
57
|
+
forward_pressure: ~
|
58
|
+
- !ruby/object:SkiBinding::Setting
|
59
|
+
range: ~
|
60
|
+
z_value: ~
|
61
|
+
turning_moment: ~
|
62
|
+
forward_pressure: ~
|
63
|
+
-
|
64
|
+
- !ruby/object:SkiBinding::Setting
|
65
|
+
range: !ruby/range 1..250
|
66
|
+
z_value: 1.5
|
67
|
+
turning_moment: &turning_moment 14
|
68
|
+
forward_pressure: &forward_pressure 52
|
69
|
+
- !ruby/object:SkiBinding::Setting
|
70
|
+
range: !ruby/range 251..270
|
71
|
+
z_value: 1.25
|
72
|
+
turning_moment: *turning_moment
|
73
|
+
forward_pressure: *forward_pressure
|
74
|
+
- !ruby/object:SkiBinding::Setting
|
75
|
+
range: !ruby/range 271..290
|
76
|
+
z_value: 1
|
77
|
+
turning_moment: *turning_moment
|
78
|
+
forward_pressure: *forward_pressure
|
79
|
+
- !ruby/object:SkiBinding::Setting
|
80
|
+
range: ~
|
81
|
+
z_value: ~
|
82
|
+
turning_moment: ~
|
83
|
+
forward_pressure: ~
|
84
|
+
- !ruby/object:SkiBinding::Setting
|
85
|
+
range: ~
|
86
|
+
z_value: ~
|
87
|
+
turning_moment: ~
|
88
|
+
forward_pressure: ~
|
89
|
+
- !ruby/object:SkiBinding::Setting
|
90
|
+
range: ~
|
91
|
+
z_value: ~
|
92
|
+
turning_moment: ~
|
93
|
+
forward_pressure: ~
|
94
|
+
-
|
95
|
+
- !ruby/object:SkiBinding::Setting
|
96
|
+
range: !ruby/range 1..250
|
97
|
+
z_value: 1.75
|
98
|
+
turning_moment: &turning_moment 17
|
99
|
+
forward_pressure: &forward_pressure 64
|
100
|
+
- !ruby/object:SkiBinding::Setting
|
101
|
+
range: !ruby/range 251..270
|
102
|
+
z_value: 1.5
|
103
|
+
turning_moment: *turning_moment
|
104
|
+
forward_pressure: *forward_pressure
|
105
|
+
- !ruby/object:SkiBinding::Setting
|
106
|
+
range: !ruby/range 271..290
|
107
|
+
z_value: 1.5
|
108
|
+
turning_moment: *turning_moment
|
109
|
+
forward_pressure: *forward_pressure
|
110
|
+
- !ruby/object:SkiBinding::Setting
|
111
|
+
range: !ruby/range 291..310
|
112
|
+
z_value: 1.25
|
113
|
+
turning_moment: *turning_moment
|
114
|
+
forward_pressure: *forward_pressure
|
115
|
+
- !ruby/object:SkiBinding::Setting
|
116
|
+
range: ~
|
117
|
+
z_value: ~
|
118
|
+
turning_moment: ~
|
119
|
+
forward_pressure: ~
|
120
|
+
- !ruby/object:SkiBinding::Setting
|
121
|
+
range: ~
|
122
|
+
z_value: ~
|
123
|
+
turning_moment: ~
|
124
|
+
forward_pressure: ~
|
125
|
+
-
|
126
|
+
- !ruby/object:SkiBinding::Setting
|
127
|
+
range: !ruby/range 1..250
|
128
|
+
z_value: 2.25
|
129
|
+
turning_moment: &turning_moment 20
|
130
|
+
forward_pressure: &forward_pressure 75
|
131
|
+
- !ruby/object:SkiBinding::Setting
|
132
|
+
range: !ruby/range 251..270
|
133
|
+
z_value: 2
|
134
|
+
turning_moment: *turning_moment
|
135
|
+
forward_pressure: *forward_pressure
|
136
|
+
- !ruby/object:SkiBinding::Setting
|
137
|
+
range: !ruby/range 271..290
|
138
|
+
z_value: 1.75
|
139
|
+
turning_moment: *turning_moment
|
140
|
+
forward_pressure: *forward_pressure
|
141
|
+
- !ruby/object:SkiBinding::Setting
|
142
|
+
range: !ruby/range 291..310
|
143
|
+
z_value: 1.5
|
144
|
+
turning_moment: *turning_moment
|
145
|
+
forward_pressure: *forward_pressure
|
146
|
+
- !ruby/object:SkiBinding::Setting
|
147
|
+
range: !ruby/range 311..330
|
148
|
+
z_value: 1.5
|
149
|
+
turning_moment: *turning_moment
|
150
|
+
forward_pressure: *forward_pressure
|
151
|
+
- !ruby/object:SkiBinding::Setting
|
152
|
+
range: ~
|
153
|
+
z_value: ~
|
154
|
+
turning_moment: ~
|
155
|
+
forward_pressure: ~
|
156
|
+
-
|
157
|
+
- !ruby/object:SkiBinding::Setting
|
158
|
+
range: !ruby/range 1..250
|
159
|
+
z_value: 2.75
|
160
|
+
turning_moment: &turning_moment 23
|
161
|
+
forward_pressure: &forward_pressure 87
|
162
|
+
- !ruby/object:SkiBinding::Setting
|
163
|
+
range: !ruby/range 251..270
|
164
|
+
z_value: 2.5
|
165
|
+
turning_moment: *turning_moment
|
166
|
+
forward_pressure: *forward_pressure
|
167
|
+
- !ruby/object:SkiBinding::Setting
|
168
|
+
range: !ruby/range 271..290
|
169
|
+
z_value: 2.25
|
170
|
+
turning_moment: *turning_moment
|
171
|
+
forward_pressure: *forward_pressure
|
172
|
+
- !ruby/object:SkiBinding::Setting
|
173
|
+
range: !ruby/range 291..310
|
174
|
+
z_value: 2
|
175
|
+
turning_moment: *turning_moment
|
176
|
+
forward_pressure: *forward_pressure
|
177
|
+
- !ruby/object:SkiBinding::Setting
|
178
|
+
range: !ruby/range 311..330
|
179
|
+
z_value: 1.75
|
180
|
+
turning_moment: *turning_moment
|
181
|
+
forward_pressure: *forward_pressure
|
182
|
+
- !ruby/object:SkiBinding::Setting
|
183
|
+
range: !ruby/range
|
184
|
+
begin: 331
|
185
|
+
end: .inf
|
186
|
+
z_value: 1.75
|
187
|
+
turning_moment: *turning_moment
|
188
|
+
forward_pressure: *forward_pressure
|
189
|
+
-
|
190
|
+
- !ruby/object:SkiBinding::Setting
|
191
|
+
range: !ruby/range 1..250
|
192
|
+
z_value: 3.5
|
193
|
+
turning_moment: &turning_moment 27
|
194
|
+
forward_pressure: &forward_pressure 102
|
195
|
+
- !ruby/object:SkiBinding::Setting
|
196
|
+
range: !ruby/range 251..270
|
197
|
+
z_value: 3
|
198
|
+
turning_moment: *turning_moment
|
199
|
+
forward_pressure: *forward_pressure
|
200
|
+
- !ruby/object:SkiBinding::Setting
|
201
|
+
range: !ruby/range 271..290
|
202
|
+
z_value: 2.75
|
203
|
+
turning_moment: *turning_moment
|
204
|
+
forward_pressure: *forward_pressure
|
205
|
+
- !ruby/object:SkiBinding::Setting
|
206
|
+
range: !ruby/range 291..310
|
207
|
+
z_value: 2.5
|
208
|
+
turning_moment: *turning_moment
|
209
|
+
forward_pressure: *forward_pressure
|
210
|
+
- !ruby/object:SkiBinding::Setting
|
211
|
+
range: !ruby/range 311..330
|
212
|
+
z_value: 2.25
|
213
|
+
turning_moment: *turning_moment
|
214
|
+
forward_pressure: *forward_pressure
|
215
|
+
- !ruby/object:SkiBinding::Setting
|
216
|
+
range: !ruby/range
|
217
|
+
begin: 331
|
218
|
+
end: .inf
|
219
|
+
z_value: 2
|
220
|
+
turning_moment: *turning_moment
|
221
|
+
forward_pressure: *forward_pressure
|
222
|
+
-
|
223
|
+
- !ruby/object:SkiBinding::Setting
|
224
|
+
range: !ruby/range 1..250
|
225
|
+
z_value: 3.5
|
226
|
+
turning_moment: &turning_moment 31
|
227
|
+
forward_pressure: &forward_pressure 120
|
228
|
+
- !ruby/object:SkiBinding::Setting
|
229
|
+
range: !ruby/range 251..270
|
230
|
+
z_value: 3.5
|
231
|
+
turning_moment: *turning_moment
|
232
|
+
forward_pressure: *forward_pressure
|
233
|
+
- !ruby/object:SkiBinding::Setting
|
234
|
+
range: !ruby/range 271..290
|
235
|
+
z_value: 3
|
236
|
+
turning_moment: *turning_moment
|
237
|
+
forward_pressure: *forward_pressure
|
238
|
+
- !ruby/object:SkiBinding::Setting
|
239
|
+
range: !ruby/range 291..310
|
240
|
+
z_value: 3
|
241
|
+
turning_moment: *turning_moment
|
242
|
+
forward_pressure: *forward_pressure
|
243
|
+
- !ruby/object:SkiBinding::Setting
|
244
|
+
range: !ruby/range 311..330
|
245
|
+
z_value: 2.75
|
246
|
+
turning_moment: *turning_moment
|
247
|
+
forward_pressure: *forward_pressure
|
248
|
+
- !ruby/object:SkiBinding::Setting
|
249
|
+
range: !ruby/range
|
250
|
+
begin: 331
|
251
|
+
end: .inf
|
252
|
+
z_value: 2.5
|
253
|
+
turning_moment: *turning_moment
|
254
|
+
forward_pressure: *forward_pressure
|
255
|
+
-
|
256
|
+
- !ruby/object:SkiBinding::Setting
|
257
|
+
range: !ruby/range 1..250
|
258
|
+
z_value: 3.5
|
259
|
+
turning_moment: &turning_moment 37
|
260
|
+
forward_pressure: &forward_pressure 141
|
261
|
+
- !ruby/object:SkiBinding::Setting
|
262
|
+
range: !ruby/range 251..270
|
263
|
+
z_value: 4.5
|
264
|
+
turning_moment: *turning_moment
|
265
|
+
forward_pressure: *forward_pressure
|
266
|
+
- !ruby/object:SkiBinding::Setting
|
267
|
+
range: !ruby/range 271..290
|
268
|
+
z_value: 4
|
269
|
+
turning_moment: *turning_moment
|
270
|
+
forward_pressure: *forward_pressure
|
271
|
+
- !ruby/object:SkiBinding::Setting
|
272
|
+
range: !ruby/range 291..310
|
273
|
+
z_value: 3.5
|
274
|
+
turning_moment: *turning_moment
|
275
|
+
forward_pressure: *forward_pressure
|
276
|
+
- !ruby/object:SkiBinding::Setting
|
277
|
+
range: !ruby/range 311..330
|
278
|
+
z_value: 3.5
|
279
|
+
turning_moment: *turning_moment
|
280
|
+
forward_pressure: *forward_pressure
|
281
|
+
- !ruby/object:SkiBinding::Setting
|
282
|
+
range: !ruby/range
|
283
|
+
begin: 331
|
284
|
+
end: .inf
|
285
|
+
z_value: 3
|
286
|
+
turning_moment: *turning_moment
|
287
|
+
forward_pressure: *forward_pressure
|
288
|
+
-
|
289
|
+
- !ruby/object:SkiBinding::Setting
|
290
|
+
range: !ruby/range 1..250
|
291
|
+
z_value: 3.5
|
292
|
+
turning_moment: &turning_moment 43
|
293
|
+
forward_pressure: &forward_pressure 165
|
294
|
+
- !ruby/object:SkiBinding::Setting
|
295
|
+
range: !ruby/range 251..270
|
296
|
+
z_value: 5.5
|
297
|
+
turning_moment: *turning_moment
|
298
|
+
forward_pressure: *forward_pressure
|
299
|
+
- !ruby/object:SkiBinding::Setting
|
300
|
+
range: !ruby/range 271..290
|
301
|
+
z_value: 5
|
302
|
+
turning_moment: *turning_moment
|
303
|
+
forward_pressure: *forward_pressure
|
304
|
+
- !ruby/object:SkiBinding::Setting
|
305
|
+
range: !ruby/range 291..310
|
306
|
+
z_value: 4.5
|
307
|
+
turning_moment: *turning_moment
|
308
|
+
forward_pressure: *forward_pressure
|
309
|
+
- !ruby/object:SkiBinding::Setting
|
310
|
+
range: !ruby/range 311..330
|
311
|
+
z_value: 4
|
312
|
+
turning_moment: *turning_moment
|
313
|
+
forward_pressure: *forward_pressure
|
314
|
+
- !ruby/object:SkiBinding::Setting
|
315
|
+
range: !ruby/range
|
316
|
+
begin: 331
|
317
|
+
end: .inf
|
318
|
+
z_value: 3.5
|
319
|
+
turning_moment: *turning_moment
|
320
|
+
forward_pressure: *forward_pressure
|
321
|
+
-
|
322
|
+
- !ruby/object:SkiBinding::Setting
|
323
|
+
range: !ruby/range 1..250
|
324
|
+
z_value: 3.5
|
325
|
+
turning_moment: &turning_moment 50
|
326
|
+
forward_pressure: &forward_pressure 194
|
327
|
+
- !ruby/object:SkiBinding::Setting
|
328
|
+
range: !ruby/range 251..270
|
329
|
+
z_value: 6.5
|
330
|
+
turning_moment: *turning_moment
|
331
|
+
forward_pressure: *forward_pressure
|
332
|
+
- !ruby/object:SkiBinding::Setting
|
333
|
+
range: !ruby/range 271..290
|
334
|
+
z_value: 6
|
335
|
+
turning_moment: *turning_moment
|
336
|
+
forward_pressure: *forward_pressure
|
337
|
+
- !ruby/object:SkiBinding::Setting
|
338
|
+
range: !ruby/range 291..310
|
339
|
+
z_value: 5.5
|
340
|
+
turning_moment: *turning_moment
|
341
|
+
forward_pressure: *forward_pressure
|
342
|
+
- !ruby/object:SkiBinding::Setting
|
343
|
+
range: !ruby/range 311..330
|
344
|
+
z_value: 5
|
345
|
+
turning_moment: *turning_moment
|
346
|
+
forward_pressure: *forward_pressure
|
347
|
+
- !ruby/object:SkiBinding::Setting
|
348
|
+
range: !ruby/range
|
349
|
+
begin: 331
|
350
|
+
end: .inf
|
351
|
+
z_value: 4.5
|
352
|
+
turning_moment: *turning_moment
|
353
|
+
forward_pressure: *forward_pressure
|
354
|
+
-
|
355
|
+
- !ruby/object:SkiBinding::Setting
|
356
|
+
range: !ruby/range 1..250
|
357
|
+
z_value: 3.5
|
358
|
+
turning_moment: &turning_moment 58
|
359
|
+
forward_pressure: &forward_pressure 229
|
360
|
+
- !ruby/object:SkiBinding::Setting
|
361
|
+
range: !ruby/range 251..270
|
362
|
+
z_value: 7.5
|
363
|
+
turning_moment: *turning_moment
|
364
|
+
forward_pressure: *forward_pressure
|
365
|
+
- !ruby/object:SkiBinding::Setting
|
366
|
+
range: !ruby/range 271..290
|
367
|
+
z_value: 7
|
368
|
+
turning_moment: *turning_moment
|
369
|
+
forward_pressure: *forward_pressure
|
370
|
+
- !ruby/object:SkiBinding::Setting
|
371
|
+
range: !ruby/range 291..310
|
372
|
+
z_value: 6.5
|
373
|
+
turning_moment: *turning_moment
|
374
|
+
forward_pressure: *forward_pressure
|
375
|
+
- !ruby/object:SkiBinding::Setting
|
376
|
+
range: !ruby/range 311..330
|
377
|
+
z_value: 6
|
378
|
+
turning_moment: *turning_moment
|
379
|
+
forward_pressure: *forward_pressure
|
380
|
+
- !ruby/object:SkiBinding::Setting
|
381
|
+
range: !ruby/range
|
382
|
+
begin: 331
|
383
|
+
end: .inf
|
384
|
+
z_value: 5.5
|
385
|
+
turning_moment: *turning_moment
|
386
|
+
forward_pressure: *forward_pressure
|
387
|
+
-
|
388
|
+
- !ruby/object:SkiBinding::Setting
|
389
|
+
range: !ruby/range 1..250
|
390
|
+
z_value: 3.5
|
391
|
+
turning_moment: &turning_moment 67
|
392
|
+
forward_pressure: &forward_pressure 271
|
393
|
+
- !ruby/object:SkiBinding::Setting
|
394
|
+
range: !ruby/range 251..270
|
395
|
+
z_value: 7.5
|
396
|
+
turning_moment: *turning_moment
|
397
|
+
forward_pressure: *forward_pressure
|
398
|
+
- !ruby/object:SkiBinding::Setting
|
399
|
+
range: !ruby/range 271..290
|
400
|
+
z_value: 8.5
|
401
|
+
turning_moment: *turning_moment
|
402
|
+
forward_pressure: *forward_pressure
|
403
|
+
- !ruby/object:SkiBinding::Setting
|
404
|
+
range: !ruby/range 291..310
|
405
|
+
z_value: 8
|
406
|
+
turning_moment: *turning_moment
|
407
|
+
forward_pressure: *forward_pressure
|
408
|
+
- !ruby/object:SkiBinding::Setting
|
409
|
+
range: !ruby/range 311..330
|
410
|
+
z_value: 7
|
411
|
+
turning_moment: *turning_moment
|
412
|
+
forward_pressure: *forward_pressure
|
413
|
+
- !ruby/object:SkiBinding::Setting
|
414
|
+
range: !ruby/range
|
415
|
+
begin: 331
|
416
|
+
end: .inf
|
417
|
+
z_value: 6.5
|
418
|
+
turning_moment: *turning_moment
|
419
|
+
forward_pressure: *forward_pressure
|
420
|
+
-
|
421
|
+
- !ruby/object:SkiBinding::Setting
|
422
|
+
range: !ruby/range 1..250
|
423
|
+
z_value: 3.5
|
424
|
+
turning_moment: &turning_moment 78
|
425
|
+
forward_pressure: &forward_pressure 320
|
426
|
+
- !ruby/object:SkiBinding::Setting
|
427
|
+
range: !ruby/range 251..270
|
428
|
+
z_value: 7.5
|
429
|
+
turning_moment: *turning_moment
|
430
|
+
forward_pressure: *forward_pressure
|
431
|
+
- !ruby/object:SkiBinding::Setting
|
432
|
+
range: !ruby/range 271..290
|
433
|
+
z_value: 10
|
434
|
+
turning_moment: *turning_moment
|
435
|
+
forward_pressure: *forward_pressure
|
436
|
+
- !ruby/object:SkiBinding::Setting
|
437
|
+
range: !ruby/range 291..310
|
438
|
+
z_value: 9.5
|
439
|
+
turning_moment: *turning_moment
|
440
|
+
forward_pressure: *forward_pressure
|
441
|
+
- !ruby/object:SkiBinding::Setting
|
442
|
+
range: !ruby/range 311..330
|
443
|
+
z_value: 8.5
|
444
|
+
turning_moment: *turning_moment
|
445
|
+
forward_pressure: *forward_pressure
|
446
|
+
- !ruby/object:SkiBinding::Setting
|
447
|
+
range: !ruby/range
|
448
|
+
begin: 331
|
449
|
+
end: .inf
|
450
|
+
z_value: 8
|
451
|
+
turning_moment: *turning_moment
|
452
|
+
forward_pressure: *forward_pressure
|
453
|
+
-
|
454
|
+
- !ruby/object:SkiBinding::Setting
|
455
|
+
range: !ruby/range 1..250
|
456
|
+
z_value: 3.5
|
457
|
+
turning_moment: &turning_moment 91
|
458
|
+
forward_pressure: &forward_pressure 380
|
459
|
+
- !ruby/object:SkiBinding::Setting
|
460
|
+
range: !ruby/range 251..270
|
461
|
+
z_value: 7.5
|
462
|
+
turning_moment: *turning_moment
|
463
|
+
forward_pressure: *forward_pressure
|
464
|
+
- !ruby/object:SkiBinding::Setting
|
465
|
+
range: !ruby/range 271..290
|
466
|
+
z_value: 11.5
|
467
|
+
turning_moment: *turning_moment
|
468
|
+
forward_pressure: *forward_pressure
|
469
|
+
- !ruby/object:SkiBinding::Setting
|
470
|
+
range: !ruby/range 291..310
|
471
|
+
z_value: 11
|
472
|
+
turning_moment: *turning_moment
|
473
|
+
forward_pressure: *forward_pressure
|
474
|
+
- !ruby/object:SkiBinding::Setting
|
475
|
+
range: !ruby/range 311..330
|
476
|
+
z_value: 10
|
477
|
+
turning_moment: *turning_moment
|
478
|
+
forward_pressure: *forward_pressure
|
479
|
+
- !ruby/object:SkiBinding::Setting
|
480
|
+
range: !ruby/range
|
481
|
+
begin: 331
|
482
|
+
end: .inf
|
483
|
+
z_value: 9.5
|
484
|
+
turning_moment: *turning_moment
|
485
|
+
forward_pressure: *forward_pressure
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'calculator/config_loader'
|
2
|
+
|
3
|
+
class SkiBinding::Calculator
|
4
|
+
extend ConfigLoader
|
5
|
+
|
6
|
+
def self.setting(person)
|
7
|
+
code = self.binding_code(person)
|
8
|
+
self.binding_setting(code, person)
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def self.binding_code(person)
|
14
|
+
code = -1
|
15
|
+
self.load_binding_codes.each_with_index do |c,i|
|
16
|
+
code = i
|
17
|
+
break if c.weight.include?(person.weight) ||
|
18
|
+
c.height.include?(person.height)
|
19
|
+
end
|
20
|
+
unless person.weight < 13
|
21
|
+
code += person.type
|
22
|
+
if person.age >= 50 || person.age < 10
|
23
|
+
code -= 1
|
24
|
+
end
|
25
|
+
end
|
26
|
+
code
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.binding_setting(code, person)
|
30
|
+
settings = self.load_binding_settings(code)
|
31
|
+
settings.each do |s|
|
32
|
+
return {"z_value" => s.z_value,
|
33
|
+
"turning_moment" => s.turning_moment,
|
34
|
+
"forward_pressure" => s.forward_pressure} if s.range.include?(person.shoe_size)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -3,43 +3,21 @@ require 'yaml'
|
|
3
3
|
module ConfigLoader
|
4
4
|
extend self
|
5
5
|
|
6
|
-
def
|
7
|
-
|
8
|
-
load_criterias.each do |c|
|
9
|
-
criterias << Criteria.new(c)
|
10
|
-
end
|
11
|
-
criterias
|
6
|
+
def load_binding_codes
|
7
|
+
binding_codes ||= parse_yml("binding_codes.yml")
|
12
8
|
end
|
13
|
-
|
14
|
-
def
|
15
|
-
|
16
|
-
|
17
|
-
code[1].each do |v|
|
18
|
-
indices << Index.new(code[0], v)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
indices
|
22
|
-
end
|
23
|
-
|
24
|
-
def load_indices
|
25
|
-
indices ||= parse_yml("indices.yml")
|
26
|
-
end
|
27
|
-
|
28
|
-
|
29
|
-
def load_criterias
|
30
|
-
criterias ||= parse_yml("criterias.yml")
|
9
|
+
|
10
|
+
def load_binding_settings(code)
|
11
|
+
binding_settings ||= parse_yml("binding_settings.yml")
|
12
|
+
binding_settings[code]
|
31
13
|
end
|
32
14
|
|
33
15
|
private
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
YAML::load(File.open("#{file_path}/#{filename}"))
|
43
|
-
end
|
44
|
-
|
16
|
+
def file_path
|
17
|
+
path ||= File.expand_path("../../../config", __FILE__)
|
18
|
+
end
|
19
|
+
|
20
|
+
def parse_yml(filename)
|
21
|
+
YAML::load(File.open("#{file_path}/#{filename}"))
|
22
|
+
end
|
45
23
|
end
|
data/lib/person.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
class SkiBinding::Person
|
2
|
+
include ConfigLoader
|
3
|
+
|
4
|
+
attr_reader :type, :weight, :height, :shoe_size, :age
|
5
|
+
|
6
|
+
def initialize(values_hash)
|
7
|
+
@type = validate_type(values_hash["type"] || values_hash[:type])
|
8
|
+
@weight = values_hash["weight"] || values_hash[:weight]
|
9
|
+
@height = values_hash["height"] || values_hash[:height]
|
10
|
+
@shoe_size = values_hash["shoe_size"] || values_hash[:shoe_size]
|
11
|
+
@age = values_hash["age"] || values_hash[:age]
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def validate_type(type)
|
17
|
+
types = {"Type1-" => -1, "Type1" => 0, "Type2" => 1,
|
18
|
+
"Type3" => 2, "Type3+" => 3}
|
19
|
+
keys = types.keys
|
20
|
+
types[type] if keys.include?(type)
|
21
|
+
end
|
22
|
+
end
|
data/lib/ski_binding.rb
ADDED
@@ -1,5 +1,6 @@
|
|
1
|
-
require '
|
2
|
-
require 'calculator/
|
1
|
+
require 'ski_binding'
|
2
|
+
require 'calculator/calculator'
|
3
3
|
require 'calculator/config_loader'
|
4
|
-
require 'calculator/
|
5
|
-
require 'calculator/
|
4
|
+
require 'calculator/code'
|
5
|
+
require 'calculator/setting'
|
6
|
+
require 'person'
|
@@ -1,16 +1,18 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
|
3
3
|
s.name = 'ski_binding_calculator'
|
4
|
-
s.version = '0.0
|
5
|
-
s.date = '2013-
|
4
|
+
s.version = '0.5.0'
|
5
|
+
s.date = '2013-08-04'
|
6
6
|
s.summary = "Ski Binding Calculator"
|
7
7
|
s.description = "A little gem to calculate the z-value accord to the iso 11088 norm."
|
8
8
|
s.authors = ["Jonas Ruef, Felix Langenegger"]
|
9
9
|
s.email = 'support@fadendaten.ch'
|
10
10
|
s.homepage = 'http://fadendaten.ch'
|
11
|
+
s.license = 'MIT'
|
11
12
|
|
12
13
|
s.add_development_dependency "rspec", "~> 2.14.1"
|
13
14
|
s.add_development_dependency "spork", "~> 0.9.2"
|
15
|
+
s.add_development_dependency "simplecov", "~> 0.7.1"
|
14
16
|
|
15
17
|
s.files = Dir.glob("{config,lib,spec}/**/*")
|
16
18
|
s.files += %w(Rakefile ski_binding_calculator.gemspec)
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SkiBinding::Calculator do
|
4
|
+
before(:all) do
|
5
|
+
@calculator = SkiBinding::Calculator.new
|
6
|
+
hash = {:type => "Type2", :weight => 70,
|
7
|
+
:height => 170, :shoe_size => 315, :age => 30}
|
8
|
+
@person = SkiBinding::Person.new(hash)
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "new" do
|
12
|
+
it "returns a BindingCalculator class" do
|
13
|
+
SkiBinding::Calculator.new.class.should == SkiBinding::Calculator
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "config loader" do
|
18
|
+
it "responds to binding_settings" do
|
19
|
+
SkiBinding::Calculator.should respond_to :setting
|
20
|
+
end
|
21
|
+
|
22
|
+
it "responds to binding_codes" do
|
23
|
+
SkiBinding::Calculator.should respond_to :binding_code
|
24
|
+
end
|
25
|
+
|
26
|
+
it "responds to binding_settings" do
|
27
|
+
SkiBinding::Calculator.should respond_to :binding_setting
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "#setting" do
|
32
|
+
it "returns a valid setting" do
|
33
|
+
SkiBinding::Calculator.setting(@person).should ==
|
34
|
+
{"z_value"=>6, "turning_moment"=>58, "forward_pressure"=>229}
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe "#binding_code" do
|
39
|
+
it "returns a valid code" do
|
40
|
+
SkiBinding::Calculator.binding_code(@person).should == 11
|
41
|
+
end
|
42
|
+
|
43
|
+
it "returns code one less than before if age >= 50" do
|
44
|
+
hash = {:type => "Type2", :weight => 70,
|
45
|
+
:height => 170, :shoe_size => 315, :age => 50}
|
46
|
+
@person = SkiBinding::Person.new(hash)
|
47
|
+
SkiBinding::Calculator.binding_code(@person).should == 10
|
48
|
+
hash[:age] = 51
|
49
|
+
@person = SkiBinding::Person.new(hash)
|
50
|
+
SkiBinding::Calculator.binding_code(@person).should == 10
|
51
|
+
end
|
52
|
+
|
53
|
+
it "returns code unchanged if weight less than 13kg" do
|
54
|
+
hash = {:type => "Type2", :weight => 12,
|
55
|
+
:height => 147, :shoe_size => 249, :age => 30}
|
56
|
+
@person = SkiBinding::Person.new(hash)
|
57
|
+
SkiBinding::Calculator.binding_code(@person).should == 0
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
describe "#binding_setting" do
|
62
|
+
it "returns a valid setting" do
|
63
|
+
SkiBinding::Calculator.binding_setting(11, @person).should ==
|
64
|
+
{"z_value"=>6, "turning_moment"=>58, "forward_pressure"=>229}
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
data/spec/code_spec.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SkiBinding::Code do
|
4
|
+
describe "new" do
|
5
|
+
it "should return a Code class" do
|
6
|
+
SkiBinding::Code.new.class.should == SkiBinding::Code
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
context "instantiated Code class" do
|
11
|
+
before :all do
|
12
|
+
@code = SkiBinding::Code.new
|
13
|
+
end
|
14
|
+
|
15
|
+
it "has attribute weight" do
|
16
|
+
@code.should respond_to :weight
|
17
|
+
end
|
18
|
+
|
19
|
+
it "has attribute heigth" do
|
20
|
+
@code.should respond_to :height
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
data/spec/config_loader_spec.rb
CHANGED
@@ -2,37 +2,71 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe "ConfigLoader" do
|
4
4
|
|
5
|
-
before(:
|
5
|
+
before(:all) do
|
6
|
+
@range = 0..14 #cause 14 codes
|
6
7
|
@dummy_class = DummyClass.new
|
7
8
|
@dummy_class.extend(ConfigLoader)
|
8
9
|
end
|
9
10
|
|
10
|
-
describe "loading
|
11
|
-
it "
|
12
|
-
@dummy_class.
|
11
|
+
describe "loading binding codes:" do
|
12
|
+
it "something gets loaded" do
|
13
|
+
@dummy_class.load_binding_codes.class.should_not == nil
|
13
14
|
end
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
15
|
+
|
16
|
+
context "loaded codes" do
|
17
|
+
before :all do
|
18
|
+
@codes = @dummy_class.load_binding_codes
|
19
|
+
end
|
20
|
+
|
21
|
+
it "is array" do
|
22
|
+
@codes.class.should == Array
|
23
|
+
end
|
24
|
+
|
25
|
+
it "first element is code" do
|
26
|
+
@codes[0].class.should == SkiBinding::Code
|
27
|
+
end
|
28
|
+
|
29
|
+
it "has 15 codes" do
|
30
|
+
@codes.size.should == 13
|
31
|
+
end
|
23
32
|
end
|
24
33
|
end
|
25
|
-
|
26
|
-
describe "
|
27
|
-
it "
|
28
|
-
@
|
34
|
+
|
35
|
+
describe "loading binding settings for all codes" do
|
36
|
+
it "something gets loaded" do
|
37
|
+
@range.each do |index|
|
38
|
+
@dummy_class.load_binding_settings(index).class.should_not == nil
|
39
|
+
end
|
29
40
|
end
|
30
|
-
|
31
|
-
|
32
|
-
|
41
|
+
|
42
|
+
context "loaded settings for each code" do
|
43
|
+
before :all do
|
44
|
+
@settings_all_codes = []
|
45
|
+
@range.each do |index|
|
46
|
+
@settings_all_codes << @dummy_class.load_binding_settings(index)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
it "is array" do
|
51
|
+
@settings_all_codes.each do |s|
|
52
|
+
s.class.should == Array
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
it "first element is setting" do
|
57
|
+
@settings_all_codes.each do |s|
|
58
|
+
s[0].class.should == SkiBinding::Setting
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
it "has 6 settings" do
|
63
|
+
@settings_all_codes.each do |s|
|
64
|
+
s.size.should == 6
|
65
|
+
end
|
66
|
+
end
|
33
67
|
end
|
34
68
|
end
|
35
69
|
end
|
36
70
|
|
37
71
|
class DummyClass
|
38
|
-
end
|
72
|
+
end
|
data/spec/person_spec.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SkiBinding::Person do
|
4
|
+
before :all do
|
5
|
+
@hash = {:type => "Type2", :weight => 70, :height => 170, :shoe_size => 315, :age => 30}
|
6
|
+
end
|
7
|
+
|
8
|
+
describe "new" do
|
9
|
+
it "should return a Person class" do
|
10
|
+
SkiBinding::Person.new(@hash).class.should == SkiBinding::Person
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
context "instantiated Person class" do
|
15
|
+
before :all do
|
16
|
+
@person = SkiBinding::Person.new(@hash)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "has attribute type" do
|
20
|
+
@person.should respond_to :type
|
21
|
+
end
|
22
|
+
|
23
|
+
it "has attribute weight" do
|
24
|
+
@person.should respond_to :weight
|
25
|
+
end
|
26
|
+
|
27
|
+
it "has attribute heigth" do
|
28
|
+
@person.should respond_to :height
|
29
|
+
end
|
30
|
+
|
31
|
+
it "has attribute shoe_size" do
|
32
|
+
@person.should respond_to :shoe_size
|
33
|
+
end
|
34
|
+
|
35
|
+
it "has attribute age" do
|
36
|
+
@person.should respond_to :age
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "validates type" do
|
40
|
+
it "sets \"Type2\" to 1" do
|
41
|
+
@person.type.should == 1
|
42
|
+
end
|
43
|
+
|
44
|
+
it "sets type \"unknown\" to nil"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SkiBinding::Setting do
|
4
|
+
describe "new" do
|
5
|
+
it "should return a Setting class" do
|
6
|
+
SkiBinding::Setting.new.class.should == SkiBinding::Setting
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
context "instantiated Setting class" do
|
11
|
+
before :all do
|
12
|
+
@setting = SkiBinding::Setting.new
|
13
|
+
end
|
14
|
+
|
15
|
+
it "has attribute range" do
|
16
|
+
@setting.should respond_to :range
|
17
|
+
end
|
18
|
+
|
19
|
+
it "has attribute z_value" do
|
20
|
+
@setting.should respond_to :z_value
|
21
|
+
end
|
22
|
+
|
23
|
+
it "has attribute turning_moment" do
|
24
|
+
@setting.should respond_to :turning_moment
|
25
|
+
end
|
26
|
+
|
27
|
+
it "has attribute forward_pressure" do
|
28
|
+
@setting.should respond_to :forward_pressure
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -3,16 +3,16 @@ require 'spork'
|
|
3
3
|
|
4
4
|
Spork.prefork do
|
5
5
|
require 'rspec'
|
6
|
+
require 'simplecov'
|
7
|
+
SimpleCov.start
|
6
8
|
|
7
9
|
unless defined?(SPEC_ROOT)
|
8
10
|
SPEC_ROOT = File.expand_path("../", __FILE__)
|
9
11
|
end
|
10
12
|
|
11
|
-
|
12
13
|
RSpec.configure do |config|
|
13
14
|
end
|
14
15
|
|
15
|
-
|
16
16
|
Spork.each_run do
|
17
17
|
require 'ski_binding_calculator'
|
18
18
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ski_binding_calculator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.5.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-08-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
@@ -43,30 +43,48 @@ dependencies:
|
|
43
43
|
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: 0.9.2
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: simplecov
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.7.1
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.7.1
|
46
62
|
description: A little gem to calculate the z-value accord to the iso 11088 norm.
|
47
63
|
email: support@fadendaten.ch
|
48
64
|
executables: []
|
49
65
|
extensions: []
|
50
66
|
extra_rdoc_files: []
|
51
67
|
files:
|
52
|
-
- config/
|
53
|
-
- config/
|
54
|
-
- lib/calculator/
|
68
|
+
- config/binding_codes.yml
|
69
|
+
- config/binding_settings.yml
|
70
|
+
- lib/calculator/calculator.rb
|
71
|
+
- lib/calculator/code.rb
|
55
72
|
- lib/calculator/config_loader.rb
|
56
|
-
- lib/calculator/
|
57
|
-
- lib/
|
58
|
-
- lib/
|
73
|
+
- lib/calculator/setting.rb
|
74
|
+
- lib/person.rb
|
75
|
+
- lib/ski_binding.rb
|
59
76
|
- lib/ski_binding_calculator.rb
|
60
|
-
- spec/
|
77
|
+
- spec/calculator_spec.rb
|
78
|
+
- spec/code_spec.rb
|
61
79
|
- spec/config_loader_spec.rb
|
62
|
-
- spec/
|
63
|
-
- spec/
|
64
|
-
- spec/index_spec.rb
|
80
|
+
- spec/person_spec.rb
|
81
|
+
- spec/setting_spec.rb
|
65
82
|
- spec/spec_helper.rb
|
66
83
|
- Rakefile
|
67
84
|
- ski_binding_calculator.gemspec
|
68
85
|
homepage: http://fadendaten.ch
|
69
|
-
licenses:
|
86
|
+
licenses:
|
87
|
+
- MIT
|
70
88
|
post_install_message:
|
71
89
|
rdoc_options: []
|
72
90
|
require_paths:
|
data/config/criterias.yml
DELETED
data/config/indices.yml
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
0:
|
2
|
-
- !ruby/range 1..250:
|
3
|
-
z_value: 0.75
|
4
|
-
mz: &MZ 8
|
5
|
-
my: &MY 29
|
6
|
-
- !ruby/range 251..270:
|
7
|
-
z_value: 0.75
|
8
|
-
mz: *MZ
|
9
|
-
my: *MY
|
10
|
-
|
11
|
-
1:
|
12
|
-
- !ruby/range 1..250:
|
13
|
-
z_value: 1
|
14
|
-
mz: &mz 11
|
15
|
-
my: &my 40
|
16
|
-
- !ruby/range 251..270:
|
17
|
-
z_value: 1
|
18
|
-
mz: *mz
|
19
|
-
my: *my
|
20
|
-
- !ruby/range 271..290:
|
21
|
-
z_value: 0.75
|
22
|
-
mz: *mz
|
23
|
-
my: *my
|
24
|
-
|
25
|
-
2:
|
26
|
-
- !ruby/range 1..250:
|
27
|
-
z_value: 1
|
28
|
-
mz: &mz 11
|
29
|
-
my: &my 40
|
30
|
-
- !ruby/range 251..270:
|
31
|
-
z_value: 1
|
32
|
-
mz: *mz
|
33
|
-
my: *my
|
34
|
-
- !ruby/range 271..290:
|
35
|
-
z_value: 0.75
|
36
|
-
mz: *mz
|
37
|
-
my: *my
|
38
|
-
|
39
|
-
3:
|
40
|
-
- !ruby/range 1..250:
|
41
|
-
z_value: 1
|
42
|
-
mz: &mz 11
|
43
|
-
my: &my 40
|
44
|
-
- !ruby/range 251..270:
|
45
|
-
z_value: 1
|
46
|
-
mz: *mz
|
47
|
-
my: *my
|
48
|
-
- !ruby/range 271..290:
|
49
|
-
z_value: 0.75
|
50
|
-
mz: *mz
|
51
|
-
my: *my
|
@@ -1,31 +0,0 @@
|
|
1
|
-
require 'calculator/config_loader'
|
2
|
-
|
3
|
-
class BindingCalculator
|
4
|
-
include ConfigLoader
|
5
|
-
|
6
|
-
attr_reader :z_value, :rotation, :pressure
|
7
|
-
|
8
|
-
def initialize(type, weight, height, size)
|
9
|
-
@type = type
|
10
|
-
@weight = weight
|
11
|
-
@height = height
|
12
|
-
@size = size
|
13
|
-
end
|
14
|
-
|
15
|
-
def code
|
16
|
-
code = 0
|
17
|
-
self.criterias.each_with_index do |c,i|
|
18
|
-
code = i
|
19
|
-
break if c.weight.include?(@weight) || c.height.include?(@height)
|
20
|
-
end
|
21
|
-
code + @type.moving_value
|
22
|
-
end
|
23
|
-
|
24
|
-
def z_value
|
25
|
-
self.indices.each do |i|
|
26
|
-
return i.z_value if i.size.include?(@size)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
|
31
|
-
end
|
data/lib/calculator/criteria.rb
DELETED
data/lib/calculator/index.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
class Index
|
2
|
-
attr_reader :index, :size, :z_value, :mz, :my
|
3
|
-
|
4
|
-
def initialize(index, hash)
|
5
|
-
@index = index
|
6
|
-
@size = hash.keys.first
|
7
|
-
hash = hash[@size]
|
8
|
-
@z_value = hash["z_value"] || hash[:z_value]
|
9
|
-
@mz = hash["mz"] || hash[:mz]
|
10
|
-
@my = hash["my"] || hash[:my]
|
11
|
-
end
|
12
|
-
|
13
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe BindingCalculator do
|
4
|
-
before(:each) do
|
5
|
-
@type = DriverType.new("2",2)
|
6
|
-
@weight = 16
|
7
|
-
@height = 308
|
8
|
-
@size = 192
|
9
|
-
@calculator = BindingCalculator.new(@type, @weight, @height, @size)
|
10
|
-
end
|
11
|
-
|
12
|
-
describe "new" do
|
13
|
-
it "should return a BindingCalculator class" do
|
14
|
-
BindingCalculator.new(@type, @weight, @height, @size).class.should == BindingCalculator
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
describe "config laoder" do
|
19
|
-
it "should responds to criterias" do
|
20
|
-
@calculator.should respond_to :criterias
|
21
|
-
end
|
22
|
-
it "should responds to load_criterias" do
|
23
|
-
@calculator.should respond_to :load_criterias
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
describe "code" do
|
28
|
-
it "should return a valid code" do
|
29
|
-
@calculator.code.should == 3
|
30
|
-
end
|
31
|
-
it "should not be 4" do
|
32
|
-
@calculator.code.should_not == 4
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
describe "z_value" do
|
37
|
-
it "should return a Float" do
|
38
|
-
@calculator.z_value.class.should == Float
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should return a valid value" do
|
42
|
-
@calculator.z_value.should == 0.75
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
|
47
|
-
end
|
data/spec/criteria_spec.rb
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
|
4
|
-
describe Criteria do
|
5
|
-
|
6
|
-
before(:each) do
|
7
|
-
@hash = {:weight => 10..13, :height => 10..148}
|
8
|
-
@criteria = Criteria.new(@hash)
|
9
|
-
end
|
10
|
-
|
11
|
-
describe ".new" do
|
12
|
-
it "should return a Criteria class" do
|
13
|
-
Criteria.new(@hash).class.should == Criteria
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
describe "weight" do
|
18
|
-
it "shoud return the weight rang" do
|
19
|
-
@criteria.weight.should == (10..13)
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should be a range" do
|
23
|
-
@criteria.weight.class.should == Range
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
describe "height" do
|
28
|
-
it "shoud return the height rang" do
|
29
|
-
@criteria.height.should == (10..148)
|
30
|
-
end
|
31
|
-
|
32
|
-
it "should be a range" do
|
33
|
-
@criteria.height.class.should == Range
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
data/spec/driver_type_spec.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe DriverType do
|
4
|
-
|
5
|
-
describe ".new" do
|
6
|
-
it "should create a new DriverType" do
|
7
|
-
DriverType.new("1", -1).class.should == DriverType
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
describe "methods" do
|
12
|
-
before(:each) do
|
13
|
-
@driver = DriverType.new("1", -1)
|
14
|
-
end
|
15
|
-
|
16
|
-
describe "name" do
|
17
|
-
it "should have a driver type name" do
|
18
|
-
@driver.name.should == "1"
|
19
|
-
end
|
20
|
-
|
21
|
-
it "should be a string" do
|
22
|
-
@driver.name.class.should == String
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe "moving_value" do
|
27
|
-
it "should have a moving value" do
|
28
|
-
@driver.moving_value.should == -1
|
29
|
-
end
|
30
|
-
|
31
|
-
it "should be a fixnum" do
|
32
|
-
@driver.moving_value.class.should == Fixnum
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
data/spec/index_spec.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Index do
|
4
|
-
|
5
|
-
before(:each) do
|
6
|
-
@hash = {(1..250) => {:z_value => 1.5, :my => 52, :mz => 14}}
|
7
|
-
@index = Index.new(1, @hash)
|
8
|
-
end
|
9
|
-
|
10
|
-
describe "new" do
|
11
|
-
it "should return a Index class" do
|
12
|
-
Index.new(0, @hash).class.should == Index
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
describe "size" do
|
17
|
-
it "should return the size range" do
|
18
|
-
@index.size.should == (1..250)
|
19
|
-
end
|
20
|
-
|
21
|
-
it "should be a range" do
|
22
|
-
@index.size.class.should == Range
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe "z_value" do
|
27
|
-
it "should respond to z_value" do
|
28
|
-
@index.should respond_to :z_value
|
29
|
-
end
|
30
|
-
|
31
|
-
it "should return the z_value" do
|
32
|
-
@index.z_value.should == 1.5
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|