montecasting 0.2.4 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.idea/workspace.xml +102 -55
- data/Gemfile.lock +2 -2
- data/README.md +41 -6
- data/lib/montecasting/array.rb +0 -8
- data/lib/{numeric.rb → montecasting/numeric.rb} +0 -0
- data/lib/montecasting/version.rb +1 -1
- data/lib/montecasting.rb +21 -9
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 29d07448cb37c51be4f64b64748275f08f37ccf44a53bca3f52d1819220e49fb
|
4
|
+
data.tar.gz: 6d8b6f3d353d528a9d904956d4c6a86fc84d20585356ab394f99d3a7c6b3285a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f4ca5dcb825735d1d055c34cf16d2d6b9e119620b779ae107ad9cc01b6f49c8f8c8db3e5e05f76c03cba37235c7a093b4073aed90a7aaedd6d887bfcca231d2
|
7
|
+
data.tar.gz: 6b7b7806b3c97b9b2f8a05510621e07ecc2cd1277c294defa6a64d0e73293f723b90036f1bf20af755f735846635762c4554dce19f009ee2abc6b05029333a3a
|
data/.idea/workspace.xml
CHANGED
@@ -12,12 +12,12 @@
|
|
12
12
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
13
13
|
</component>
|
14
14
|
<component name="FileEditorManager">
|
15
|
-
<leaf>
|
15
|
+
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
16
16
|
<file pinned="false" current-in-tab="false">
|
17
17
|
<entry file="file://$PROJECT_DIR$/lib/montecasting.rb">
|
18
18
|
<provider selected="true" editor-type-id="text-editor">
|
19
|
-
<state relative-caret-position="
|
20
|
-
<caret line="
|
19
|
+
<state relative-caret-position="968">
|
20
|
+
<caret line="44" lean-forward="true" selection-start-line="44" selection-end-line="44" />
|
21
21
|
</state>
|
22
22
|
</provider>
|
23
23
|
</entry>
|
@@ -25,22 +25,17 @@
|
|
25
25
|
<file pinned="false" current-in-tab="false">
|
26
26
|
<entry file="file://$PROJECT_DIR$/lib/montecasting/array.rb">
|
27
27
|
<provider selected="true" editor-type-id="text-editor">
|
28
|
-
<state relative-caret-position="
|
29
|
-
<caret line="
|
28
|
+
<state relative-caret-position="418">
|
29
|
+
<caret line="19" column="19" selection-start-line="19" selection-start-column="19" selection-end-line="19" selection-end-column="19" />
|
30
30
|
</state>
|
31
31
|
</provider>
|
32
32
|
</entry>
|
33
33
|
</file>
|
34
|
-
<file pinned="false" current-in-tab="false">
|
35
|
-
<entry file="file://$PROJECT_DIR$/spec/spec_helper.rb">
|
36
|
-
<provider selected="true" editor-type-id="text-editor" />
|
37
|
-
</entry>
|
38
|
-
</file>
|
39
34
|
<file pinned="false" current-in-tab="false">
|
40
35
|
<entry file="file://$PROJECT_DIR$/spec/montecasting_spec.rb">
|
41
36
|
<provider selected="true" editor-type-id="text-editor">
|
42
|
-
<state relative-caret-position="
|
43
|
-
<caret line="
|
37
|
+
<state relative-caret-position="66">
|
38
|
+
<caret line="3" column="135" lean-forward="true" selection-start-line="3" selection-start-column="113" selection-end-line="3" selection-end-column="135" />
|
44
39
|
</state>
|
45
40
|
</provider>
|
46
41
|
</entry>
|
@@ -57,7 +52,7 @@
|
|
57
52
|
<file pinned="false" current-in-tab="false">
|
58
53
|
<entry file="file://$APPLICATION_HOME_DIR$/rubystubs26/time.rb">
|
59
54
|
<provider selected="true" editor-type-id="text-editor">
|
60
|
-
<state relative-caret-position="
|
55
|
+
<state relative-caret-position="2574">
|
61
56
|
<caret line="117" column="13" selection-start-line="117" selection-start-column="13" selection-end-line="117" selection-end-column="13" />
|
62
57
|
</state>
|
63
58
|
</provider>
|
@@ -66,8 +61,20 @@
|
|
66
61
|
<file pinned="false" current-in-tab="false">
|
67
62
|
<entry file="file://$PROJECT_DIR$/montecasting.gemspec">
|
68
63
|
<provider selected="true" editor-type-id="text-editor">
|
69
|
-
<state relative-caret-position="
|
70
|
-
<caret line="
|
64
|
+
<state relative-caret-position="242">
|
65
|
+
<caret line="11" column="233" selection-start-line="11" selection-start-column="26" selection-end-line="11" selection-end-column="233" />
|
66
|
+
</state>
|
67
|
+
</provider>
|
68
|
+
</entry>
|
69
|
+
</file>
|
70
|
+
<file pinned="false" current-in-tab="false">
|
71
|
+
<entry file="file://$PROJECT_DIR$/README.md">
|
72
|
+
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
73
|
+
<state split_layout="SPLIT">
|
74
|
+
<first_editor relative-caret-position="1254">
|
75
|
+
<caret line="57" column="8" selection-start-line="57" selection-start-column="8" selection-end-line="57" selection-end-column="8" />
|
76
|
+
</first_editor>
|
77
|
+
<second_editor />
|
71
78
|
</state>
|
72
79
|
</provider>
|
73
80
|
</entry>
|
@@ -85,8 +92,8 @@
|
|
85
92
|
<file pinned="false" current-in-tab="true">
|
86
93
|
<entry file="file://$PROJECT_DIR$/lib/montecasting/version.rb">
|
87
94
|
<provider selected="true" editor-type-id="text-editor">
|
88
|
-
<state relative-caret-position="
|
89
|
-
<caret line="
|
95
|
+
<state relative-caret-position="132">
|
96
|
+
<caret line="6" lean-forward="true" selection-start-line="6" selection-end-line="6" />
|
90
97
|
</state>
|
91
98
|
</provider>
|
92
99
|
</entry>
|
@@ -109,10 +116,11 @@
|
|
109
116
|
<option value="$PROJECT_DIR$/.gitignore" />
|
110
117
|
<option value="$PROJECT_DIR$/lib/numeric.rb" />
|
111
118
|
<option value="$PROJECT_DIR$/montecasting.gemspec" />
|
112
|
-
<option value="$PROJECT_DIR$/lib/montecasting/array.rb" />
|
113
119
|
<option value="$PROJECT_DIR$/Gemfile" />
|
114
|
-
<option value="$PROJECT_DIR$/
|
120
|
+
<option value="$PROJECT_DIR$/README.md" />
|
121
|
+
<option value="$PROJECT_DIR$/lib/montecasting/array.rb" />
|
115
122
|
<option value="$PROJECT_DIR$/spec/montecasting_spec.rb" />
|
123
|
+
<option value="$PROJECT_DIR$/lib/montecasting.rb" />
|
116
124
|
<option value="$PROJECT_DIR$/lib/montecasting/version.rb" />
|
117
125
|
</list>
|
118
126
|
</option>
|
@@ -128,11 +136,11 @@
|
|
128
136
|
</list>
|
129
137
|
</option>
|
130
138
|
</component>
|
131
|
-
<component name="ProjectFrameBounds">
|
132
|
-
<option name="x" value="
|
133
|
-
<option name="y" value="
|
134
|
-
<option name="width" value="
|
135
|
-
<option name="height" value="
|
139
|
+
<component name="ProjectFrameBounds" extendedState="6">
|
140
|
+
<option name="x" value="164" />
|
141
|
+
<option name="y" value="102" />
|
142
|
+
<option name="width" value="2382" />
|
143
|
+
<option name="height" value="1209" />
|
136
144
|
</component>
|
137
145
|
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
|
138
146
|
<component name="ProjectView">
|
@@ -140,6 +148,7 @@
|
|
140
148
|
<foldersAlwaysOnTop value="true" />
|
141
149
|
</navigator>
|
142
150
|
<panes>
|
151
|
+
<pane id="Scope" />
|
143
152
|
<pane id="ProjectPane">
|
144
153
|
<subPane>
|
145
154
|
<expand>
|
@@ -176,7 +185,6 @@
|
|
176
185
|
<select />
|
177
186
|
</subPane>
|
178
187
|
</pane>
|
179
|
-
<pane id="Scope" />
|
180
188
|
</panes>
|
181
189
|
</component>
|
182
190
|
<component name="PropertiesComponent">
|
@@ -185,6 +193,11 @@
|
|
185
193
|
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
|
186
194
|
<property name="settings.editor.selected.configurable" value="org.jetbrains.plugins.ruby.settings.RubyActiveModuleSdkConfigurable" />
|
187
195
|
</component>
|
196
|
+
<component name="RecentsManager">
|
197
|
+
<key name="MoveFile.RECENT_KEYS">
|
198
|
+
<recent name="$PROJECT_DIR$/lib/montecasting" />
|
199
|
+
</key>
|
200
|
+
</component>
|
188
201
|
<component name="RunDashboard">
|
189
202
|
<option name="ruleStates">
|
190
203
|
<list>
|
@@ -245,7 +258,8 @@
|
|
245
258
|
<option name="number" value="Default" />
|
246
259
|
<option name="presentableId" value="Default" />
|
247
260
|
<updated>1567089679850</updated>
|
248
|
-
<workItem from="1567089680950" duration="
|
261
|
+
<workItem from="1567089680950" duration="18608000" />
|
262
|
+
<workItem from="1567414586349" duration="1889000" />
|
249
263
|
</task>
|
250
264
|
<task id="LOCAL-00001" summary="Ruby Gem for Project Forecasting Methods">
|
251
265
|
<created>1567089862211</created>
|
@@ -282,7 +296,21 @@
|
|
282
296
|
<option name="project" value="LOCAL" />
|
283
297
|
<updated>1567180594715</updated>
|
284
298
|
</task>
|
285
|
-
<
|
299
|
+
<task id="LOCAL-00006" summary="Ruby Gem for Project Forecasting Methods">
|
300
|
+
<created>1567181534230</created>
|
301
|
+
<option name="number" value="00006" />
|
302
|
+
<option name="presentableId" value="LOCAL-00006" />
|
303
|
+
<option name="project" value="LOCAL" />
|
304
|
+
<updated>1567181534230</updated>
|
305
|
+
</task>
|
306
|
+
<task id="LOCAL-00007" summary="Ruby Gem for Project Forecasting Methods">
|
307
|
+
<created>1567417423329</created>
|
308
|
+
<option name="number" value="00007" />
|
309
|
+
<option name="presentableId" value="LOCAL-00007" />
|
310
|
+
<option name="project" value="LOCAL" />
|
311
|
+
<updated>1567417423329</updated>
|
312
|
+
</task>
|
313
|
+
<option name="localTasksCounter" value="8" />
|
286
314
|
<servers />
|
287
315
|
</component>
|
288
316
|
<component name="TestHistory">
|
@@ -291,31 +319,40 @@
|
|
291
319
|
</history-entry>
|
292
320
|
</component>
|
293
321
|
<component name="TimeTrackingManager">
|
294
|
-
<option name="totallyTimeSpent" value="
|
322
|
+
<option name="totallyTimeSpent" value="20497000" />
|
323
|
+
</component>
|
324
|
+
<component name="TodoView">
|
325
|
+
<todo-panel id="selected-file">
|
326
|
+
<is-autoscroll-to-source value="true" />
|
327
|
+
</todo-panel>
|
328
|
+
<todo-panel id="all">
|
329
|
+
<are-packages-shown value="true" />
|
330
|
+
<is-autoscroll-to-source value="true" />
|
331
|
+
</todo-panel>
|
295
332
|
</component>
|
296
333
|
<component name="ToolWindowManager">
|
297
|
-
<frame x="
|
334
|
+
<frame x="0" y="23" width="2560" height="1417" extended-state="6" />
|
298
335
|
<editor active="true" />
|
299
336
|
<layout>
|
300
|
-
<window_info id="
|
301
|
-
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.26741073" />
|
337
|
+
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.1965846" />
|
302
338
|
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
|
303
|
-
<window_info
|
304
|
-
<window_info anchor="bottom" id="Database Changes" />
|
305
|
-
<window_info anchor="bottom" id="Version Control" />
|
306
|
-
<window_info anchor="bottom" id="Terminal" sideWeight="0.49955356" weight="0.32925898" />
|
307
|
-
<window_info anchor="bottom" id="Event Log" sideWeight="0.50044644" side_tool="true" weight="0.32925898" />
|
339
|
+
<window_info id="Favorites" order="2" side_tool="true" />
|
308
340
|
<window_info anchor="bottom" id="Message" order="0" />
|
309
341
|
<window_info anchor="bottom" id="Find" order="1" />
|
310
342
|
<window_info anchor="bottom" id="Run" order="2" sideWeight="0.49955356" weight="0.32925898" />
|
311
343
|
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
|
312
344
|
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
|
313
345
|
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
|
314
|
-
<window_info anchor="bottom" id="TODO" order="6" />
|
315
|
-
<window_info anchor="
|
346
|
+
<window_info anchor="bottom" id="TODO" order="6" weight="0.32925898" />
|
347
|
+
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
|
348
|
+
<window_info anchor="bottom" id="Database Changes" order="8" />
|
349
|
+
<window_info anchor="bottom" id="Version Control" order="9" />
|
350
|
+
<window_info anchor="bottom" id="Terminal" order="10" sideWeight="0.49955356" visible="true" weight="0.30634072" />
|
351
|
+
<window_info anchor="bottom" id="Event Log" order="11" sideWeight="0.50044644" side_tool="true" weight="0.32925898" />
|
316
352
|
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
|
317
353
|
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
|
318
354
|
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
|
355
|
+
<window_info anchor="right" id="Database" order="3" />
|
319
356
|
</layout>
|
320
357
|
<layout-to-restore>
|
321
358
|
<window_info id="Favorites" order="0" side_tool="true" />
|
@@ -360,7 +397,7 @@
|
|
360
397
|
</state>
|
361
398
|
</provider>
|
362
399
|
</entry>
|
363
|
-
<entry file="file://$PROJECT_DIR$/lib/numeric.rb">
|
400
|
+
<entry file="file://$PROJECT_DIR$/lib/montecasting/numeric.rb">
|
364
401
|
<provider selected="true" editor-type-id="text-editor">
|
365
402
|
<state relative-caret-position="242">
|
366
403
|
<caret line="11" column="3" selection-start-line="11" selection-start-column="3" selection-end-line="11" selection-end-column="3" />
|
@@ -370,24 +407,34 @@
|
|
370
407
|
<entry file="file://$PROJECT_DIR$/spec/spec_helper.rb">
|
371
408
|
<provider selected="true" editor-type-id="text-editor" />
|
372
409
|
</entry>
|
373
|
-
<entry file="file://$PROJECT_DIR$/
|
410
|
+
<entry file="file://$PROJECT_DIR$/Gemfile">
|
374
411
|
<provider selected="true" editor-type-id="text-editor">
|
375
|
-
<state relative-caret-position="
|
376
|
-
<caret line="
|
412
|
+
<state relative-caret-position="88">
|
413
|
+
<caret line="4" selection-start-line="4" selection-end-line="4" />
|
377
414
|
</state>
|
378
415
|
</provider>
|
379
416
|
</entry>
|
380
417
|
<entry file="file://$APPLICATION_HOME_DIR$/rubystubs26/time.rb">
|
381
418
|
<provider selected="true" editor-type-id="text-editor">
|
382
|
-
<state relative-caret-position="
|
419
|
+
<state relative-caret-position="2574">
|
383
420
|
<caret line="117" column="13" selection-start-line="117" selection-start-column="13" selection-end-line="117" selection-end-column="13" />
|
384
421
|
</state>
|
385
422
|
</provider>
|
386
423
|
</entry>
|
387
|
-
<entry file="file://$PROJECT_DIR$/
|
424
|
+
<entry file="file://$PROJECT_DIR$/montecasting.gemspec">
|
388
425
|
<provider selected="true" editor-type-id="text-editor">
|
389
|
-
<state relative-caret-position="
|
390
|
-
<caret line="
|
426
|
+
<state relative-caret-position="242">
|
427
|
+
<caret line="11" column="233" selection-start-line="11" selection-start-column="26" selection-end-line="11" selection-end-column="233" />
|
428
|
+
</state>
|
429
|
+
</provider>
|
430
|
+
</entry>
|
431
|
+
<entry file="file://$PROJECT_DIR$/README.md">
|
432
|
+
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
433
|
+
<state split_layout="SPLIT">
|
434
|
+
<first_editor relative-caret-position="1254">
|
435
|
+
<caret line="57" column="8" selection-start-line="57" selection-start-column="8" selection-end-line="57" selection-end-column="8" />
|
436
|
+
</first_editor>
|
437
|
+
<second_editor />
|
391
438
|
</state>
|
392
439
|
</provider>
|
393
440
|
</entry>
|
@@ -397,31 +444,31 @@
|
|
397
444
|
<entry file="file://$PROJECT_DIR$/.rspec_status">
|
398
445
|
<provider selected="true" editor-type-id="text-editor" />
|
399
446
|
</entry>
|
400
|
-
<entry file="file://$PROJECT_DIR$/
|
447
|
+
<entry file="file://$PROJECT_DIR$/lib/montecasting/array.rb">
|
401
448
|
<provider selected="true" editor-type-id="text-editor">
|
402
449
|
<state relative-caret-position="418">
|
403
|
-
<caret line="19"
|
450
|
+
<caret line="19" column="19" selection-start-line="19" selection-start-column="19" selection-end-line="19" selection-end-column="19" />
|
404
451
|
</state>
|
405
452
|
</provider>
|
406
453
|
</entry>
|
407
454
|
<entry file="file://$PROJECT_DIR$/lib/montecasting.rb">
|
408
455
|
<provider selected="true" editor-type-id="text-editor">
|
409
|
-
<state relative-caret-position="
|
410
|
-
<caret line="
|
456
|
+
<state relative-caret-position="968">
|
457
|
+
<caret line="44" lean-forward="true" selection-start-line="44" selection-end-line="44" />
|
411
458
|
</state>
|
412
459
|
</provider>
|
413
460
|
</entry>
|
414
|
-
<entry file="file://$PROJECT_DIR$/
|
461
|
+
<entry file="file://$PROJECT_DIR$/spec/montecasting_spec.rb">
|
415
462
|
<provider selected="true" editor-type-id="text-editor">
|
416
|
-
<state relative-caret-position="
|
417
|
-
<caret line="
|
463
|
+
<state relative-caret-position="66">
|
464
|
+
<caret line="3" column="135" lean-forward="true" selection-start-line="3" selection-start-column="113" selection-end-line="3" selection-end-column="135" />
|
418
465
|
</state>
|
419
466
|
</provider>
|
420
467
|
</entry>
|
421
468
|
<entry file="file://$PROJECT_DIR$/lib/montecasting/version.rb">
|
422
469
|
<provider selected="true" editor-type-id="text-editor">
|
423
|
-
<state relative-caret-position="
|
424
|
-
<caret line="
|
470
|
+
<state relative-caret-position="132">
|
471
|
+
<caret line="6" lean-forward="true" selection-start-line="6" selection-end-line="6" />
|
425
472
|
</state>
|
426
473
|
</provider>
|
427
474
|
</entry>
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
# Montecasting
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
TODO: Delete this and the text above, and describe your gem
|
3
|
+
Montecasting will provide a set of forecasting techniques to be used on software project management or product development.
|
6
4
|
|
7
5
|
## Installation
|
8
6
|
|
@@ -21,9 +19,46 @@ Or install it yourself as:
|
|
21
19
|
$ gem install montecasting
|
22
20
|
|
23
21
|
## Usage
|
24
|
-
|
25
|
-
|
26
|
-
|
22
|
+
#### Metrics
|
23
|
+
|
24
|
+
Montecasting::Metrics.variance array_of_time = []
|
25
|
+
|
26
|
+
Montecasting::Metrics.wip_limit array_of_time = [], start_date, end_date
|
27
|
+
|
28
|
+
Montecasting::Metrics.thoughtput number_or_items, start_date, end_date
|
29
|
+
|
30
|
+
Montecasting::Metrics.week_days start_date, end_date
|
31
|
+
|
32
|
+
#### Charts
|
33
|
+
All methods in this section will be returned in a format that, so far, has been tested using rickshaw JavaScript toolkit for creating interactive real-time graphs.
|
34
|
+
Checkout https://github.com/shutterstock/rickshaw for more information.
|
35
|
+
|
36
|
+
> Montecasting::Charts.chart_cycle_time array_of_time = [], round_to = 0.5
|
37
|
+
> [[{:x=>0, :y=>0},
|
38
|
+
{:x=>1, :y=>1},
|
39
|
+
{:x=>2, :y=>2},
|
40
|
+
{:x=>3, :y=>3},
|
41
|
+
{:x=>4, :y=>4},
|
42
|
+
...
|
43
|
+
{:x=>15, :y=>15}],
|
44
|
+
[{:x=>0, :y=>5},
|
45
|
+
{:x=>1, :y=>20},
|
46
|
+
{:x=>2, :y=>8},
|
47
|
+
{:x=>3, :y=>3},
|
48
|
+
{:x=>4, :y=>0},
|
49
|
+
...
|
50
|
+
{:x=>15, :y=>1}],
|
51
|
+
[{:x=>0, :y=>0.0},
|
52
|
+
{:x=>1, :y=>13.5},
|
53
|
+
{:x=>2, :y=>67.6},
|
54
|
+
{:x=>3, :y=>89.2},
|
55
|
+
{:x=>4, :y=>97.3},
|
56
|
+
...
|
57
|
+
{:x=>15, :y=>97.3}]]
|
58
|
+
|
59
|
+
#### Forecasting
|
60
|
+
Nothing implemented yet :-)
|
61
|
+
|
27
62
|
## Development
|
28
63
|
|
29
64
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/lib/montecasting/array.rb
CHANGED
File without changes
|
data/lib/montecasting/version.rb
CHANGED
data/lib/montecasting.rb
CHANGED
@@ -1,22 +1,29 @@
|
|
1
1
|
require "montecasting/version"
|
2
|
-
require_relative 'numeric'
|
2
|
+
require_relative 'montecasting/numeric'
|
3
3
|
require_relative 'montecasting/array'
|
4
4
|
|
5
5
|
module Montecasting
|
6
6
|
|
7
7
|
#Metrics class will contains methods to get specific product development metrics pr
|
8
8
|
class Metrics
|
9
|
-
def self.variance
|
9
|
+
def self.variance array_of_times = []
|
10
|
+
return unless array_of_times.all? {|i| i.is_a?(Numeric) }
|
10
11
|
variance = 0
|
11
|
-
avg =
|
12
|
-
|
12
|
+
avg = array_of_times.map{|i| i.abs}.average
|
13
|
+
array_of_times.each {|spt|
|
13
14
|
variance += ((avg - spt) ** 2)
|
14
15
|
}
|
15
16
|
Math.sqrt(variance)
|
16
17
|
end
|
17
18
|
|
18
|
-
def self.
|
19
|
-
|
19
|
+
def self.median array_of_times = []
|
20
|
+
return unless array_of_times.all? {|i| i.is_a?(Numeric) }
|
21
|
+
array_of_times.map{|i| i.abs}.median
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.wip_limit(array_of_times, start_date, end_date = DateTime.now)
|
25
|
+
return unless array_of_times.all? {|i| i.is_a?(Numeric) }
|
26
|
+
(array_of_times.map(&:abs).average * throughput(array_of_times.count,start_date,end_date))
|
20
27
|
end
|
21
28
|
|
22
29
|
def self.throughput number_of_issues, start_date, end_date = DateTime.now
|
@@ -26,6 +33,11 @@ module Montecasting
|
|
26
33
|
def self.week_days start_date, enddate = DateTime.now
|
27
34
|
(start_date..enddate).select { |day| !day.sunday? && !day.saturday? }
|
28
35
|
end
|
36
|
+
|
37
|
+
def self.percent_of_items_at array_of_times, time_units = 0
|
38
|
+
return unless array_of_times.all? {|i| i.is_a?(Numeric) }
|
39
|
+
array_of_times.select { |time| time < time_units}.count.percent_of(array_of_times.count)
|
40
|
+
end
|
29
41
|
end
|
30
42
|
|
31
43
|
# Here will place all those method to generate forecasting charts
|
@@ -37,10 +49,10 @@ module Montecasting
|
|
37
49
|
#Charts class will contains all those methods to charts data, using rickshaw JS library it's pretty straight forward.
|
38
50
|
class Charts
|
39
51
|
|
40
|
-
def self.chart_cycle_time
|
41
|
-
return unless
|
52
|
+
def self.chart_cycle_time array_of_times = [], round_to = 0.5
|
53
|
+
return unless array_of_times.all? {|i| i.is_a?(Numeric) }
|
42
54
|
data = Array.new {Array.new}
|
43
|
-
ct_sorted =
|
55
|
+
ct_sorted = array_of_times.sort.map {|ct| ct.abs.to_f.round(round_to) }
|
44
56
|
max_index = ct_sorted.last
|
45
57
|
data[0] = [*0..max_index].map {|index| {x: index, y: index}}
|
46
58
|
data[1] = [*0..max_index].map {|index| {x: index, y: ct_sorted.count {|elem| elem.eql? index }}}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: montecasting
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eduard Garcia Castello
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-09-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -75,8 +75,8 @@ files:
|
|
75
75
|
- bin/setup
|
76
76
|
- lib/montecasting.rb
|
77
77
|
- lib/montecasting/array.rb
|
78
|
+
- lib/montecasting/numeric.rb
|
78
79
|
- lib/montecasting/version.rb
|
79
|
-
- lib/numeric.rb
|
80
80
|
- montecasting.gemspec
|
81
81
|
homepage: https://github.com/eddygarcas/montecasting
|
82
82
|
licenses:
|