montecasting 0.2.1 → 0.2.2

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