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 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: