fdist 0.2.5 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/fdist.gemspec +2 -2
  4. data/lib/fdist.rb +12 -76
  5. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: acdb7ee899398741455c102bbc005a59e1c7315b
4
- data.tar.gz: b77080f239a57b448311837414b561e4a30aab95
3
+ metadata.gz: 6aeede544638ecf3c21966d06b8f487907fe3d8c
4
+ data.tar.gz: 5da33101451107fa8c63cf05d750dae08fa88620
5
5
  SHA512:
6
- metadata.gz: 129624a099944ec377294d2c982675af6ad3c0575ff515d6054479740b28c8516131c3a11300fa000ba999cdeda495552bb2b1c1bc7d64041d712664fbdb16b2
7
- data.tar.gz: 18708a6a251d90b91b7af92e3b91cac207b1b2bcceb4fcd9fe5b52092d3ba4efea7b3ab7625930bc6af16e833279691e85fa76bc2843312ef3985c6b05445a75
6
+ metadata.gz: 8a2440896eb82a525eb6ee350297817ca3672273584b20445962e0c8811e14efc921956b6211a792dffba222d44586f71a76bfac9d52bdc23e92fe172d9a5861
7
+ data.tar.gz: 51d0013862246d3268ca378ec9c21d54482ee0c4b6a8468d1838de05e8bb744539d5b77ef9f74a7313330295672305410d1cedd7d76c679757d8a81068d665d7
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.5
1
+ 1.0.0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "fdist"
8
- s.version = "0.2.5"
8
+ s.version = "1.0.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["michael d. towle"]
12
- s.date = "2013-12-03"
12
+ s.date = "2013-12-16"
13
13
  s.description = "Array methods now include :freq and :fdist, the first of which returns a Rational, and the second of which returns a hash of expression => count pairs"
14
14
  s.email = "gametheoretic@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -1,83 +1,19 @@
1
- require 'mathn'
2
1
 
3
- module Headers
4
-
5
- def headers
6
- begin
7
- [0].keys
8
- rescue
9
- nil
10
- end
11
- end
12
-
13
- def headers= param_list
14
- if first.class != Hash
15
- if first.class != String
16
- map! do |val_set|
17
-
18
-
19
- hash = {}
20
- val_set.each_with_index do |elem, idx|
21
- hash[param_list[idx += 1]] = elem
22
- end
23
- hash
24
- end
25
- else
26
- map! do |val_set|
27
-
28
-
29
- hash = {}
30
- arrayify(val_set).each_with_index do |elem, idx|
31
- hash[param_list[idx += 1]] = elem
32
- end
33
- hash
34
- end
2
+ module Enumerable
3
+ def set_headers param_list
4
+ map! do |arr|
5
+ param_list.zip(arr).inject({}) do |result,zipped|
6
+ result[zipped.first] = zipped.last
7
+ result
35
8
  end
36
9
  end
37
- map! do |val_hash|
38
- redo_headers(val_hash, param_list)
39
- end
40
- param_list
41
- end
42
-
43
- private
44
-
45
- def redo_headers old_hash, new_headers
46
- new_hash = {}
47
- new_headers.each_with_index do |new_header,idx|
48
- new_hash[new_header] = old_hash.values[idx]
49
- end
50
- new_hash
51
10
  end
52
11
 
53
- def arrayify thing
54
- begin
55
- thing.values
56
- rescue
57
- thing.strip.split ","
12
+ def fdist &block
13
+ temp = self.map &block
14
+ temp.inject({}) do |result,element|
15
+ result[element] = temp.count element
16
+ result
58
17
  end
59
- end
60
- end
61
-
62
-
63
- module Frequency
64
-
65
- def freq &expression
66
- Rational.instance_eval("#{count(&expression)}/#{length}")
67
- end
68
-
69
- def fdist
70
- memo = {}
71
- uniq.sort_by{|x| count(x)}.each do |x|
72
- memo[x] = count(x)
73
- end
74
- memo
75
- end
76
-
77
-
78
- end
79
-
80
- class Array
81
- include Frequency
82
- include Headers
18
+ end
83
19
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fdist
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - michael d. towle
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-03 00:00:00.000000000 Z
11
+ date: 2013-12-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler