km_resque 1.0.0 → 1.0.1
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.
- data/README.md +1 -1
- data/lib/km_resque/api_client.rb +15 -2
- data/lib/km_resque/version.rb +1 -1
- data/spec/lib/km_resque/record_job_spec.rb +6 -0
- metadata +2 -2
data/README.md
CHANGED
@@ -44,7 +44,7 @@ Configure your API key:
|
|
44
44
|
|
45
45
|
## Credits
|
46
46
|
|
47
|
-
Written by Luke Melia. Thanks to Yapp for open sourcing
|
47
|
+
Written by Luke Melia. Thanks to Yapp for open sourcing KmResque. Inspiration from delayed_kiss and km-delay.
|
48
48
|
|
49
49
|
## License
|
50
50
|
|
data/lib/km_resque/api_client.rb
CHANGED
@@ -46,8 +46,14 @@ class KmResque
|
|
46
46
|
raise Error.new("Can't hit the API without an API Key")
|
47
47
|
end
|
48
48
|
|
49
|
-
|
50
|
-
|
49
|
+
if data['_t']
|
50
|
+
data['_d'] = 1
|
51
|
+
unless validate_timestamp(data['_t'])
|
52
|
+
raise Error.new("Timestamp #{data['_t']} is invalid")
|
53
|
+
end
|
54
|
+
else
|
55
|
+
data['_t'] = Time.now.to_i
|
56
|
+
end
|
51
57
|
|
52
58
|
unsafe = Regexp.new("[^#{URI::REGEXP::PATTERN::UNRESERVED}]", false, 'N')
|
53
59
|
|
@@ -62,5 +68,12 @@ class KmResque
|
|
62
68
|
http.get(query)
|
63
69
|
end
|
64
70
|
end
|
71
|
+
|
72
|
+
SECONDS_IN_ONE_HUNDRED_YEARS = 60 * 60 * 24 * 365 * 100
|
73
|
+
|
74
|
+
def validate_timestamp(timestamp)
|
75
|
+
timestamp = timestamp.to_i
|
76
|
+
(timestamp > 0) && (timestamp < (Time.now.to_i + SECONDS_IN_ONE_HUNDRED_YEARS))
|
77
|
+
end
|
65
78
|
end
|
66
79
|
end
|
data/lib/km_resque/version.rb
CHANGED
@@ -28,5 +28,11 @@ describe "KmResque::RecordJob" do
|
|
28
28
|
KmResque::RecordJob.perform(nil, "eventName", { :foo => 'bar', :baz => 'bay'}, timestamp)
|
29
29
|
}.should raise_error(KmResque::Error)
|
30
30
|
end
|
31
|
+
it "should raise an error when an invalid timestamp is provided" do
|
32
|
+
timestamp = Time.now.to_i * 1000 # common mistake is providing milliseconds instead of seconds
|
33
|
+
lambda {
|
34
|
+
KmResque::RecordJob.perform("identifier", "eventName", { :foo => 'bar', :baz => 'bay'}, timestamp)
|
35
|
+
}.should raise_error(KmResque::Error)
|
36
|
+
end
|
31
37
|
end
|
32
38
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: km_resque
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.0.
|
5
|
+
version: 1.0.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Luke Melia
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2012-09-
|
13
|
+
date: 2012-09-25 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: resque
|