montecasting 0.3.0 → 0.4.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 +223 -53
- data/Gemfile.lock +1 -1
- data/README.md +3 -0
- data/lib/montecasting/array.rb +0 -8
- data/lib/montecasting/version.rb +1 -1
- data/lib/montecasting.rb +25 -16
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6017e1e55b9b62bc83ca853d889138d8ca1f88a6dff69fe9888c178dee80963
|
4
|
+
data.tar.gz: 5129fa237671d3ea2e05dc4a10fa9abe22bea608a136017c8c3fedfbfb1c8db1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 634577f47906bc38c0f12d0469c76a47c7fc0148bf9582bbf0fdf844b5a5cd172cd2d06f066ba171b034ab874944786962ccbee8ee23ae28eb7713527e9ea8d6
|
7
|
+
data.tar.gz: 214f101ff8540c0728290ced0458fb2e42c9a518030608af1051e1246089ccb47df3f63482de8b62ce39ebadc1a266684f4824dc98fdc6a61f124def85295d40
|
data/.idea/workspace.xml
CHANGED
@@ -3,7 +3,10 @@
|
|
3
3
|
<component name="ChangeListManager">
|
4
4
|
<list default="true" id="b096ae44-ac17-43c8-99fa-e6348bbbcd82" name="Default Changelist" comment="">
|
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" />
|
6
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" />
|
7
10
|
</list>
|
8
11
|
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
9
12
|
<option name="SHOW_DIALOG" value="false" />
|
@@ -16,53 +19,53 @@
|
|
16
19
|
<file pinned="false" current-in-tab="false">
|
17
20
|
<entry file="file://$PROJECT_DIR$/lib/montecasting.rb">
|
18
21
|
<provider selected="true" editor-type-id="text-editor">
|
19
|
-
<state relative-caret-position="
|
20
|
-
<caret line="
|
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" />
|
21
24
|
</state>
|
22
25
|
</provider>
|
23
26
|
</entry>
|
24
27
|
</file>
|
25
28
|
<file pinned="false" current-in-tab="false">
|
26
|
-
<entry file="file://$
|
29
|
+
<entry file="file://$APPLICATION_HOME_DIR$/rubystubs26/enumerable.rb">
|
27
30
|
<provider selected="true" editor-type-id="text-editor">
|
28
|
-
<state relative-caret-position="
|
29
|
-
<caret line="
|
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" />
|
30
33
|
</state>
|
31
34
|
</provider>
|
32
35
|
</entry>
|
33
36
|
</file>
|
34
37
|
<file pinned="false" current-in-tab="false">
|
35
|
-
<entry file="file://$
|
38
|
+
<entry file="file://$APPLICATION_HOME_DIR$/rubystubs26/array.rb">
|
36
39
|
<provider selected="true" editor-type-id="text-editor">
|
37
|
-
<state relative-caret-position="
|
38
|
-
<caret line="
|
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" />
|
39
42
|
</state>
|
40
43
|
</provider>
|
41
44
|
</entry>
|
42
45
|
</file>
|
43
46
|
<file pinned="false" current-in-tab="false">
|
44
|
-
<entry file="file://$PROJECT_DIR$/
|
47
|
+
<entry file="file://$PROJECT_DIR$/spec/montecasting_spec.rb">
|
45
48
|
<provider selected="true" editor-type-id="text-editor">
|
46
|
-
<state relative-caret-position="
|
47
|
-
<caret line="
|
49
|
+
<state relative-caret-position="506">
|
50
|
+
<caret line="23" lean-forward="true" selection-start-line="23" selection-end-line="23" />
|
48
51
|
</state>
|
49
52
|
</provider>
|
50
53
|
</entry>
|
51
54
|
</file>
|
52
55
|
<file pinned="false" current-in-tab="false">
|
53
|
-
<entry file="file://$
|
56
|
+
<entry file="file://$PROJECT_DIR$/lib/montecasting/numeric.rb">
|
54
57
|
<provider selected="true" editor-type-id="text-editor">
|
55
|
-
<state relative-caret-position="
|
56
|
-
<caret line="
|
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" />
|
57
60
|
</state>
|
58
61
|
</provider>
|
59
62
|
</entry>
|
60
63
|
</file>
|
61
64
|
<file pinned="false" current-in-tab="false">
|
62
|
-
<entry file="file://$PROJECT_DIR$/montecasting.
|
65
|
+
<entry file="file://$PROJECT_DIR$/lib/montecasting/array.rb">
|
63
66
|
<provider selected="true" editor-type-id="text-editor">
|
64
|
-
<state relative-caret-position="
|
65
|
-
<caret line="
|
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" />
|
66
69
|
</state>
|
67
70
|
</provider>
|
68
71
|
</entry>
|
@@ -71,8 +74,8 @@
|
|
71
74
|
<entry file="file://$PROJECT_DIR$/README.md">
|
72
75
|
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
73
76
|
<state split_layout="SPLIT">
|
74
|
-
<first_editor relative-caret-position="
|
75
|
-
<caret line="
|
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" />
|
76
79
|
</first_editor>
|
77
80
|
<second_editor />
|
78
81
|
</state>
|
@@ -136,11 +139,11 @@
|
|
136
139
|
</list>
|
137
140
|
</option>
|
138
141
|
</component>
|
139
|
-
<component name="ProjectFrameBounds"
|
140
|
-
<option name="x" value="
|
141
|
-
<option name="y" value="
|
142
|
-
<option name="width" value="
|
143
|
-
<option name="height" value="
|
142
|
+
<component name="ProjectFrameBounds">
|
143
|
+
<option name="x" value="412" />
|
144
|
+
<option name="y" value="30" />
|
145
|
+
<option name="width" value="1815" />
|
146
|
+
<option name="height" value="1417" />
|
144
147
|
</component>
|
145
148
|
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
|
146
149
|
<component name="ProjectView">
|
@@ -148,7 +151,6 @@
|
|
148
151
|
<foldersAlwaysOnTop value="true" />
|
149
152
|
</navigator>
|
150
153
|
<panes>
|
151
|
-
<pane id="Scope" />
|
152
154
|
<pane id="ProjectPane">
|
153
155
|
<subPane>
|
154
156
|
<expand>
|
@@ -185,13 +187,15 @@
|
|
185
187
|
<select />
|
186
188
|
</subPane>
|
187
189
|
</pane>
|
190
|
+
<pane id="Scope" />
|
188
191
|
</panes>
|
189
192
|
</component>
|
190
193
|
<component name="PropertiesComponent">
|
194
|
+
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
|
191
195
|
<property name="WebServerToolWindowFactoryState" value="false" />
|
192
196
|
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
|
193
197
|
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
|
194
|
-
<property name="settings.editor.selected.configurable" value="
|
198
|
+
<property name="settings.editor.selected.configurable" value="configurable.group.editor" />
|
195
199
|
</component>
|
196
200
|
<component name="RecentsManager">
|
197
201
|
<key name="MoveFile.RECENT_KEYS">
|
@@ -210,8 +214,41 @@
|
|
210
214
|
</list>
|
211
215
|
</option>
|
212
216
|
</component>
|
213
|
-
<component name="RunManager">
|
214
|
-
<configuration name="
|
217
|
+
<component name="RunManager" selected="RSpec.Run spec 'montecasting_spec': montecasting">
|
218
|
+
<configuration name="Montecasting Send an array which contains things other than numbers: montecasting" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
|
219
|
+
<module name="montecasting" />
|
220
|
+
<predefined_log_file enabled="true" id="RUBY_RSPEC" />
|
221
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="" />
|
222
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
223
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
224
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
225
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
226
|
+
<envs>
|
227
|
+
<env name="JRUBY_OPTS" value="-X+O" />
|
228
|
+
</envs>
|
229
|
+
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
|
230
|
+
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
231
|
+
<EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov">
|
232
|
+
<COVERAGE_PATTERN ENABLED="true">
|
233
|
+
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
234
|
+
</COVERAGE_PATTERN>
|
235
|
+
</EXTENSION>
|
236
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
237
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/montecasting_spec.rb" />
|
238
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
|
239
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="'**/*_spec.rb'" />
|
240
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="Montecasting Send an array which contains things other than numbers" />
|
241
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
|
242
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
|
243
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
|
244
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
|
245
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
|
246
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
|
247
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
|
248
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
|
249
|
+
<method v="2" />
|
250
|
+
</configuration>
|
251
|
+
<configuration name="Montecasting Send empty array to get the takt times: montecasting" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
|
215
252
|
<module name="montecasting" />
|
216
253
|
<predefined_log_file enabled="true" id="RUBY_RSPEC" />
|
217
254
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="" />
|
@@ -233,6 +270,72 @@
|
|
233
270
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/montecasting_spec.rb" />
|
234
271
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
|
235
272
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="'**/*_spec.rb'" />
|
273
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="Montecasting Send empty array to get the takt times" />
|
274
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
|
275
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
|
276
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
|
277
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
|
278
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
|
279
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
|
280
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
|
281
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
|
282
|
+
<method v="2" />
|
283
|
+
</configuration>
|
284
|
+
<configuration name="Montecasting get a combination of #ocurences of the cycle time array: montecasting" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
|
285
|
+
<module name="montecasting" />
|
286
|
+
<predefined_log_file enabled="true" id="RUBY_RSPEC" />
|
287
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="" />
|
288
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
289
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="true" />
|
290
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="rbenv: 2.6.3" />
|
291
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
292
|
+
<envs>
|
293
|
+
<env name="JRUBY_OPTS" value="-X+O" />
|
294
|
+
</envs>
|
295
|
+
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
|
296
|
+
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
297
|
+
<EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov">
|
298
|
+
<COVERAGE_PATTERN ENABLED="true">
|
299
|
+
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
300
|
+
</COVERAGE_PATTERN>
|
301
|
+
</EXTENSION>
|
302
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
303
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/montecasting_spec.rb" />
|
304
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
|
305
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="'**/*_spec.rb'" />
|
306
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="Montecasting get a combination of #ocurences of the cycle time array" />
|
307
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
|
308
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
|
309
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
|
310
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
|
311
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
|
312
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
|
313
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
|
314
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
|
315
|
+
<method v="2" />
|
316
|
+
</configuration>
|
317
|
+
<configuration name="Run spec 'montecasting_spec': montecasting" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
|
318
|
+
<module name="montecasting" />
|
319
|
+
<predefined_log_file enabled="true" id="RUBY_RSPEC" />
|
320
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="" />
|
321
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
322
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="true" />
|
323
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="rbenv: 2.6.3" />
|
324
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
325
|
+
<envs>
|
326
|
+
<env name="JRUBY_OPTS" value="-X+O" />
|
327
|
+
</envs>
|
328
|
+
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
|
329
|
+
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
330
|
+
<EXTENSION ID="RubyCoverageRunConfigurationExtension" track_test_folders="true" runner="rcov">
|
331
|
+
<COVERAGE_PATTERN ENABLED="true">
|
332
|
+
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
333
|
+
</COVERAGE_PATTERN>
|
334
|
+
</EXTENSION>
|
335
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
336
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/montecasting_spec.rb" />
|
337
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
|
338
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="'**/*_spec.rb'" />
|
236
339
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
|
237
340
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
|
238
341
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
|
@@ -247,6 +350,9 @@
|
|
247
350
|
<recent_temporary>
|
248
351
|
<list>
|
249
352
|
<item itemvalue="RSpec.Run spec 'montecasting_spec': montecasting" />
|
353
|
+
<item itemvalue="RSpec.Montecasting Send an array which contains things other than numbers: montecasting" />
|
354
|
+
<item itemvalue="RSpec.Montecasting Send empty array to get the takt times: montecasting" />
|
355
|
+
<item itemvalue="RSpec.Montecasting get a combination of #ocurences of the cycle time array: montecasting" />
|
250
356
|
</list>
|
251
357
|
</recent_temporary>
|
252
358
|
</component>
|
@@ -259,7 +365,13 @@
|
|
259
365
|
<option name="presentableId" value="Default" />
|
260
366
|
<updated>1567089679850</updated>
|
261
367
|
<workItem from="1567089680950" duration="18608000" />
|
262
|
-
<workItem from="1567414586349" duration="
|
368
|
+
<workItem from="1567414586349" duration="5211000" />
|
369
|
+
<workItem from="1567518250957" duration="1041000" />
|
370
|
+
<workItem from="1568278205621" duration="1497000" />
|
371
|
+
<workItem from="1568713630536" duration="479000" />
|
372
|
+
<workItem from="1568742150603" duration="2613000" />
|
373
|
+
<workItem from="1568804163183" duration="4250000" />
|
374
|
+
<workItem from="1568903822546" duration="5673000" />
|
263
375
|
</task>
|
264
376
|
<task id="LOCAL-00001" summary="Ruby Gem for Project Forecasting Methods">
|
265
377
|
<created>1567089862211</created>
|
@@ -310,16 +422,50 @@
|
|
310
422
|
<option name="project" value="LOCAL" />
|
311
423
|
<updated>1567417423329</updated>
|
312
424
|
</task>
|
313
|
-
<
|
425
|
+
<task id="LOCAL-00008" summary="Ruby Gem for Project Forecasting Methods">
|
426
|
+
<created>1567431288540</created>
|
427
|
+
<option name="number" value="00008" />
|
428
|
+
<option name="presentableId" value="LOCAL-00008" />
|
429
|
+
<option name="project" value="LOCAL" />
|
430
|
+
<updated>1567431288540</updated>
|
431
|
+
</task>
|
432
|
+
<option name="localTasksCounter" value="9" />
|
314
433
|
<servers />
|
315
434
|
</component>
|
316
435
|
<component name="TestHistory">
|
317
|
-
<history-entry file="Run_spec_'montecasting_spec'__montecasting - 2019.
|
436
|
+
<history-entry file="Run_spec_'montecasting_spec'__montecasting - 2019.09.20 at 16h 12m 11s.xml">
|
437
|
+
<configuration name="Run spec 'montecasting_spec': montecasting" configurationId="RSpecRunConfigurationType" />
|
438
|
+
</history-entry>
|
439
|
+
<history-entry file="Run_spec_'montecasting_spec'__montecasting - 2019.09.20 at 16h 12m 44s.xml">
|
440
|
+
<configuration name="Run spec 'montecasting_spec': montecasting" configurationId="RSpecRunConfigurationType" />
|
441
|
+
</history-entry>
|
442
|
+
<history-entry file="Run_spec_'montecasting_spec'__montecasting - 2019.09.20 at 16h 13m 00s.xml">
|
443
|
+
<configuration name="Run spec 'montecasting_spec': montecasting" configurationId="RSpecRunConfigurationType" />
|
444
|
+
</history-entry>
|
445
|
+
<history-entry file="Run_spec_'montecasting_spec'__montecasting - 2019.09.20 at 16h 13m 01s.xml">
|
446
|
+
<configuration name="Run spec 'montecasting_spec': montecasting" configurationId="RSpecRunConfigurationType" />
|
447
|
+
</history-entry>
|
448
|
+
<history-entry file="Run_spec_'montecasting_spec'__montecasting - 2019.09.20 at 16h 13m 07s.xml">
|
449
|
+
<configuration name="Run spec 'montecasting_spec': montecasting" configurationId="RSpecRunConfigurationType" />
|
450
|
+
</history-entry>
|
451
|
+
<history-entry file="Run_spec_'montecasting_spec'__montecasting - 2019.09.20 at 16h 13m 32s.xml">
|
452
|
+
<configuration name="Run spec 'montecasting_spec': montecasting" configurationId="RSpecRunConfigurationType" />
|
453
|
+
</history-entry>
|
454
|
+
<history-entry file="Run_spec_'montecasting_spec'__montecasting - 2019.09.20 at 16h 13m 57s.xml">
|
455
|
+
<configuration name="Run spec 'montecasting_spec': montecasting" configurationId="RSpecRunConfigurationType" />
|
456
|
+
</history-entry>
|
457
|
+
<history-entry file="Run_spec_'montecasting_spec'__montecasting - 2019.09.20 at 16h 42m 57s.xml">
|
458
|
+
<configuration name="Run spec 'montecasting_spec': montecasting" configurationId="RSpecRunConfigurationType" />
|
459
|
+
</history-entry>
|
460
|
+
<history-entry file="Run_spec_'montecasting_spec'__montecasting - 2019.09.20 at 16h 44m 40s.xml">
|
461
|
+
<configuration name="Run spec 'montecasting_spec': montecasting" configurationId="RSpecRunConfigurationType" />
|
462
|
+
</history-entry>
|
463
|
+
<history-entry file="Run_spec_'montecasting_spec'__montecasting - 2019.09.20 at 16h 45m 30s.xml">
|
318
464
|
<configuration name="Run spec 'montecasting_spec': montecasting" configurationId="RSpecRunConfigurationType" />
|
319
465
|
</history-entry>
|
320
466
|
</component>
|
321
467
|
<component name="TimeTrackingManager">
|
322
|
-
<option name="totallyTimeSpent" value="
|
468
|
+
<option name="totallyTimeSpent" value="39372000" />
|
323
469
|
</component>
|
324
470
|
<component name="TodoView">
|
325
471
|
<todo-panel id="selected-file">
|
@@ -331,23 +477,23 @@
|
|
331
477
|
</todo-panel>
|
332
478
|
</component>
|
333
479
|
<component name="ToolWindowManager">
|
334
|
-
<frame x="
|
480
|
+
<frame x="412" y="30" width="1815" height="1417" extended-state="0" />
|
335
481
|
<editor active="true" />
|
336
482
|
<layout>
|
337
|
-
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.
|
483
|
+
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.11618725" />
|
338
484
|
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
|
339
485
|
<window_info id="Favorites" order="2" side_tool="true" />
|
340
486
|
<window_info anchor="bottom" id="Message" order="0" />
|
341
487
|
<window_info anchor="bottom" id="Find" order="1" />
|
342
|
-
<window_info anchor="bottom" id="Run" order="2" sideWeight="0.49955356" weight="0.
|
343
|
-
<window_info anchor="bottom" id="Debug" order="3" weight="0.
|
488
|
+
<window_info anchor="bottom" id="Run" order="2" sideWeight="0.49955356" visible="true" weight="0.35064936" />
|
489
|
+
<window_info anchor="bottom" id="Debug" order="3" weight="0.39954165" />
|
344
490
|
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
|
345
491
|
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
|
346
492
|
<window_info anchor="bottom" id="TODO" order="6" weight="0.32925898" />
|
347
493
|
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
|
348
494
|
<window_info anchor="bottom" id="Database Changes" order="8" />
|
349
495
|
<window_info anchor="bottom" id="Version Control" order="9" />
|
350
|
-
<window_info anchor="bottom" id="Terminal" order="10" sideWeight="0.49955356"
|
496
|
+
<window_info anchor="bottom" id="Terminal" order="10" sideWeight="0.49955356" weight="0.32543927" />
|
351
497
|
<window_info anchor="bottom" id="Event Log" order="11" sideWeight="0.50044644" side_tool="true" weight="0.32925898" />
|
352
498
|
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
|
353
499
|
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
|
@@ -384,7 +530,10 @@
|
|
384
530
|
<option name="LAST_COMMIT_MESSAGE" value="Ruby Gem for Project Forecasting Methods" />
|
385
531
|
</component>
|
386
532
|
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
387
|
-
<SUITE FILE_PATH="coverage/montecasting@
|
533
|
+
<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" />
|
534
|
+
<SUITE FILE_PATH="coverage/montecasting@Montecasting_Send_empty_array_to_get_the_takt_times__montecasting.rcov" NAME="Montecasting Send empty array to get the takt times: montecasting Coverage Results" MODIFIED="1568970202345" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="montecasting" />
|
535
|
+
<SUITE FILE_PATH="coverage/montecasting@Montecasting_Send_an_array_which_contains_things_other_than_numbers__montecasting.rcov" NAME="Montecasting Send an array which contains things other than numbers: montecasting Coverage Results" MODIFIED="1568985776851" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="montecasting" />
|
536
|
+
<SUITE FILE_PATH="coverage/montecasting@Run_spec__montecasting_spec___montecasting.rcov" NAME="Run spec 'montecasting_spec': montecasting Coverage Results" MODIFIED="1568990729706" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="montecasting" />
|
388
537
|
</component>
|
389
538
|
<component name="editorHistoryManager">
|
390
539
|
<entry file="file://$PROJECT_DIR$/Rakefile">
|
@@ -397,16 +546,16 @@
|
|
397
546
|
</state>
|
398
547
|
</provider>
|
399
548
|
</entry>
|
400
|
-
<entry file="file://$PROJECT_DIR$/
|
549
|
+
<entry file="file://$PROJECT_DIR$/spec/spec_helper.rb">
|
550
|
+
<provider selected="true" editor-type-id="text-editor" />
|
551
|
+
</entry>
|
552
|
+
<entry file="file://$USER_HOME$/.rvm/gems/ruby-2.4.0/gems/debase-0.2.3.beta5/lib/debase.rb">
|
401
553
|
<provider selected="true" editor-type-id="text-editor">
|
402
|
-
<state relative-caret-position="
|
403
|
-
<caret line="
|
554
|
+
<state relative-caret-position="66">
|
555
|
+
<caret line="3" selection-start-line="3" selection-end-line="3" />
|
404
556
|
</state>
|
405
557
|
</provider>
|
406
558
|
</entry>
|
407
|
-
<entry file="file://$PROJECT_DIR$/spec/spec_helper.rb">
|
408
|
-
<provider selected="true" editor-type-id="text-editor" />
|
409
|
-
</entry>
|
410
559
|
<entry file="file://$PROJECT_DIR$/Gemfile">
|
411
560
|
<provider selected="true" editor-type-id="text-editor">
|
412
561
|
<state relative-caret-position="88">
|
@@ -431,8 +580,8 @@
|
|
431
580
|
<entry file="file://$PROJECT_DIR$/README.md">
|
432
581
|
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
433
582
|
<state split_layout="SPLIT">
|
434
|
-
<first_editor relative-caret-position="
|
435
|
-
<caret line="
|
583
|
+
<first_editor relative-caret-position="1320">
|
584
|
+
<caret line="60" column="8" selection-start-line="60" selection-start-column="8" selection-end-line="60" selection-end-column="8" />
|
436
585
|
</first_editor>
|
437
586
|
<second_editor />
|
438
587
|
</state>
|
@@ -444,24 +593,45 @@
|
|
444
593
|
<entry file="file://$PROJECT_DIR$/.rspec_status">
|
445
594
|
<provider selected="true" editor-type-id="text-editor" />
|
446
595
|
</entry>
|
596
|
+
<entry file="file://$PROJECT_DIR$/lib/montecasting/numeric.rb">
|
597
|
+
<provider selected="true" editor-type-id="text-editor">
|
598
|
+
<state relative-caret-position="242">
|
599
|
+
<caret line="11" column="3" selection-start-line="11" selection-start-column="3" selection-end-line="11" selection-end-column="3" />
|
600
|
+
</state>
|
601
|
+
</provider>
|
602
|
+
</entry>
|
447
603
|
<entry file="file://$PROJECT_DIR$/lib/montecasting/array.rb">
|
448
604
|
<provider selected="true" editor-type-id="text-editor">
|
449
|
-
<state relative-caret-position="
|
450
|
-
<caret line="
|
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" />
|
451
607
|
</state>
|
452
608
|
</provider>
|
453
609
|
</entry>
|
454
|
-
<entry file="file://$
|
610
|
+
<entry file="file://$APPLICATION_HOME_DIR$/rubystubs26/array.rb">
|
611
|
+
<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" />
|
614
|
+
</state>
|
615
|
+
</provider>
|
616
|
+
</entry>
|
617
|
+
<entry file="file://$APPLICATION_HOME_DIR$/rubystubs26/enumerable.rb">
|
455
618
|
<provider selected="true" editor-type-id="text-editor">
|
456
|
-
<state relative-caret-position="
|
457
|
-
<caret line="
|
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" />
|
458
621
|
</state>
|
459
622
|
</provider>
|
460
623
|
</entry>
|
461
624
|
<entry file="file://$PROJECT_DIR$/spec/montecasting_spec.rb">
|
462
625
|
<provider selected="true" editor-type-id="text-editor">
|
463
|
-
<state relative-caret-position="
|
464
|
-
<caret line="
|
626
|
+
<state relative-caret-position="506">
|
627
|
+
<caret line="23" lean-forward="true" selection-start-line="23" selection-end-line="23" />
|
628
|
+
</state>
|
629
|
+
</provider>
|
630
|
+
</entry>
|
631
|
+
<entry file="file://$PROJECT_DIR$/lib/montecasting.rb">
|
632
|
+
<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" />
|
465
635
|
</state>
|
466
636
|
</provider>
|
467
637
|
</entry>
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
[![Gem Version](https://badge.fury.io/rb/montecasting.svg)](https://badge.fury.io/rb/montecasting)
|
2
|
+
![Travis](https://travis-ci.org/eddygarcas/montecasting.svg?branch=master)
|
3
|
+
|
1
4
|
# Montecasting
|
2
5
|
|
3
6
|
Montecasting will provide a set of forecasting techniques to be used on software project management or product development.
|
data/lib/montecasting/array.rb
CHANGED
data/lib/montecasting/version.rb
CHANGED
data/lib/montecasting.rb
CHANGED
@@ -6,57 +6,66 @@ module Montecasting
|
|
6
6
|
|
7
7
|
#Metrics class will contains methods to get specific product development metrics pr
|
8
8
|
class Metrics
|
9
|
-
def self.variance
|
10
|
-
return unless array_of_times.all?
|
9
|
+
def self.variance(array_of_times = [])
|
10
|
+
return nil unless array_of_times.all? Numeric
|
11
11
|
variance = 0
|
12
|
-
avg = array_of_times.map
|
12
|
+
avg = array_of_times.map(&:abs).average
|
13
13
|
array_of_times.each {|spt|
|
14
14
|
variance += ((avg - spt) ** 2)
|
15
15
|
}
|
16
16
|
Math.sqrt(variance)
|
17
17
|
end
|
18
18
|
|
19
|
-
def self.median
|
20
|
-
return unless array_of_times.all?
|
21
|
-
array_of_times.map
|
19
|
+
def self.median(array_of_times = [])
|
20
|
+
return nil unless array_of_times.all? Numeric
|
21
|
+
array_of_times.map(&:abs).median
|
22
22
|
end
|
23
23
|
|
24
24
|
def self.wip_limit(array_of_times, start_date, end_date = DateTime.now)
|
25
|
-
return unless array_of_times.all?
|
25
|
+
return nil unless array_of_times.all? Numeric
|
26
26
|
(array_of_times.map(&:abs).average * throughput(array_of_times.count,start_date,end_date))
|
27
27
|
end
|
28
28
|
|
29
|
-
def self.throughput
|
29
|
+
def self.throughput(number_of_issues, start_date, end_date = DateTime.now)
|
30
|
+
return nil unless number_of_issues.is_a? Numeric
|
30
31
|
((number_of_issues).to_f / week_days(start_date,end_date).count)
|
31
32
|
end
|
32
33
|
|
33
|
-
def self.week_days
|
34
|
-
(start_date..
|
34
|
+
def self.week_days(start_date, end_date = DateTime.now)
|
35
|
+
(start_date..end_date).select { |day| !day.sunday? && !day.saturday? }
|
35
36
|
end
|
36
37
|
|
37
|
-
def self.percent_of_items_at
|
38
|
-
return unless array_of_times.all?
|
38
|
+
def self.percent_of_items_at(array_of_times, time_units = 0)
|
39
|
+
return nil unless array_of_times.all? Numeric
|
39
40
|
array_of_times.select { |time| time < time_units}.count.percent_of(array_of_times.count)
|
40
41
|
end
|
41
42
|
end
|
42
43
|
|
43
44
|
# Here will place all those method to generate forecasting charts
|
44
45
|
class Forecasting
|
46
|
+
def self.takt_times(cycle_time = [], rand_generator = 1000)
|
47
|
+
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
|
+
end
|
45
51
|
|
52
|
+
def self.montecarlo(takt_times = [], backlog_items = 0, days_iteration = 0)
|
53
|
+
return nil unless takt_times.all? Numeric
|
54
|
+
takt_times.map {|tt| ((tt * backlog_items) / days_iteration).round(0)}
|
55
|
+
end
|
46
56
|
end
|
47
57
|
|
48
|
-
|
49
58
|
#Charts class will contains all those methods to charts data, using rickshaw JS library it's pretty straight forward.
|
50
59
|
class Charts
|
51
60
|
|
52
|
-
def self.chart_cycle_time
|
53
|
-
return unless array_of_times.all?
|
61
|
+
def self.chart_cycle_time(array_of_times = [], round_to = 0.5)
|
62
|
+
return nil unless array_of_times.all? Numeric
|
54
63
|
data = Array.new {Array.new}
|
55
64
|
ct_sorted = array_of_times.sort.map {|ct| ct.abs.to_f.round(round_to) }
|
56
65
|
max_index = ct_sorted.last
|
57
66
|
data[0] = [*0..max_index].map {|index| {x: index, y: index}}
|
58
67
|
data[1] = [*0..max_index].map {|index| {x: index, y: ct_sorted.count {|elem| elem.eql? index }}}
|
59
|
-
data[2] = data[1].map.with_index {|
|
68
|
+
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)}}
|
60
69
|
data
|
61
70
|
end
|
62
71
|
end
|
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.4.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-
|
11
|
+
date: 2019-09-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|