time_trap 0.0.2 → 0.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.
- checksums.yaml +4 -4
- data/README.md +7 -2
- data/lib/timetrap/timetrap.rb +6 -1
- data/lib/timetrap/version.rb +1 -1
- data/spec/timetrap/timetrap_spec.rb +25 -2
- data/time_trap.gemspec +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9361576b04ddf585f8d821923da1e6ea6f5f72a4
|
4
|
+
data.tar.gz: 66c919c5dee91255159444cd84a36f763f1974ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a4d5b58a2a1d820877ceb73565b5ffd68936aadb683c81bec8410c6f16b93c884deae21562ee0c18dd900a64fda10313e60eddf247b9f1d9fb7cf32147a9084
|
7
|
+
data.tar.gz: 995f619ce1d64aa20e17859a5859d1f9b66e2cfd0f6e78d74ee0c5c2d1f96499a1ec18c86f814aea13dccec31627360ef2c911491b8c4a82d163e0aa048aac01
|
data/README.md
CHANGED
@@ -7,7 +7,7 @@ as they are created (eg. tweets, exceptions in a log file, or :Q
|
|
7
7
|
|
8
8
|
Add this line to your application's Gemfile:
|
9
9
|
|
10
|
-
gem '
|
10
|
+
gem 'time_trap'
|
11
11
|
|
12
12
|
And then execute:
|
13
13
|
|
@@ -15,10 +15,15 @@ And then execute:
|
|
15
15
|
|
16
16
|
Or install it yourself as:
|
17
17
|
|
18
|
-
$ gem install
|
18
|
+
$ gem install time_trap
|
19
19
|
|
20
20
|
## Usage
|
21
21
|
|
22
|
+
tt = TimeTrap.new
|
23
|
+
tt.add("benedict")
|
24
|
+
tt.add("cumberbatch")
|
25
|
+
|
26
|
+
|
22
27
|
## Contributing
|
23
28
|
|
24
29
|
1. Fork it ( http://github.com/<my-github-username>/timetrap/fork )
|
data/lib/timetrap/timetrap.rb
CHANGED
@@ -30,11 +30,16 @@ class TimeTrap
|
|
30
30
|
@tt.sort_by(&block)
|
31
31
|
end
|
32
32
|
|
33
|
-
def
|
33
|
+
def top(rank)
|
34
34
|
ret = @tt.sort_by {|k,v| -v.count}.map{|k,v| k}
|
35
35
|
return ret[0..rank - 1]
|
36
36
|
end
|
37
37
|
|
38
|
+
def last(secs)
|
39
|
+
t = Time.now.to_i
|
40
|
+
return window(t - secs, t)
|
41
|
+
end
|
42
|
+
|
38
43
|
def has_key?(key)
|
39
44
|
return @tt.has_key?(key)
|
40
45
|
end
|
data/lib/timetrap/version.rb
CHANGED
@@ -73,12 +73,12 @@ describe TimeTrap do
|
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
|
-
context "#
|
76
|
+
context "#top" do
|
77
77
|
it "gives you the top values sorted by code block" do
|
78
78
|
(0..0).each {|i| ttrap.add("1")}
|
79
79
|
(0..1).each {|i| ttrap.add("2")}
|
80
80
|
(0..2).each {|i| ttrap.add("3")}
|
81
|
-
arr = ttrap.
|
81
|
+
arr = ttrap.top(1)
|
82
82
|
expect(arr).to match_array(["3"])
|
83
83
|
end
|
84
84
|
end
|
@@ -96,4 +96,27 @@ describe TimeTrap do
|
|
96
96
|
expect(ttrap.window(t - 60, t).size).to eq(0)
|
97
97
|
end
|
98
98
|
end
|
99
|
+
|
100
|
+
context "#last" do
|
101
|
+
it "gives last day's worth of data" do
|
102
|
+
t = Time.now.to_i
|
103
|
+
(0..9).each{|i| ttrap.add(i, t - 60*60*24 - 1)}
|
104
|
+
(10..19).each{|i| ttrap.add(i, t) }
|
105
|
+
expect(ttrap.last(60*60*24).keys).to match_array((10..19).to_a)
|
106
|
+
end
|
107
|
+
|
108
|
+
it "gives last hour's worth of data" do
|
109
|
+
t = Time.now.to_i
|
110
|
+
(0..9).each{|i| ttrap.add(i, t - 60*24 - 1)}
|
111
|
+
(10..19).each{|i| ttrap.add(i, t) }
|
112
|
+
expect(ttrap.last(60*24).keys).to match_array((10..19).to_a)
|
113
|
+
end
|
114
|
+
|
115
|
+
it "gives last minute's worth of data" do
|
116
|
+
t = Time.now.to_i
|
117
|
+
(0..9).each{|i| ttrap.add(i, t - 60 - 1)}
|
118
|
+
(10..19).each{|i| ttrap.add(i, t) }
|
119
|
+
expect(ttrap.last(60).keys).to match_array((10..19).to_a)
|
120
|
+
end
|
121
|
+
end
|
99
122
|
end
|
data/time_trap.gemspec
CHANGED
@@ -7,10 +7,10 @@ Gem::Specification.new do |spec|
|
|
7
7
|
spec.name = "time_trap"
|
8
8
|
spec.version = Timetrap::VERSION
|
9
9
|
spec.authors = ["Pat Farrell"]
|
10
|
-
spec.email = ["
|
10
|
+
spec.email = ["mr.patfarrell@gmail.com"]
|
11
11
|
spec.summary = %q{"exposes a data structure suitable for capturing and inspecting moving windows of data"}
|
12
12
|
spec.description = %q{"timetrap is a work in progress to create a simple data strucutre that allows for windowed inspection of counts added to a hash"}
|
13
|
-
spec.homepage = ""
|
13
|
+
spec.homepage = "http://github.com/pfarrell/timetrap"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: time_trap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pat Farrell
|
@@ -97,7 +97,7 @@ dependencies:
|
|
97
97
|
description: "\"timetrap is a work in progress to create a simple data strucutre that
|
98
98
|
allows for windowed inspection of counts added to a hash\""
|
99
99
|
email:
|
100
|
-
-
|
100
|
+
- mr.patfarrell@gmail.com
|
101
101
|
executables: []
|
102
102
|
extensions: []
|
103
103
|
extra_rdoc_files: []
|
@@ -116,7 +116,7 @@ files:
|
|
116
116
|
- spec/timetrap/deque_spec.rb
|
117
117
|
- spec/timetrap/timetrap_spec.rb
|
118
118
|
- time_trap.gemspec
|
119
|
-
homepage:
|
119
|
+
homepage: http://github.com/pfarrell/timetrap
|
120
120
|
licenses:
|
121
121
|
- MIT
|
122
122
|
metadata: {}
|