preact 0.7.0 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/preact.rb +20 -16
- data/lib/preact/background_logger.rb +19 -0
- data/lib/preact/objects/event.rb +7 -3
- data/lib/preact/version.rb +1 -1
- metadata +20 -4
data/lib/preact.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'preact/configuration'
|
2
2
|
require 'preact/client'
|
3
|
+
require 'preact/background_logger'
|
3
4
|
|
4
5
|
require 'preact/objects/api_object'
|
5
6
|
require 'preact/objects/person'
|
@@ -42,7 +43,7 @@ module Preact
|
|
42
43
|
|
43
44
|
def log_event(user, event, account = nil)
|
44
45
|
# Don't send requests when disabled
|
45
|
-
if configuration.disabled?
|
46
|
+
if configuration.nil? || configuration.disabled?
|
46
47
|
logger.info "[Preact] Logging is disabled, not logging event"
|
47
48
|
return nil
|
48
49
|
elsif user.nil?
|
@@ -78,7 +79,7 @@ module Preact
|
|
78
79
|
|
79
80
|
def log_account_event(event, account)
|
80
81
|
# Don't send requests when disabled
|
81
|
-
if configuration.disabled?
|
82
|
+
if configuration.nil? || configuration.disabled?
|
82
83
|
logger.info "[Preact] Logging is disabled, not logging event"
|
83
84
|
return nil
|
84
85
|
elsif account.nil?
|
@@ -110,7 +111,7 @@ module Preact
|
|
110
111
|
|
111
112
|
def update_person(user)
|
112
113
|
# Don't send requests when disabled
|
113
|
-
if configuration.disabled?
|
114
|
+
if configuration.nil? || configuration.disabled?
|
114
115
|
logger.info "[Preact] Logging is disabled, not logging event"
|
115
116
|
return nil
|
116
117
|
elsif user.nil?
|
@@ -144,21 +145,24 @@ module Preact
|
|
144
145
|
send_log(person, message_obj)
|
145
146
|
end
|
146
147
|
|
147
|
-
protected
|
148
|
-
|
149
|
-
def send_log(person, event=nil)
|
150
|
-
psn = person.as_json
|
151
|
-
evt = event.nil? ? nil : event.as_json
|
152
|
-
|
153
|
-
if defined?(Preact::Sidekiq)
|
154
|
-
Preact::Sidekiq::PreactLoggingWorker.perform_async(psn, evt)
|
155
|
-
else
|
156
|
-
client.create_event(psn, evt)
|
157
|
-
end
|
158
|
-
end
|
159
|
-
|
160
148
|
def client
|
161
149
|
self.default_client ||= Client.new
|
162
150
|
end
|
151
|
+
|
152
|
+
protected
|
153
|
+
|
154
|
+
def send_log(person, event=nil)
|
155
|
+
psn = person.as_json
|
156
|
+
evt = event.nil? ? nil : event.as_json
|
157
|
+
|
158
|
+
if defined?(Preact::Sidekiq)
|
159
|
+
Preact::Sidekiq::PreactLoggingWorker.perform_async(psn, evt)
|
160
|
+
else
|
161
|
+
#client.create_event(psn, evt)
|
162
|
+
# use the background thread logger
|
163
|
+
Preact::BackgroundLogger.new.async.perform(psn, evt)
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
163
167
|
end
|
164
168
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'sucker_punch'
|
2
|
+
|
3
|
+
module Preact
|
4
|
+
class BackgroundLogger
|
5
|
+
include SuckerPunch::Job
|
6
|
+
|
7
|
+
def perform(psn, evt)
|
8
|
+
begin
|
9
|
+
::Preact.client.create_event(psn, evt)
|
10
|
+
rescue RestClient::ResourceNotFound => ex
|
11
|
+
puts "404 error"
|
12
|
+
rescue SocketError => ex
|
13
|
+
puts "socket error: #{ex.message}"
|
14
|
+
rescue => ex
|
15
|
+
raise ex
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/preact/objects/event.rb
CHANGED
@@ -2,7 +2,8 @@ class Preact::Event < Preact::ApiObject
|
|
2
2
|
|
3
3
|
attr_accessor :name, :timestamp, :account
|
4
4
|
|
5
|
-
attr_accessor :note, :links, :external_identifier, :extras
|
5
|
+
attr_accessor :note, :links, :external_identifier, :target_id, :revenue, :extras
|
6
|
+
attr_accessor :thumb_url, :link_url
|
6
7
|
|
7
8
|
def add_link(name, href)
|
8
9
|
self.links ||= []
|
@@ -15,12 +16,15 @@ class Preact::Event < Preact::ApiObject
|
|
15
16
|
:name => self.name,
|
16
17
|
:timestamp => self.timestamp,
|
17
18
|
:account => self.account,
|
19
|
+
:revenue => self.revenue,
|
18
20
|
:source => Preact.configuration.user_agent, # version of this logging library
|
19
21
|
|
20
22
|
:note => self.note,
|
21
|
-
:external_identifier => self.external_identifier,
|
23
|
+
:external_identifier => self.target_id || self.external_identifier,
|
22
24
|
:extras => self.extras,
|
23
|
-
:links => self.links.nil? ? nil : self.links.as_json
|
25
|
+
:links => self.links.nil? ? nil : self.links.as_json,
|
26
|
+
:thumb_url => self.thumb_url,
|
27
|
+
:link_url => self.link_url
|
24
28
|
}
|
25
29
|
end
|
26
30
|
|
data/lib/preact/version.rb
CHANGED
metadata
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: preact
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Christopher Gooley
|
9
|
-
- Zach Millman
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-
|
12
|
+
date: 2013-08-31 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: rest-client
|
@@ -108,14 +107,31 @@ dependencies:
|
|
108
107
|
- - ~>
|
109
108
|
- !ruby/object:Gem::Version
|
110
109
|
version: '1.0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: sucker_punch
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ~>
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '1.0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '1.0'
|
111
126
|
description: API library to allow you to connect and submit messages and actions to
|
112
|
-
|
127
|
+
Preact
|
113
128
|
email: gooley@preact.io
|
114
129
|
executables: []
|
115
130
|
extensions: []
|
116
131
|
extra_rdoc_files:
|
117
132
|
- LICENSE.txt
|
118
133
|
files:
|
134
|
+
- lib/preact/background_logger.rb
|
119
135
|
- lib/preact/client.rb
|
120
136
|
- lib/preact/configuration.rb
|
121
137
|
- lib/preact/objects/account.rb
|