montecasting 0.4.0 → 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.
- checksums.yaml +4 -4
- data/.idea/workspace.xml +154 -87
- data/Gemfile.lock +1 -1
- data/lib/montecasting/array.rb +11 -2
- data/lib/montecasting/hash.rb +7 -0
- data/lib/montecasting/version.rb +1 -1
- data/lib/montecasting.rb +33 -12
- data/montecasting-0.1.0.gem +0 -0
- data/montecasting-0.2.0.gem +0 -0
- data/montecasting-0.2.1.gem +0 -0
- data/montecasting-0.2.2.gem +0 -0
- data/montecasting-0.2.3.gem +0 -0
- data/montecasting-0.2.4.gem +0 -0
- data/montecasting-0.3.0.gem +0 -0
- data/montecasting-0.4.0.gem +0 -0
- metadata +11 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0151c30542f70e66090d268bfe1acfc76ab1f7b6ace5d8352932f6aab4e51bb2
|
|
4
|
+
data.tar.gz: 3ed6e6e59d0cab7e074e986edd3fae4c7498133338a611f547ffba5bf2e78912
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 695eafc729757cb28d4dd3950b4e60e7b24453db73c9656a29f089506339e2cd3b7df46b5ee3f90692f1af3ab6a3fe3f6b991678cbf77fc36893809c1a98fee6
|
|
7
|
+
data.tar.gz: bf17759319ead97f7013acab18eff62ac48e31aab6109e65c9a68b9faa8f51db64074004c2d2952316facf9bc1260f36941bdd7cf2b088055022f583e02af24a
|
data/.idea/workspace.xml
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
2
|
<project version="4">
|
|
3
3
|
<component name="ChangeListManager">
|
|
4
|
-
<list default="true" id="b096ae44-ac17-43c8-99fa-e6348bbbcd82" name="Default Changelist" comment="">
|
|
4
|
+
<list default="true" id="b096ae44-ac17-43c8-99fa-e6348bbbcd82" name="Default Changelist" comment="Ruby Gem for Project Forecasting Methods">
|
|
5
5
|
<change afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
|
6
|
-
<change beforePath="$PROJECT_DIR$/lib/montecasting.rb" beforeDir="false" afterPath="$PROJECT_DIR$/lib/montecasting.rb" afterDir="false" />
|
|
7
|
-
<change beforePath="$PROJECT_DIR$/lib/montecasting/array.rb" beforeDir="false" afterPath="$PROJECT_DIR$/lib/montecasting/array.rb" afterDir="false" />
|
|
8
|
-
<change beforePath="$PROJECT_DIR$/lib/montecasting/version.rb" beforeDir="false" afterPath="$PROJECT_DIR$/lib/montecasting/version.rb" afterDir="false" />
|
|
9
|
-
<change beforePath="$PROJECT_DIR$/spec/montecasting_spec.rb" beforeDir="false" afterPath="$PROJECT_DIR$/spec/montecasting_spec.rb" afterDir="false" />
|
|
10
6
|
</list>
|
|
11
7
|
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
|
12
8
|
<option name="SHOW_DIALOG" value="false" />
|
|
@@ -19,84 +15,89 @@
|
|
|
19
15
|
<file pinned="false" current-in-tab="false">
|
|
20
16
|
<entry file="file://$PROJECT_DIR$/lib/montecasting.rb">
|
|
21
17
|
<provider selected="true" editor-type-id="text-editor">
|
|
22
|
-
<state relative-caret-position="
|
|
23
|
-
<caret line="
|
|
18
|
+
<state relative-caret-position="313">
|
|
19
|
+
<caret line="79" column="7" lean-forward="true" selection-start-line="79" selection-start-column="7" selection-end-line="79" selection-end-column="7" />
|
|
24
20
|
</state>
|
|
25
21
|
</provider>
|
|
26
22
|
</entry>
|
|
27
23
|
</file>
|
|
28
24
|
<file pinned="false" current-in-tab="false">
|
|
29
|
-
<entry file="file://$
|
|
25
|
+
<entry file="file://$PROJECT_DIR$/lib/montecasting/hash.rb">
|
|
30
26
|
<provider selected="true" editor-type-id="text-editor">
|
|
31
|
-
<state relative-caret-position="
|
|
32
|
-
<caret line="
|
|
27
|
+
<state relative-caret-position="154">
|
|
28
|
+
<caret line="7" lean-forward="true" selection-start-line="7" selection-end-line="7" />
|
|
33
29
|
</state>
|
|
34
30
|
</provider>
|
|
35
31
|
</entry>
|
|
36
32
|
</file>
|
|
37
33
|
<file pinned="false" current-in-tab="false">
|
|
38
|
-
<entry file="file://$
|
|
34
|
+
<entry file="file://$PROJECT_DIR$/lib/montecasting/numeric.rb">
|
|
39
35
|
<provider selected="true" editor-type-id="text-editor">
|
|
40
|
-
<state relative-caret-position="
|
|
41
|
-
<caret line="
|
|
36
|
+
<state relative-caret-position="242">
|
|
37
|
+
<caret line="11" column="3" selection-start-line="11" selection-start-column="3" selection-end-line="11" selection-end-column="3" />
|
|
42
38
|
</state>
|
|
43
39
|
</provider>
|
|
44
40
|
</entry>
|
|
45
41
|
</file>
|
|
46
42
|
<file pinned="false" current-in-tab="false">
|
|
47
|
-
<entry file="file://$
|
|
43
|
+
<entry file="file://$APPLICATION_HOME_DIR$/rubystubs26/hash.rb">
|
|
48
44
|
<provider selected="true" editor-type-id="text-editor">
|
|
49
|
-
<state relative-caret-position="
|
|
50
|
-
<caret line="
|
|
45
|
+
<state relative-caret-position="251">
|
|
46
|
+
<caret line="116" column="6" selection-start-line="116" selection-start-column="6" selection-end-line="116" selection-end-column="6" />
|
|
51
47
|
</state>
|
|
52
48
|
</provider>
|
|
53
49
|
</entry>
|
|
54
50
|
</file>
|
|
55
51
|
<file pinned="false" current-in-tab="false">
|
|
56
|
-
<entry file="file://$PROJECT_DIR$/
|
|
52
|
+
<entry file="file://$PROJECT_DIR$/spec/montecasting_spec.rb">
|
|
57
53
|
<provider selected="true" editor-type-id="text-editor">
|
|
58
|
-
<state relative-caret-position="
|
|
59
|
-
<caret line="
|
|
54
|
+
<state relative-caret-position="577">
|
|
55
|
+
<caret line="92" column="5" lean-forward="true" selection-start-line="92" selection-start-column="5" selection-end-line="92" selection-end-column="5" />
|
|
60
56
|
</state>
|
|
61
57
|
</provider>
|
|
62
58
|
</entry>
|
|
63
59
|
</file>
|
|
64
|
-
<file pinned="false" current-in-tab="
|
|
65
|
-
<entry file="file://$PROJECT_DIR$/
|
|
60
|
+
<file pinned="false" current-in-tab="true">
|
|
61
|
+
<entry file="file://$PROJECT_DIR$/montecasting.gemspec">
|
|
66
62
|
<provider selected="true" editor-type-id="text-editor">
|
|
67
|
-
<state relative-caret-position="
|
|
68
|
-
<caret line="
|
|
63
|
+
<state relative-caret-position="88">
|
|
64
|
+
<caret line="4" column="18" selection-start-line="4" selection-start-column="18" selection-end-line="4" selection-end-column="18" />
|
|
69
65
|
</state>
|
|
70
66
|
</provider>
|
|
71
67
|
</entry>
|
|
72
68
|
</file>
|
|
73
69
|
<file pinned="false" current-in-tab="false">
|
|
74
|
-
<entry file="file://$
|
|
75
|
-
<provider selected="true" editor-type-id="
|
|
76
|
-
<state
|
|
77
|
-
<
|
|
78
|
-
<caret line="60" column="8" selection-start-line="60" selection-start-column="8" selection-end-line="60" selection-end-column="8" />
|
|
79
|
-
</first_editor>
|
|
80
|
-
<second_editor />
|
|
70
|
+
<entry file="file://$USER_HOME$/.rvm/gems/ruby-2.6.3/gems/rspec-expectations-3.8.4/lib/rspec/matchers.rb">
|
|
71
|
+
<provider selected="true" editor-type-id="text-editor">
|
|
72
|
+
<state relative-caret-position="6298">
|
|
73
|
+
<caret line="394" column="8" selection-start-line="394" selection-start-column="8" selection-end-line="394" selection-end-column="8" />
|
|
81
74
|
</state>
|
|
82
75
|
</provider>
|
|
83
76
|
</entry>
|
|
84
77
|
</file>
|
|
85
78
|
<file pinned="false" current-in-tab="false">
|
|
86
|
-
<entry file="file://$PROJECT_DIR$/
|
|
87
|
-
<provider selected="true" editor-type-id="text-editor"
|
|
79
|
+
<entry file="file://$PROJECT_DIR$/lib/montecasting/array.rb">
|
|
80
|
+
<provider selected="true" editor-type-id="text-editor">
|
|
81
|
+
<state relative-caret-position="396">
|
|
82
|
+
<caret line="18" lean-forward="true" selection-start-line="18" selection-end-line="18" />
|
|
83
|
+
</state>
|
|
84
|
+
</provider>
|
|
88
85
|
</entry>
|
|
89
86
|
</file>
|
|
90
87
|
<file pinned="false" current-in-tab="false">
|
|
91
|
-
<entry file="file://$
|
|
92
|
-
<provider selected="true" editor-type-id="text-editor"
|
|
88
|
+
<entry file="file://$APPLICATION_HOME_DIR$/rubystubs26/basic_object.rb">
|
|
89
|
+
<provider selected="true" editor-type-id="text-editor">
|
|
90
|
+
<state relative-caret-position="87">
|
|
91
|
+
<caret line="140" column="8" selection-start-line="140" selection-start-column="8" selection-end-line="140" selection-end-column="8" />
|
|
92
|
+
</state>
|
|
93
|
+
</provider>
|
|
93
94
|
</entry>
|
|
94
95
|
</file>
|
|
95
|
-
<file pinned="false" current-in-tab="
|
|
96
|
+
<file pinned="false" current-in-tab="false">
|
|
96
97
|
<entry file="file://$PROJECT_DIR$/lib/montecasting/version.rb">
|
|
97
98
|
<provider selected="true" editor-type-id="text-editor">
|
|
98
99
|
<state relative-caret-position="132">
|
|
99
|
-
<caret line="6"
|
|
100
|
+
<caret line="6" selection-start-line="6" selection-end-line="6" />
|
|
100
101
|
</state>
|
|
101
102
|
</provider>
|
|
102
103
|
</entry>
|
|
@@ -110,6 +111,11 @@
|
|
|
110
111
|
</list>
|
|
111
112
|
</option>
|
|
112
113
|
</component>
|
|
114
|
+
<component name="FindInProjectRecents">
|
|
115
|
+
<findStrings>
|
|
116
|
+
<find>values</find>
|
|
117
|
+
</findStrings>
|
|
118
|
+
</component>
|
|
113
119
|
<component name="Git.Settings">
|
|
114
120
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
|
115
121
|
</component>
|
|
@@ -121,28 +127,18 @@
|
|
|
121
127
|
<option value="$PROJECT_DIR$/montecasting.gemspec" />
|
|
122
128
|
<option value="$PROJECT_DIR$/Gemfile" />
|
|
123
129
|
<option value="$PROJECT_DIR$/README.md" />
|
|
130
|
+
<option value="$PROJECT_DIR$/lib/montecasting/version.rb" />
|
|
131
|
+
<option value="$PROJECT_DIR$/lib/montecasting/hash.rb" />
|
|
124
132
|
<option value="$PROJECT_DIR$/lib/montecasting/array.rb" />
|
|
125
|
-
<option value="$PROJECT_DIR$/spec/montecasting_spec.rb" />
|
|
126
133
|
<option value="$PROJECT_DIR$/lib/montecasting.rb" />
|
|
127
|
-
<option value="$PROJECT_DIR$/
|
|
128
|
-
</list>
|
|
129
|
-
</option>
|
|
130
|
-
</component>
|
|
131
|
-
<component name="ProjectConfigurationFiles">
|
|
132
|
-
<option name="files">
|
|
133
|
-
<list>
|
|
134
|
-
<option value="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" />
|
|
135
|
-
<option value="$PROJECT_DIR$/.idea/montecasting.iml" />
|
|
136
|
-
<option value="$PROJECT_DIR$/.idea/vcs.xml" />
|
|
137
|
-
<option value="$PROJECT_DIR$/.idea/misc.xml" />
|
|
138
|
-
<option value="$PROJECT_DIR$/.idea/modules.xml" />
|
|
134
|
+
<option value="$PROJECT_DIR$/spec/montecasting_spec.rb" />
|
|
139
135
|
</list>
|
|
140
136
|
</option>
|
|
141
137
|
</component>
|
|
142
|
-
<component name="ProjectFrameBounds">
|
|
143
|
-
<option name="x" value="
|
|
144
|
-
<option name="y" value="
|
|
145
|
-
<option name="width" value="
|
|
138
|
+
<component name="ProjectFrameBounds" extendedState="6">
|
|
139
|
+
<option name="x" value="337" />
|
|
140
|
+
<option name="y" value="23" />
|
|
141
|
+
<option name="width" value="1744" />
|
|
146
142
|
<option name="height" value="1417" />
|
|
147
143
|
</component>
|
|
148
144
|
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
|
|
@@ -151,6 +147,7 @@
|
|
|
151
147
|
<foldersAlwaysOnTop value="true" />
|
|
152
148
|
</navigator>
|
|
153
149
|
<panes>
|
|
150
|
+
<pane id="Scope" />
|
|
154
151
|
<pane id="ProjectPane">
|
|
155
152
|
<subPane>
|
|
156
153
|
<expand>
|
|
@@ -187,7 +184,6 @@
|
|
|
187
184
|
<select />
|
|
188
185
|
</subPane>
|
|
189
186
|
</pane>
|
|
190
|
-
<pane id="Scope" />
|
|
191
187
|
</panes>
|
|
192
188
|
</component>
|
|
193
189
|
<component name="PropertiesComponent">
|
|
@@ -371,7 +367,10 @@
|
|
|
371
367
|
<workItem from="1568713630536" duration="479000" />
|
|
372
368
|
<workItem from="1568742150603" duration="2613000" />
|
|
373
369
|
<workItem from="1568804163183" duration="4250000" />
|
|
374
|
-
<workItem from="1568903822546" duration="
|
|
370
|
+
<workItem from="1568903822546" duration="6127000" />
|
|
371
|
+
<workItem from="1569001602054" duration="169000" />
|
|
372
|
+
<workItem from="1569348110256" duration="8311000" />
|
|
373
|
+
<workItem from="1571040695976" duration="13948000" />
|
|
375
374
|
</task>
|
|
376
375
|
<task id="LOCAL-00001" summary="Ruby Gem for Project Forecasting Methods">
|
|
377
376
|
<created>1567089862211</created>
|
|
@@ -429,7 +428,28 @@
|
|
|
429
428
|
<option name="project" value="LOCAL" />
|
|
430
429
|
<updated>1567431288540</updated>
|
|
431
430
|
</task>
|
|
432
|
-
<
|
|
431
|
+
<task id="LOCAL-00009" summary="Ruby Gem for Project Forecasting Methods">
|
|
432
|
+
<created>1568991144561</created>
|
|
433
|
+
<option name="number" value="00009" />
|
|
434
|
+
<option name="presentableId" value="LOCAL-00009" />
|
|
435
|
+
<option name="project" value="LOCAL" />
|
|
436
|
+
<updated>1568991144561</updated>
|
|
437
|
+
</task>
|
|
438
|
+
<task id="LOCAL-00010" summary="Ruby Gem for Project Forecasting Methods">
|
|
439
|
+
<created>1568991895864</created>
|
|
440
|
+
<option name="number" value="00010" />
|
|
441
|
+
<option name="presentableId" value="LOCAL-00010" />
|
|
442
|
+
<option name="project" value="LOCAL" />
|
|
443
|
+
<updated>1568991895864</updated>
|
|
444
|
+
</task>
|
|
445
|
+
<task id="LOCAL-00011" summary="Adding new methods to build takt times as well as montecarlo charts.">
|
|
446
|
+
<created>1571300686156</created>
|
|
447
|
+
<option name="number" value="00011" />
|
|
448
|
+
<option name="presentableId" value="LOCAL-00011" />
|
|
449
|
+
<option name="project" value="LOCAL" />
|
|
450
|
+
<updated>1571300686156</updated>
|
|
451
|
+
</task>
|
|
452
|
+
<option name="localTasksCounter" value="12" />
|
|
433
453
|
<servers />
|
|
434
454
|
</component>
|
|
435
455
|
<component name="TestHistory">
|
|
@@ -465,7 +485,7 @@
|
|
|
465
485
|
</history-entry>
|
|
466
486
|
</component>
|
|
467
487
|
<component name="TimeTrackingManager">
|
|
468
|
-
<option name="totallyTimeSpent" value="
|
|
488
|
+
<option name="totallyTimeSpent" value="62254000" />
|
|
469
489
|
</component>
|
|
470
490
|
<component name="TodoView">
|
|
471
491
|
<todo-panel id="selected-file">
|
|
@@ -477,15 +497,15 @@
|
|
|
477
497
|
</todo-panel>
|
|
478
498
|
</component>
|
|
479
499
|
<component name="ToolWindowManager">
|
|
480
|
-
<frame x="
|
|
500
|
+
<frame x="0" y="23" width="2560" height="1417" extended-state="6" />
|
|
481
501
|
<editor active="true" />
|
|
482
502
|
<layout>
|
|
483
|
-
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.
|
|
484
|
-
<window_info id="Structure" order="1" side_tool="true" weight="0.
|
|
503
|
+
<window_info active="true" content_ui="combo" id="Project" order="0" sideWeight="0.499385" visible="true" weight="0.14098491" />
|
|
504
|
+
<window_info id="Structure" order="1" sideWeight="0.500615" side_tool="true" visible="true" weight="0.14098491" />
|
|
485
505
|
<window_info id="Favorites" order="2" side_tool="true" />
|
|
486
506
|
<window_info anchor="bottom" id="Message" order="0" />
|
|
487
507
|
<window_info anchor="bottom" id="Find" order="1" />
|
|
488
|
-
<window_info anchor="bottom" id="Run" order="2" sideWeight="0.49955356"
|
|
508
|
+
<window_info anchor="bottom" id="Run" order="2" sideWeight="0.49955356" weight="0.35064936" />
|
|
489
509
|
<window_info anchor="bottom" id="Debug" order="3" weight="0.39954165" />
|
|
490
510
|
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
|
|
491
511
|
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
|
|
@@ -493,7 +513,7 @@
|
|
|
493
513
|
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
|
|
494
514
|
<window_info anchor="bottom" id="Database Changes" order="8" />
|
|
495
515
|
<window_info anchor="bottom" id="Version Control" order="9" />
|
|
496
|
-
<window_info anchor="bottom" id="Terminal" order="10" sideWeight="0.49955356" weight="0.
|
|
516
|
+
<window_info anchor="bottom" id="Terminal" order="10" sideWeight="0.49955356" visible="true" weight="0.3789152" />
|
|
497
517
|
<window_info anchor="bottom" id="Event Log" order="11" sideWeight="0.50044644" side_tool="true" weight="0.32925898" />
|
|
498
518
|
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
|
|
499
519
|
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
|
|
@@ -527,7 +547,19 @@
|
|
|
527
547
|
</component>
|
|
528
548
|
<component name="VcsManagerConfiguration">
|
|
529
549
|
<MESSAGE value="Ruby Gem for Project Forecasting Methods" />
|
|
530
|
-
<
|
|
550
|
+
<MESSAGE value="Adding new methods to build takt times as well as montecarlo charts." />
|
|
551
|
+
<option name="LAST_COMMIT_MESSAGE" value="Adding new methods to build takt times as well as montecarlo charts." />
|
|
552
|
+
</component>
|
|
553
|
+
<component name="XDebuggerManager">
|
|
554
|
+
<breakpoint-manager>
|
|
555
|
+
<breakpoints>
|
|
556
|
+
<line-breakpoint enabled="true" type="ruby-line">
|
|
557
|
+
<url>file://$PROJECT_DIR$/montecasting.gemspec</url>
|
|
558
|
+
<line>7</line>
|
|
559
|
+
<option name="timeStamp" value="1" />
|
|
560
|
+
</line-breakpoint>
|
|
561
|
+
</breakpoints>
|
|
562
|
+
</breakpoint-manager>
|
|
531
563
|
</component>
|
|
532
564
|
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
|
533
565
|
<SUITE FILE_PATH="coverage/montecasting@Montecasting_get_a_combination_of__ocurences_of_the_cycle_time_array__montecasting.rcov" NAME="Montecasting get a combination of #ocurences of the cycle time array: montecasting Coverage Results" MODIFIED="1568800292631" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="montecasting" />
|
|
@@ -570,13 +602,6 @@
|
|
|
570
602
|
</state>
|
|
571
603
|
</provider>
|
|
572
604
|
</entry>
|
|
573
|
-
<entry file="file://$PROJECT_DIR$/montecasting.gemspec">
|
|
574
|
-
<provider selected="true" editor-type-id="text-editor">
|
|
575
|
-
<state relative-caret-position="242">
|
|
576
|
-
<caret line="11" column="233" selection-start-line="11" selection-start-column="26" selection-end-line="11" selection-end-column="233" />
|
|
577
|
-
</state>
|
|
578
|
-
</provider>
|
|
579
|
-
</entry>
|
|
580
605
|
<entry file="file://$PROJECT_DIR$/README.md">
|
|
581
606
|
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
|
582
607
|
<state split_layout="SPLIT">
|
|
@@ -587,12 +612,40 @@
|
|
|
587
612
|
</state>
|
|
588
613
|
</provider>
|
|
589
614
|
</entry>
|
|
615
|
+
<entry file="file://$APPLICATION_HOME_DIR$/rubystubs26/enumerable.rb">
|
|
616
|
+
<provider selected="true" editor-type-id="text-editor">
|
|
617
|
+
<state relative-caret-position="17468">
|
|
618
|
+
<caret line="794" column="8" selection-start-line="794" selection-start-column="8" selection-end-line="794" selection-end-column="8" />
|
|
619
|
+
</state>
|
|
620
|
+
</provider>
|
|
621
|
+
</entry>
|
|
622
|
+
<entry file="file://$APPLICATION_HOME_DIR$/rubystubs26/array.rb">
|
|
623
|
+
<provider selected="true" editor-type-id="text-editor">
|
|
624
|
+
<state relative-caret-position="5280">
|
|
625
|
+
<caret line="240" column="6" selection-start-line="240" selection-start-column="6" selection-end-line="240" selection-end-column="6" />
|
|
626
|
+
</state>
|
|
627
|
+
</provider>
|
|
628
|
+
</entry>
|
|
590
629
|
<entry file="file://$PROJECT_DIR$/Gemfile.lock">
|
|
591
630
|
<provider selected="true" editor-type-id="text-editor" />
|
|
592
631
|
</entry>
|
|
593
632
|
<entry file="file://$PROJECT_DIR$/.rspec_status">
|
|
594
633
|
<provider selected="true" editor-type-id="text-editor" />
|
|
595
634
|
</entry>
|
|
635
|
+
<entry file="file://$USER_HOME$/.rvm/gems/ruby-2.6.3/gems/bundler-2.0.2/lib/bundler.rb">
|
|
636
|
+
<provider selected="true" editor-type-id="text-editor">
|
|
637
|
+
<state relative-caret-position="324">
|
|
638
|
+
<caret line="134" selection-start-line="134" selection-end-line="134" />
|
|
639
|
+
</state>
|
|
640
|
+
</provider>
|
|
641
|
+
</entry>
|
|
642
|
+
<entry file="file://$PROJECT_DIR$/lib/montecasting/version.rb">
|
|
643
|
+
<provider selected="true" editor-type-id="text-editor">
|
|
644
|
+
<state relative-caret-position="132">
|
|
645
|
+
<caret line="6" selection-start-line="6" selection-end-line="6" />
|
|
646
|
+
</state>
|
|
647
|
+
</provider>
|
|
648
|
+
</entry>
|
|
596
649
|
<entry file="file://$PROJECT_DIR$/lib/montecasting/numeric.rb">
|
|
597
650
|
<provider selected="true" editor-type-id="text-editor">
|
|
598
651
|
<state relative-caret-position="242">
|
|
@@ -600,45 +653,59 @@
|
|
|
600
653
|
</state>
|
|
601
654
|
</provider>
|
|
602
655
|
</entry>
|
|
603
|
-
<entry file="file://$
|
|
656
|
+
<entry file="file://$USER_HOME$/.rvm/gems/ruby-2.6.3/gems/rspec-expectations-3.8.4/lib/rspec/matchers.rb">
|
|
604
657
|
<provider selected="true" editor-type-id="text-editor">
|
|
605
|
-
<state relative-caret-position="
|
|
606
|
-
<caret line="
|
|
658
|
+
<state relative-caret-position="6298">
|
|
659
|
+
<caret line="394" column="8" selection-start-line="394" selection-start-column="8" selection-end-line="394" selection-end-column="8" />
|
|
607
660
|
</state>
|
|
608
661
|
</provider>
|
|
609
662
|
</entry>
|
|
610
|
-
<entry file="file://$APPLICATION_HOME_DIR$/rubystubs26/
|
|
663
|
+
<entry file="file://$APPLICATION_HOME_DIR$/rubystubs26/hash.rb">
|
|
611
664
|
<provider selected="true" editor-type-id="text-editor">
|
|
612
|
-
<state relative-caret-position="
|
|
613
|
-
<caret line="
|
|
665
|
+
<state relative-caret-position="251">
|
|
666
|
+
<caret line="116" column="6" selection-start-line="116" selection-start-column="6" selection-end-line="116" selection-end-column="6" />
|
|
614
667
|
</state>
|
|
615
668
|
</provider>
|
|
616
669
|
</entry>
|
|
617
|
-
<entry file="file://$APPLICATION_HOME_DIR$/rubystubs26/
|
|
670
|
+
<entry file="file://$APPLICATION_HOME_DIR$/rubystubs26/basic_object.rb">
|
|
618
671
|
<provider selected="true" editor-type-id="text-editor">
|
|
619
|
-
<state relative-caret-position="
|
|
620
|
-
<caret line="
|
|
672
|
+
<state relative-caret-position="87">
|
|
673
|
+
<caret line="140" column="8" selection-start-line="140" selection-start-column="8" selection-end-line="140" selection-end-column="8" />
|
|
621
674
|
</state>
|
|
622
675
|
</provider>
|
|
623
676
|
</entry>
|
|
624
|
-
<entry file="file://$PROJECT_DIR$/
|
|
677
|
+
<entry file="file://$PROJECT_DIR$/lib/montecasting/hash.rb">
|
|
678
|
+
<provider selected="true" editor-type-id="text-editor">
|
|
679
|
+
<state relative-caret-position="154">
|
|
680
|
+
<caret line="7" lean-forward="true" selection-start-line="7" selection-end-line="7" />
|
|
681
|
+
</state>
|
|
682
|
+
</provider>
|
|
683
|
+
</entry>
|
|
684
|
+
<entry file="file://$PROJECT_DIR$/lib/montecasting/array.rb">
|
|
625
685
|
<provider selected="true" editor-type-id="text-editor">
|
|
626
|
-
<state relative-caret-position="
|
|
627
|
-
<caret line="
|
|
686
|
+
<state relative-caret-position="396">
|
|
687
|
+
<caret line="18" lean-forward="true" selection-start-line="18" selection-end-line="18" />
|
|
628
688
|
</state>
|
|
629
689
|
</provider>
|
|
630
690
|
</entry>
|
|
631
691
|
<entry file="file://$PROJECT_DIR$/lib/montecasting.rb">
|
|
632
692
|
<provider selected="true" editor-type-id="text-editor">
|
|
633
|
-
<state relative-caret-position="
|
|
634
|
-
<caret line="
|
|
693
|
+
<state relative-caret-position="313">
|
|
694
|
+
<caret line="79" column="7" lean-forward="true" selection-start-line="79" selection-start-column="7" selection-end-line="79" selection-end-column="7" />
|
|
635
695
|
</state>
|
|
636
696
|
</provider>
|
|
637
697
|
</entry>
|
|
638
|
-
<entry file="file://$PROJECT_DIR$/
|
|
698
|
+
<entry file="file://$PROJECT_DIR$/spec/montecasting_spec.rb">
|
|
639
699
|
<provider selected="true" editor-type-id="text-editor">
|
|
640
|
-
<state relative-caret-position="
|
|
641
|
-
<caret line="
|
|
700
|
+
<state relative-caret-position="577">
|
|
701
|
+
<caret line="92" column="5" lean-forward="true" selection-start-line="92" selection-start-column="5" selection-end-line="92" selection-end-column="5" />
|
|
702
|
+
</state>
|
|
703
|
+
</provider>
|
|
704
|
+
</entry>
|
|
705
|
+
<entry file="file://$PROJECT_DIR$/montecasting.gemspec">
|
|
706
|
+
<provider selected="true" editor-type-id="text-editor">
|
|
707
|
+
<state relative-caret-position="88">
|
|
708
|
+
<caret line="4" column="18" selection-start-line="4" selection-start-column="18" selection-end-line="4" selection-end-column="18" />
|
|
642
709
|
</state>
|
|
643
710
|
</provider>
|
|
644
711
|
</entry>
|
data/Gemfile.lock
CHANGED
data/lib/montecasting/array.rb
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
|
|
2
1
|
class Array
|
|
3
2
|
def array_to_hash
|
|
4
3
|
each {|sprint|
|
|
5
4
|
#the string must contain a par elements, first would be the kay and the next one the value
|
|
6
5
|
#Fist step it transforma a string into an array and then creates a hash getting pairs.
|
|
7
|
-
yield Hash[*sprint.chop[(sprint.index('[')+1)..-1].gsub!('=',',').split(',')]
|
|
6
|
+
yield Hash[*sprint.chop[(sprint.index('[') + 1)..-1].gsub!('=', ',').split(',')]
|
|
8
7
|
}
|
|
9
8
|
end
|
|
10
9
|
|
|
@@ -18,4 +17,14 @@ class Array
|
|
|
18
17
|
(sorted[(len - 1) / 2] + sorted[len / 2]) / 2.0
|
|
19
18
|
end
|
|
20
19
|
|
|
20
|
+
def group_to_hash
|
|
21
|
+
uniq.to_h {|s| [s, count{|elem| elem.equal? s}]}
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def to_chart
|
|
25
|
+
result = Array.new
|
|
26
|
+
each_with_index {|value, index| result << {x: value, y: yield(index)} }
|
|
27
|
+
result
|
|
28
|
+
end
|
|
29
|
+
|
|
21
30
|
end
|
data/lib/montecasting/version.rb
CHANGED
data/lib/montecasting.rb
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
require
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
require 'montecasting/version'
|
|
2
|
+
require 'montecasting/numeric'
|
|
3
|
+
require 'montecasting/array'
|
|
4
|
+
require 'montecasting/hash'
|
|
4
5
|
|
|
5
6
|
module Montecasting
|
|
6
7
|
|
|
@@ -23,48 +24,68 @@ module Montecasting
|
|
|
23
24
|
|
|
24
25
|
def self.wip_limit(array_of_times, start_date, end_date = DateTime.now)
|
|
25
26
|
return nil unless array_of_times.all? Numeric
|
|
26
|
-
(array_of_times.map(&:abs).average * throughput(array_of_times.count,start_date,end_date))
|
|
27
|
+
(array_of_times.map(&:abs).average * throughput(array_of_times.count, start_date, end_date))
|
|
27
28
|
end
|
|
28
29
|
|
|
29
|
-
def self.throughput(number_of_issues, start_date, end_date =
|
|
30
|
+
def self.throughput(number_of_issues, start_date, end_date = DateTime.now)
|
|
30
31
|
return nil unless number_of_issues.is_a? Numeric
|
|
31
|
-
((number_of_issues).to_f / week_days(start_date,end_date).count)
|
|
32
|
+
((number_of_issues).to_f / week_days(start_date, end_date).count)
|
|
32
33
|
end
|
|
33
34
|
|
|
34
35
|
def self.week_days(start_date, end_date = DateTime.now)
|
|
35
|
-
(start_date..end_date).select {
|
|
36
|
+
(start_date..end_date).select {|day| !day.sunday? && !day.saturday?}
|
|
36
37
|
end
|
|
37
38
|
|
|
38
39
|
def self.percent_of_items_at(array_of_times, time_units = 0)
|
|
39
40
|
return nil unless array_of_times.all? Numeric
|
|
40
|
-
array_of_times.select {
|
|
41
|
+
array_of_times.select {|time| time < time_units}.count.percent_of(array_of_times.count)
|
|
41
42
|
end
|
|
42
43
|
end
|
|
43
44
|
|
|
44
45
|
# Here will place all those method to generate forecasting charts
|
|
45
46
|
class Forecasting
|
|
47
|
+
|
|
46
48
|
def self.takt_times(cycle_time = [], rand_generator = 1000)
|
|
47
49
|
return nil unless cycle_time.all? Numeric
|
|
48
|
-
result = Matrix.build(rand_generator,cycle_time.count) {
|
|
49
|
-
result.row_vectors.map {
|
|
50
|
+
result = Matrix.build(rand_generator, cycle_time.count) {cycle_time.at(rand(0...cycle_time.count))}
|
|
51
|
+
result.row_vectors.map {|r| (r.inject(:+).to_f / cycle_time.count).round(2)}
|
|
50
52
|
end
|
|
51
53
|
|
|
52
54
|
def self.montecarlo(takt_times = [], backlog_items = 0, days_iteration = 0)
|
|
53
55
|
return nil unless takt_times.all? Numeric
|
|
54
56
|
takt_times.map {|tt| ((tt * backlog_items) / days_iteration).round(0)}
|
|
55
57
|
end
|
|
58
|
+
|
|
56
59
|
end
|
|
57
60
|
|
|
58
61
|
#Charts class will contains all those methods to charts data, using rickshaw JS library it's pretty straight forward.
|
|
59
62
|
class Charts
|
|
60
63
|
|
|
64
|
+
def self.chart_takt_times(array_of_times = [])
|
|
65
|
+
return nil unless array_of_times.all? Numeric
|
|
66
|
+
result = Forecasting.takt_times(array_of_times)&.sort.group_to_hash
|
|
67
|
+
legend = result.to_chart(&:to_i)
|
|
68
|
+
x_axis = result.to_chart { |value| value.percent_of(1000).ceil(0) }
|
|
69
|
+
y_axis = result.keys.to_chart { |index| result.values.take(index).inject(0) {|acc, elem| acc + elem}.percent_of(1000).ceil(0) }
|
|
70
|
+
[legend,x_axis,y_axis]
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def self.chart_montecarlo(array_of_times = [], backlog_items = 0, days_iteration = 0)
|
|
74
|
+
return nil unless array_of_times.all? Numeric
|
|
75
|
+
result = Forecasting.takt_times(array_of_times)&.map! {|elem| ((elem * backlog_items) / days_iteration).ceil(0)}.group_to_hash
|
|
76
|
+
legend = result.to_chart(&:to_i)
|
|
77
|
+
x_axis = result.to_chart { |value| value.percent_of(1000).ceil(0) }
|
|
78
|
+
y_axis = result.keys.to_chart { |index| result.values.take(index).inject(0) {|acc, elem| acc + elem}.percent_of(1000).ceil(0) }
|
|
79
|
+
[legend,x_axis,y_axis]
|
|
80
|
+
end
|
|
81
|
+
|
|
61
82
|
def self.chart_cycle_time(array_of_times = [], round_to = 0.5)
|
|
62
83
|
return nil unless array_of_times.all? Numeric
|
|
63
84
|
data = Array.new {Array.new}
|
|
64
|
-
ct_sorted = array_of_times.sort.map {|ct| ct.abs.to_f.round(round_to)
|
|
85
|
+
ct_sorted = array_of_times.sort.map {|ct| ct.abs.to_f.round(round_to)}
|
|
65
86
|
max_index = ct_sorted.last
|
|
66
87
|
data[0] = [*0..max_index].map {|index| {x: index, y: index}}
|
|
67
|
-
data[1] = [*0..max_index].map {|index| {x: index, y: ct_sorted.count {|elem| elem.eql? index
|
|
88
|
+
data[1] = [*0..max_index].map {|index| {x: index, y: ct_sorted.count {|elem| elem.eql? index}}}
|
|
68
89
|
data[2] = data[1].map.with_index {|sc, index| {x: index, y: data[1].take(index).inject(0) {|acc, elem| acc + elem[:y]}.percent_of(ct_sorted.count).round(1)}}
|
|
69
90
|
data
|
|
70
91
|
end
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
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.5.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-10-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -75,8 +75,17 @@ files:
|
|
|
75
75
|
- bin/setup
|
|
76
76
|
- lib/montecasting.rb
|
|
77
77
|
- lib/montecasting/array.rb
|
|
78
|
+
- lib/montecasting/hash.rb
|
|
78
79
|
- lib/montecasting/numeric.rb
|
|
79
80
|
- lib/montecasting/version.rb
|
|
81
|
+
- montecasting-0.1.0.gem
|
|
82
|
+
- montecasting-0.2.0.gem
|
|
83
|
+
- montecasting-0.2.1.gem
|
|
84
|
+
- montecasting-0.2.2.gem
|
|
85
|
+
- montecasting-0.2.3.gem
|
|
86
|
+
- montecasting-0.2.4.gem
|
|
87
|
+
- montecasting-0.3.0.gem
|
|
88
|
+
- montecasting-0.4.0.gem
|
|
80
89
|
- montecasting.gemspec
|
|
81
90
|
homepage: https://github.com/eddygarcas/montecasting
|
|
82
91
|
licenses:
|