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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f6017e1e55b9b62bc83ca853d889138d8ca1f88a6dff69fe9888c178dee80963
4
- data.tar.gz: 5129fa237671d3ea2e05dc4a10fa9abe22bea608a136017c8c3fedfbfb1c8db1
3
+ metadata.gz: 0151c30542f70e66090d268bfe1acfc76ab1f7b6ace5d8352932f6aab4e51bb2
4
+ data.tar.gz: 3ed6e6e59d0cab7e074e986edd3fae4c7498133338a611f547ffba5bf2e78912
5
5
  SHA512:
6
- metadata.gz: 634577f47906bc38c0f12d0469c76a47c7fc0148bf9582bbf0fdf844b5a5cd172cd2d06f066ba171b034ab874944786962ccbee8ee23ae28eb7713527e9ea8d6
7
- data.tar.gz: 214f101ff8540c0728290ced0458fb2e42c9a518030608af1051e1246089ccb47df3f63482de8b62ce39ebadc1a266684f4824dc98fdc6a61f124def85295d40
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="-486">
23
- <caret line="20" column="33" selection-start-line="20" selection-start-column="33" selection-end-line="20" selection-end-column="33" />
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://$APPLICATION_HOME_DIR$/rubystubs26/enumerable.rb">
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="320">
32
- <caret line="520" column="8" selection-start-line="520" selection-start-column="8" selection-end-line="520" selection-end-column="8" />
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://$APPLICATION_HOME_DIR$/rubystubs26/array.rb">
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="320">
41
- <caret line="1972" column="8" selection-start-line="1972" selection-start-column="8" selection-end-line="1972" selection-end-column="8" />
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://$PROJECT_DIR$/spec/montecasting_spec.rb">
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="506">
50
- <caret line="23" lean-forward="true" selection-start-line="23" selection-end-line="23" />
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$/lib/montecasting/numeric.rb">
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="242">
59
- <caret line="11" column="3" selection-start-line="11" selection-start-column="3" selection-end-line="11" selection-end-column="3" />
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="false">
65
- <entry file="file://$PROJECT_DIR$/lib/montecasting/array.rb">
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="440">
68
- <caret line="20" column="3" lean-forward="true" selection-start-line="20" selection-start-column="3" selection-end-line="20" selection-end-column="3" />
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://$PROJECT_DIR$/README.md">
75
- <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
76
- <state split_layout="SPLIT">
77
- <first_editor relative-caret-position="1320">
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$/Gemfile.lock">
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://$PROJECT_DIR$/.rspec_status">
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="true">
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" lean-forward="true" selection-start-line="6" selection-end-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$/lib/montecasting/version.rb" />
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="412" />
144
- <option name="y" value="30" />
145
- <option name="width" value="1815" />
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="5673000" />
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
- <option name="localTasksCounter" value="9" />
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="39372000" />
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="412" y="30" width="1815" height="1417" extended-state="0" />
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.11618725" />
484
- <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
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" visible="true" weight="0.35064936" />
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.32543927" />
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
- <option name="LAST_COMMIT_MESSAGE" value="Ruby Gem for Project Forecasting Methods" />
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://$PROJECT_DIR$/lib/montecasting/array.rb">
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="440">
606
- <caret line="20" column="3" lean-forward="true" selection-start-line="20" selection-start-column="3" selection-end-line="20" selection-end-column="3" />
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/array.rb">
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="320">
613
- <caret line="1972" column="8" selection-start-line="1972" selection-start-column="8" selection-end-line="1972" selection-end-column="8" />
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/enumerable.rb">
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="320">
620
- <caret line="520" column="8" selection-start-line="520" selection-start-column="8" selection-end-line="520" selection-end-column="8" />
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$/spec/montecasting_spec.rb">
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="506">
627
- <caret line="23" lean-forward="true" selection-start-line="23" selection-end-line="23" />
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="-486">
634
- <caret line="20" column="33" selection-start-line="20" selection-start-column="33" selection-end-line="20" selection-end-column="33" />
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$/lib/montecasting/version.rb">
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="132">
641
- <caret line="6" lean-forward="true" selection-start-line="6" selection-end-line="6" />
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
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- montecasting (0.3.0)
4
+ montecasting (0.5.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -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
@@ -0,0 +1,7 @@
1
+ class Hash
2
+ def to_chart
3
+ result = Array.new
4
+ each {|key, value| result << {x: key, y: yield(value)} }
5
+ result
6
+ end
7
+ end
@@ -2,5 +2,5 @@ module Montecasting
2
2
  # MAJOR version when you make incompatible API changes,
3
3
  # MINOR version when you add functionality in a backwards compatible manner, and
4
4
  # PATCH version when you make backwards compatible bug fixes.
5
- VERSION = "0.4.0"
5
+ VERSION = "0.5.0"
6
6
  end
data/lib/montecasting.rb CHANGED
@@ -1,6 +1,7 @@
1
- require "montecasting/version"
2
- require_relative 'montecasting/numeric'
3
- require_relative 'montecasting/array'
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 = DateTime.now)
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 { |day| !day.sunday? && !day.saturday? }
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 { |time| time < time_units}.count.percent_of(array_of_times.count)
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) { cycle_time.at(rand(0...cycle_time.count))}
49
- result.row_vectors.map { |r| (r.inject(:+).to_f / cycle_time.count).round(2)}
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.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-09-20 00:00:00.000000000 Z
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: