montecasting 0.2.1 → 0.2.2

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: 845d93e951a3815b71d75ccaa5988c185708c85ce73978649b76be8f85a270e1
4
- data.tar.gz: '0140319d569fa7ff4a59e7c688dc9f1b938c05de6f56d449c9d0c273301756e7'
3
+ metadata.gz: 2718332712dc852f8579b17a991c737bd1ed74964eee9e62ed0c7393eeb21a5d
4
+ data.tar.gz: eacea2120088e7e2f3088384aeb78da22acaa67002431e5b32183538b091b299
5
5
  SHA512:
6
- metadata.gz: f26de337cf8e776d6ce6be752ddb0b774852057100423dc94aa04cac762c75f7074b13a6d454ef6ed36364b9a17ebb67696d206e78784800cfb51c4850ff6d84
7
- data.tar.gz: 032d2863f62fad9f625e3314af83f8f10d47f5c9ef7d354185f176eeece6be89975069059bbfb9b0f79b5408f8427027100753506a2cd5e8685fb850476e3d74
6
+ metadata.gz: 6b72cf3bd18a5e659d1cff7caa12184fbd54c10173199b402fb6fa6edc5eb03cb450146ee2f301cae1a4205158122b26c15a3f2888edff5465e93a5fbc70ef96
7
+ data.tar.gz: 25a89a23e3574e098133f192ae58fee03391a41e0a22519ca6a1b5e1efbafa32e25c17d8f9b8850f0ffa7b9f3b26652da8192c38a8a6b971032ca75f60a4eca1
data/.idea/workspace.xml CHANGED
@@ -3,8 +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 afterPath="$PROJECT_DIR$/lib/numeric.rb" afterDir="false" />
6
7
  <change beforePath="$PROJECT_DIR$/lib/montecasting.rb" beforeDir="false" afterPath="$PROJECT_DIR$/lib/montecasting.rb" afterDir="false" />
7
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$/montecasting.gemspec" beforeDir="false" afterPath="$PROJECT_DIR$/montecasting.gemspec" afterDir="false" />
8
10
  </list>
9
11
  <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
10
12
  <option name="SHOW_DIALOG" value="false" />
@@ -17,8 +19,17 @@
17
19
  <file pinned="false" current-in-tab="true">
18
20
  <entry file="file://$PROJECT_DIR$/lib/montecasting.rb">
19
21
  <provider selected="true" editor-type-id="text-editor">
20
- <state relative-caret-position="286">
21
- <caret line="13" column="24" lean-forward="true" selection-start-line="13" selection-start-column="24" selection-end-line="13" selection-end-column="24" />
22
+ <state relative-caret-position="330">
23
+ <caret line="15" column="24" lean-forward="true" selection-start-line="15" selection-start-column="24" selection-end-line="15" selection-end-column="24" />
24
+ </state>
25
+ </provider>
26
+ </entry>
27
+ </file>
28
+ <file pinned="false" current-in-tab="false">
29
+ <entry file="file://$PROJECT_DIR$/lib/numeric.rb">
30
+ <provider selected="true" editor-type-id="text-editor">
31
+ <state relative-caret-position="242">
32
+ <caret line="11" column="3" lean-forward="true" selection-start-line="11" selection-start-column="3" selection-end-line="11" selection-end-column="3" />
22
33
  </state>
23
34
  </provider>
24
35
  </entry>
@@ -26,8 +37,8 @@
26
37
  <file pinned="false" current-in-tab="false">
27
38
  <entry file="file://$PROJECT_DIR$/montecasting.gemspec">
28
39
  <provider selected="true" editor-type-id="text-editor">
29
- <state relative-caret-position="264">
30
- <caret line="12" column="67" selection-start-line="12" selection-start-column="67" selection-end-line="12" selection-end-column="67" />
40
+ <state relative-caret-position="220">
41
+ <caret line="10" column="86" selection-start-line="10" selection-start-column="86" selection-end-line="10" selection-end-column="86" />
31
42
  </state>
32
43
  </provider>
33
44
  </entry>
@@ -35,8 +46,8 @@
35
46
  <file pinned="false" current-in-tab="false">
36
47
  <entry file="file://$PROJECT_DIR$/lib/montecasting/version.rb">
37
48
  <provider selected="true" editor-type-id="text-editor">
38
- <state relative-caret-position="88">
39
- <caret line="4" column="18" selection-start-line="4" selection-start-column="18" selection-end-line="4" selection-end-column="18" />
49
+ <state relative-caret-position="132">
50
+ <caret line="6" lean-forward="true" selection-start-line="6" selection-end-line="6" />
40
51
  </state>
41
52
  </provider>
42
53
  </entry>
@@ -57,6 +68,13 @@
57
68
  </file>
58
69
  </leaf>
59
70
  </component>
71
+ <component name="FileTemplateManagerImpl">
72
+ <option name="RECENT_TEMPLATES">
73
+ <list>
74
+ <option value="Ruby File" />
75
+ </list>
76
+ </option>
77
+ </component>
60
78
  <component name="Git.Settings">
61
79
  <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
62
80
  </component>
@@ -64,9 +82,10 @@
64
82
  <option name="CHANGED_PATHS">
65
83
  <list>
66
84
  <option value="$PROJECT_DIR$/.gitignore" />
85
+ <option value="$PROJECT_DIR$/lib/numeric.rb" />
67
86
  <option value="$PROJECT_DIR$/montecasting.gemspec" />
68
- <option value="$PROJECT_DIR$/lib/montecasting.rb" />
69
87
  <option value="$PROJECT_DIR$/lib/montecasting/version.rb" />
88
+ <option value="$PROJECT_DIR$/lib/montecasting.rb" />
70
89
  </list>
71
90
  </option>
72
91
  </component>
@@ -153,7 +172,7 @@
153
172
  <option name="number" value="Default" />
154
173
  <option name="presentableId" value="Default" />
155
174
  <updated>1567089679850</updated>
156
- <workItem from="1567089680950" duration="5100000" />
175
+ <workItem from="1567089680950" duration="6585000" />
157
176
  </task>
158
177
  <task id="LOCAL-00001" summary="Ruby Gem for Project Forecasting Methods">
159
178
  <created>1567089862211</created>
@@ -180,11 +199,10 @@
180
199
  <servers />
181
200
  </component>
182
201
  <component name="TimeTrackingManager">
183
- <option name="totallyTimeSpent" value="5100000" />
202
+ <option name="totallyTimeSpent" value="6585000" />
184
203
  </component>
185
204
  <component name="ToolWindowManager">
186
205
  <frame x="119" y="23" width="2282" height="1417" extended-state="0" />
187
- <editor active="true" />
188
206
  <layout>
189
207
  <window_info id="Favorites" side_tool="true" />
190
208
  <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.26741073" />
@@ -192,8 +210,8 @@
192
210
  <window_info anchor="bottom" id="Docker" show_stripe_button="false" />
193
211
  <window_info anchor="bottom" id="Database Changes" />
194
212
  <window_info anchor="bottom" id="Version Control" />
195
- <window_info anchor="bottom" id="Terminal" sideWeight="0.49955356" visible="true" weight="0.32925898" />
196
- <window_info anchor="bottom" id="Event Log" sideWeight="0.50044644" side_tool="true" visible="true" weight="0.32925898" />
213
+ <window_info anchor="bottom" id="Terminal" sideWeight="0.49955356" weight="0.32925898" />
214
+ <window_info anchor="bottom" id="Event Log" sideWeight="0.50044644" side_tool="true" weight="0.32925898" />
197
215
  <window_info anchor="bottom" id="Message" order="0" />
198
216
  <window_info anchor="bottom" id="Find" order="1" />
199
217
  <window_info anchor="bottom" id="Run" order="2" sideWeight="0.4997916" weight="0.32925898" />
@@ -206,6 +224,27 @@
206
224
  <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
207
225
  <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
208
226
  </layout>
227
+ <layout-to-restore>
228
+ <window_info id="Favorites" order="0" side_tool="true" />
229
+ <window_info active="true" content_ui="combo" id="Project" order="1" visible="true" weight="0.26741073" />
230
+ <window_info id="Structure" order="2" side_tool="true" weight="0.25" />
231
+ <window_info anchor="bottom" id="Docker" order="0" show_stripe_button="false" />
232
+ <window_info anchor="bottom" id="Terminal" order="1" sideWeight="0.49955356" visible="true" weight="0.32925898" />
233
+ <window_info anchor="bottom" id="Event Log" order="2" sideWeight="0.50044644" side_tool="true" visible="true" weight="0.32925898" />
234
+ <window_info anchor="bottom" id="Database Changes" order="3" />
235
+ <window_info anchor="bottom" id="Version Control" order="4" />
236
+ <window_info anchor="bottom" id="Message" order="5" />
237
+ <window_info anchor="bottom" id="Find" order="6" />
238
+ <window_info anchor="bottom" id="Run" order="7" sideWeight="0.4997916" weight="0.32925898" />
239
+ <window_info anchor="bottom" id="Debug" order="8" weight="0.4" />
240
+ <window_info anchor="bottom" id="Cvs" order="9" weight="0.25" />
241
+ <window_info anchor="bottom" id="Inspection" order="10" weight="0.4" />
242
+ <window_info anchor="bottom" id="TODO" order="11" />
243
+ <window_info anchor="right" id="Database" order="0" />
244
+ <window_info anchor="right" id="Commander" internal_type="SLIDING" order="1" type="SLIDING" weight="0.4" />
245
+ <window_info anchor="right" id="Ant Build" order="2" weight="0.25" />
246
+ <window_info anchor="right" content_ui="combo" id="Hierarchy" order="3" weight="0.25" />
247
+ </layout-to-restore>
209
248
  </component>
210
249
  <component name="TypeScriptGeneratedFilesManager">
211
250
  <option name="version" value="1" />
@@ -227,22 +266,29 @@
227
266
  </entry>
228
267
  <entry file="file://$PROJECT_DIR$/montecasting.gemspec">
229
268
  <provider selected="true" editor-type-id="text-editor">
230
- <state relative-caret-position="264">
231
- <caret line="12" column="67" selection-start-line="12" selection-start-column="67" selection-end-line="12" selection-end-column="67" />
269
+ <state relative-caret-position="220">
270
+ <caret line="10" column="86" selection-start-line="10" selection-start-column="86" selection-end-line="10" selection-end-column="86" />
271
+ </state>
272
+ </provider>
273
+ </entry>
274
+ <entry file="file://$PROJECT_DIR$/lib/numeric.rb">
275
+ <provider selected="true" editor-type-id="text-editor">
276
+ <state relative-caret-position="242">
277
+ <caret line="11" column="3" lean-forward="true" selection-start-line="11" selection-start-column="3" selection-end-line="11" selection-end-column="3" />
232
278
  </state>
233
279
  </provider>
234
280
  </entry>
235
281
  <entry file="file://$PROJECT_DIR$/lib/montecasting/version.rb">
236
282
  <provider selected="true" editor-type-id="text-editor">
237
- <state relative-caret-position="88">
238
- <caret line="4" column="18" selection-start-line="4" selection-start-column="18" selection-end-line="4" selection-end-column="18" />
283
+ <state relative-caret-position="132">
284
+ <caret line="6" lean-forward="true" selection-start-line="6" selection-end-line="6" />
239
285
  </state>
240
286
  </provider>
241
287
  </entry>
242
288
  <entry file="file://$PROJECT_DIR$/lib/montecasting.rb">
243
289
  <provider selected="true" editor-type-id="text-editor">
244
- <state relative-caret-position="286">
245
- <caret line="13" column="24" lean-forward="true" selection-start-line="13" selection-start-column="24" selection-end-line="13" selection-end-column="24" />
290
+ <state relative-caret-position="330">
291
+ <caret line="15" column="24" lean-forward="true" selection-start-line="15" selection-start-column="24" selection-end-line="15" selection-end-column="24" />
246
292
  </state>
247
293
  </provider>
248
294
  </entry>
data/lib/montecasting.rb CHANGED
@@ -1,8 +1,9 @@
1
1
  require "montecasting/version"
2
+ require_relative 'numeric'
2
3
 
3
4
  module Montecasting
4
5
 
5
- def variance average_closed_points, by_sprint = []
6
+ def self.variance average_closed_points, by_sprint = []
6
7
  variance = 0
7
8
  by_sprint.each {|spt|
8
9
  variance += ((average_closed_points - spt.to_i) ** 2)
@@ -10,18 +11,13 @@ module Montecasting
10
11
  Math.sqrt(variance).round(0)
11
12
  end
12
13
 
13
- class Time
14
- def remaining toDate
15
- return 'n/d' if toDate.blank?
16
- intervals = [["d", 1], ["h", 24], ["m", 60]]
17
- elapsed = toDate.to_datetime - self.to_datetime
18
- interval = 1.0
19
- parts = intervals.collect do |name, new_interval|
20
- interval /= new_interval
21
- number, elapsed = elapsed.abs.divmod(interval)
22
- "#{number.to_i}#{name}" unless number.to_i == 0
23
- end
24
- "#{parts.join}"
25
- end
14
+ def self.chart_cycle_time array_of_cycle_times = []
15
+ data = Array.new {Array.new}
16
+ max_index = array_of_cycle_times.count
17
+ input = array_of_cycle_times.map!(&:ceil)
18
+ data[0] = [*0..max_index].map {|index| {x: index, y: input.count {|elem| elem.eql? index}}}
19
+ data[1] = [*0..max_index].map {|index| {x: index, y: index}}
20
+ data[2] = data[0].map.with_index {|storycount, index| {x: index, y: data[0].take(index).inject(0) {|acc, elem| acc + elem[:y]}.percent_of(input.count).round(1)}}
21
+ data
26
22
  end
27
23
  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.2.1"
5
+ VERSION = "0.2.2"
6
6
  end
data/lib/numeric.rb ADDED
@@ -0,0 +1,12 @@
1
+
2
+ class Numeric
3
+ def percent_of(n)
4
+ percnt = self.to_f / n.to_f * 100.0
5
+ percnt.nan? ? 0 : percnt
6
+ end
7
+
8
+ def number_of(n)
9
+ nmbof = (self.to_f * n.to_f) / 100.0
10
+ nmbof.nan? ? 0 : nmbof
11
+ end
12
+ end
data/montecasting.gemspec CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
8
8
  spec.authors = ["Eduard Garcia Castello"]
9
9
  spec.email = ["edugarcas@gmail.com"]
10
10
 
11
- spec.summary = %q{Ruby Gem for forecasting software projects}
12
- spec.description = %q{Montecasting provides a set of forcasting techniques to be used on software project management or product development}
11
+ spec.summary = %q{Ruby Gem for forecasting software projects (Work in progress)}
12
+ spec.description = %q{Montecasting will provide a set of forcasting techniques to be used on software project management or product development. This gem is on its early stages, I'll keep adding functionality on following months.}
13
13
  spec.homepage = "https://github.com/eddygarcas/montecasting"
14
14
  spec.license = "MIT"
15
15
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: montecasting
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduard Garcia Castello
@@ -52,8 +52,9 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
- description: Montecasting provides a set of forcasting techniques to be used on software
56
- project management or product development
55
+ description: Montecasting will provide a set of forcasting techniques to be used on
56
+ software project management or product development. This gem is on its early stages,
57
+ I'll keep adding functionality on following months.
57
58
  email:
58
59
  - edugarcas@gmail.com
59
60
  executables: []
@@ -74,6 +75,7 @@ files:
74
75
  - bin/setup
75
76
  - lib/montecasting.rb
76
77
  - lib/montecasting/version.rb
78
+ - lib/numeric.rb
77
79
  - montecasting.gemspec
78
80
  homepage: https://github.com/eddygarcas/montecasting
79
81
  licenses:
@@ -101,5 +103,5 @@ requirements: []
101
103
  rubygems_version: 3.0.3
102
104
  signing_key:
103
105
  specification_version: 4
104
- summary: Ruby Gem for forecasting software projects
106
+ summary: Ruby Gem for forecasting software projects (Work in progress)
105
107
  test_files: []