kuku 0.2 → 0.3

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.
Files changed (3) hide show
  1. checksums.yaml +8 -8
  2. data/lib/kuku.rb +30 -23
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MzdjNDVmNzkzMDE0ZjZiNTQzMGFlMzE0NzY3ZTgyZTg0ZjUyMzY0OA==
4
+ YWUzMmMxOTIyYzI5NGUwZmJjZTZiMDk0MTMxMGU1MWZlOWRlMmRhZg==
5
5
  data.tar.gz: !binary |-
6
- ZmNkNGQzZWY0ZmUwZTRmZDJjZjVjNWY4YjMzZjU1Njc0M2UzNTk3Mg==
6
+ NDQxMjEyNWM4ZWY0ZTBmMzE4MzhlYTJiYTA4YTRkNTZjMWM3MDhlZg==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- YzY1ZmMzZWJlYjU3ZmJhNDA1NjdjYzlkNzY5MmE3YjVhNWRjZTRjMWVmM2Zj
10
- OWRiZjlmODQzYjMyNjQzZTBmZGVkODBkMGEwOTdjZjU1ZTJjMmY3OGQyZjdh
11
- ZGQ3NDRiOTUzOTU2ODkwMWY0NTE3ZWMwYTIyNTBkZTAwZjg2MWE=
9
+ MTI5Y2EyOGMzZTZiZDU4ZDljZjI0NWU1ZGRmYzk4Y2E4ZjZhODdkMWFlZmRi
10
+ NDA2MjQ4NDhjNGJjM2QzMWJkYjA5M2U1YWZiMDI3NzhmM2U2ZGI4ZDBkNmQ0
11
+ OGZhZGE4OGU3NmQ4MjJmZWIyZDhkZDJmYjZlZTk0NTI3MTUxZGY=
12
12
  data.tar.gz: !binary |-
13
- YjNlZDZiN2QxZTM5NzYwZjYyNjFkMzRhYWQwMDkzZDllYmI5ZGQyZmRmZDk4
14
- MTNkMDMzMzJhZjQwZTEyNThiYWRlYjc3Y2RhN2RmMmM2YWVhZjk4MGFkNjc0
15
- ODJhMWE3Njc2MzAyOTNjMzVjZTY1YTY5MjkxMTQ0MzU2Yzc5Njg=
13
+ OGM5ZmQ2NTBhZDA4NTdjNWE1NDA3MzU0NmViYjE0M2YxYzdlODVlNjk5N2Zj
14
+ ZWY3ZDZmMjNhZWEzNDlkZTY1Njg4MDRiYjQ2YmMzMDU0MjU1YzE5YzliYzdh
15
+ NTg4MDc2NmJjYTEwZjZhYjM3YWY5ZWM3NWYxYjgwMzc1NDI5YTA=
@@ -1,12 +1,12 @@
1
1
  module ChainAnalysis
2
2
  def stability method_name, n=8
3
- elements(method_name, n).stability
3
+ elements(method_name, n).stats.stability
4
4
  end
5
5
  def average_growth method_name, n=8
6
- elements(method_name, n).average_growth
6
+ elements(method_name, n).stats.average_growth
7
7
  end
8
8
  def mean method_name, n=8
9
- elements(method_name, n).mean
9
+ elements(method_name, n).stats.mean
10
10
  end
11
11
  def elements method_name, n=8
12
12
  as_unchained_array[0..(n-1)].map{|s| s.method(method_name).call}
@@ -15,7 +15,7 @@ end
15
15
 
16
16
 
17
17
  class Object
18
- include ChainAnalysis
18
+ # include ChainAnalysis
19
19
  attr_accessor :next, :previous
20
20
  def nvl v
21
21
  v ? v : 0
@@ -65,23 +65,7 @@ class Object
65
65
  end
66
66
  end
67
67
 
68
-
69
- class Array
70
- def as_chain
71
- self.size.times{|i|
72
- a = self[i+1]
73
- b = self[i-1]
74
- (self[i].next = a) if a
75
- (self[i].previous = b) if (b && i > 0)
76
- }
77
- self[0]
78
- end
79
- def rank
80
- Rank.new self
81
- end
82
- def total
83
- Totaler.new self
84
- end
68
+ module Summary
85
69
  def product
86
70
  reduce{|k,v| k*v}
87
71
  end
@@ -106,11 +90,34 @@ class Array
106
90
  def growth
107
91
  result = Array.new
108
92
  (size-1).times {|i| result << ((self[i].to_f - self[i+1].to_f)/self[i+1].to_f) * 100 }
109
- result
93
+ result.stats
110
94
  end
111
95
  def average_growth
112
96
  growth.mean
113
- end
97
+ end
98
+ end
99
+
100
+ class Array
101
+ def as_chain
102
+ self.size.times{|i|
103
+ a = self[i+1]
104
+ b = self[i-1]
105
+ (self[i].next = a) if a
106
+ (self[i].previous = b) if (b && i > 0)
107
+ self[i].extend(ChainAnalysis)
108
+ }
109
+ self[0]
110
+ end
111
+ def rank
112
+ Rank.new self
113
+ end
114
+ def total
115
+ Totaler.new self
116
+ end
117
+ def stats
118
+ extend(Summary)
119
+ self
120
+ end
114
121
  end
115
122
 
116
123
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kuku
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: '0.3'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Craig Davidson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-23 00:00:00.000000000 Z
11
+ date: 2013-10-31 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: General helpers.
14
14
  email: craig@craigdavidson.co.uk