kuku 0.2 → 0.3

Sign up to get free protection for your applications and to get access to all the features.
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