delayed_km 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.
Files changed (3) hide show
  1. data/lib/delayed_km/version.rb +1 -1
  2. data/lib/delayed_km.rb +82 -79
  3. metadata +12 -12
@@ -1,3 +1,3 @@
1
1
  module DelayedKm
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/delayed_km.rb CHANGED
@@ -1,102 +1,105 @@
1
+
1
2
  require "delayed_km/version"
2
3
 
3
4
  module DelayedKm
4
- @id = nil
5
- @key = nil
6
-
7
- class << self
8
- def identity
9
- @id
10
- end
5
+ class KM
6
+ @id = nil
7
+ @key = nil
11
8
 
12
- def api_key
13
- @key
14
- end
9
+ class << self
10
+ def identity
11
+ @id
12
+ end
15
13
 
16
- def host
17
- "trk.kissmetrics.com"
18
- end
14
+ def api_key
15
+ @key
16
+ end
19
17
 
20
- def init(key)
21
- @key = key
22
- end
18
+ def host
19
+ "trk.kissmetrics.com"
20
+ end
23
21
 
24
- def identify(id)
25
- @id = id
26
- end
22
+ def init(key)
23
+ @key = key
24
+ end
27
25
 
28
- def record(action, props = {})
29
- raise ArgumentError, "You must set an API key" if !@key
30
- raise ArgumentError, "You must identify a user first" if !@id
31
- props = hash_keys_to_str(props)
32
- props.update("_n" => action)
33
- props.update("_p" => @id)
34
- props.update("_k" => @key)
35
-
36
- if props["_t"]
37
- props['_d'] = "1"
38
- else
39
- props['_t'] = Time.now.to_i.to_s
26
+ def identify(id)
27
+ @id = id
40
28
  end
41
29
 
42
- delay_query("e", props)
43
- end
30
+ def record(action, props = {})
31
+ raise ArgumentError, "You must set an API key" if !@key
32
+ raise ArgumentError, "You must identify a user first" if !@id
33
+ props = hash_keys_to_str(props)
34
+ props.update("_n" => action)
35
+ props.update("_p" => @id)
36
+ props.update("_k" => @key)
37
+
38
+ if props["_t"]
39
+ props['_d'] = "1"
40
+ else
41
+ props['_t'] = Time.now.to_i.to_s
42
+ end
43
+
44
+ delay_query("e", props)
45
+ end
44
46
 
45
- def alias(name, alias_to)
46
- raise ArgumentError, "You must set an API key" if !@key
47
- raise ArgumentError, "You must identify a user first" if !@id
48
- p = {
49
- '_n' => alias_to,
50
- '_p' => name,
51
- '_k' => @key,
52
- }
47
+ def alias(name, alias_to)
48
+ raise ArgumentError, "You must set an API key" if !@key
49
+ raise ArgumentError, "You must identify a user first" if !@id
50
+ p = {
51
+ '_n' => alias_to,
52
+ '_p' => name,
53
+ '_k' => @key,
54
+ }
53
55
 
54
- delay_query("a", p)
55
- end
56
+ delay_query("a", p)
57
+ end
56
58
 
57
- def set(props = {})
58
- raise ArgumentError, "You must set an API key" if !@key
59
- raise ArgumentError, "You must identify a user first" if !@id
60
- props = hash_keys_to_str(props)
59
+ def set(props = {})
60
+ raise ArgumentError, "You must set an API key" if !@key
61
+ raise ArgumentError, "You must identify a user first" if !@id
62
+ props = hash_keys_to_str(props)
61
63
 
62
- props.update("_p" => @id)
63
- props.update("_k" => @key)
64
+ props.update("_p" => @id)
65
+ props.update("_k" => @key)
64
66
 
65
- if props["_t"]
66
- props['_d'] = "1"
67
- else
68
- props['_t'] = Time.now.to_i.to_s
67
+ if props["_t"]
68
+ props['_d'] = "1"
69
+ else
70
+ props['_t'] = Time.now.to_i.to_s
71
+ end
72
+ delay_query("s", props)
69
73
  end
70
- delay_query("s", props)
71
- end
72
74
 
73
- def get(url)
74
- begin
75
- return HTTParty.get(url)
76
- rescue Exception => e
77
- raise e.exception(e.message)
75
+ def get(url)
76
+ begin
77
+ return HTTParty.get(url)
78
+ rescue Exception => e
79
+ raise e.exception(e.message)
80
+ end
78
81
  end
79
- end
80
82
 
81
- protected
82
- #This is from the offical km.rb
83
- def hash_keys_to_str(hash)
84
- Hash[*hash.map { |k, v| k.class == Symbol ? [k.to_s, v] : [k, v] }.flatten] # convert all keys to strings
85
- end
86
-
87
- def delay_query(type, props)
88
- params = []
89
- props.each do |k, v|
90
- params << "#{CGI.escape(k.to_s)}=#{CGI.escape(v.to_s)}"
83
+ protected
84
+ #This is from the offical km.rb
85
+ def hash_keys_to_str(hash)
86
+ Hash[*hash.map { |k, v| k.class == Symbol ? [k.to_s, v] : [k, v] }.flatten] # convert all keys to strings
91
87
  end
92
- query = params.join("&")
93
- url = "http://#{KM.host}/#{type}?#{query}"
94
- job = KMJob.new(url)
95
- Rails.logger.debug url
96
- if Rails.application.config.delayed_km
97
- Delayed::Job.enqueue job
98
- elsif Rails.application.config.delayed_km_debug
99
- job.perform
88
+
89
+ def delay_query(type, props)
90
+ params = []
91
+ props.each do |k, v|
92
+ params << "#{CGI.escape(k.to_s)}=#{CGI.escape(v.to_s)}"
93
+ end
94
+ query = params.join("&")
95
+ url = "http://#{KM.host}/#{type}?#{query}"
96
+ job = KMJob.new(url)
97
+ Rails.logger.debug url
98
+ if Rails.application.config.delayed_km
99
+ Delayed::Job.enqueue job
100
+ elsif Rails.application.config.delayed_km_debug
101
+ job.perform
102
+ end
100
103
  end
101
104
  end
102
105
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: delayed_km
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-16 00:00:00.000000000 Z
12
+ date: 2012-10-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
16
- requirement: &70322130228420 !ruby/object:Gem::Requirement
16
+ requirement: &70259261669160 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70322130228420
24
+ version_requirements: *70259261669160
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: delayed_job
27
- requirement: &70322130228000 !ruby/object:Gem::Requirement
27
+ requirement: &70259261668740 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70322130228000
35
+ version_requirements: *70259261668740
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70322130227400 !ruby/object:Gem::Requirement
38
+ requirement: &70259261668300 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70322130227400
46
+ version_requirements: *70259261668300
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &70322130249600 !ruby/object:Gem::Requirement
49
+ requirement: &70259261667880 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70322130249600
57
+ version_requirements: *70259261667880
58
58
  description: Alternative for the Kissmetrics provided gem but using delayed_job instead
59
59
  of cron. This will suit Heroku users.
60
60
  email:
@@ -87,7 +87,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
87
87
  version: '0'
88
88
  segments:
89
89
  - 0
90
- hash: 4034491262224934491
90
+ hash: -1698337052305903700
91
91
  required_rubygems_version: !ruby/object:Gem::Requirement
92
92
  none: false
93
93
  requirements:
@@ -96,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
96
  version: '0'
97
97
  segments:
98
98
  - 0
99
- hash: 4034491262224934491
99
+ hash: -1698337052305903700
100
100
  requirements: []
101
101
  rubyforge_project:
102
102
  rubygems_version: 1.8.17