delayed_km 0.0.3 → 0.0.4

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