montecasting 0.4.0 → 0.5.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 +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:
|