ski_binding_calculator 0.0.2 → 0.5.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/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
|