preact 0.6.5 → 0.7.0

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/lib/preact.rb CHANGED
@@ -5,6 +5,8 @@ require 'preact/objects/api_object'
5
5
  require 'preact/objects/person'
6
6
  require 'preact/objects/event'
7
7
  require 'preact/objects/action_event'
8
+ require 'preact/objects/action_link'
9
+ require 'preact/objects/account_event'
8
10
  require 'preact/objects/message'
9
11
  require 'preact/objects/account'
10
12
 
@@ -73,6 +75,38 @@ module Preact
73
75
 
74
76
  send_log(person.as_json, preact_event.as_json)
75
77
  end
78
+
79
+ def log_account_event(event, account)
80
+ # Don't send requests when disabled
81
+ if configuration.disabled?
82
+ logger.info "[Preact] Logging is disabled, not logging event"
83
+ return nil
84
+ elsif account.nil?
85
+ logger.error "[Preact] No account specified, not logging event"
86
+ return nil
87
+ elsif event.nil?
88
+ logger.error "[Preact] No event specified, not logging event"
89
+ return nil
90
+ end
91
+
92
+ if event.is_a?(String)
93
+ preact_event = AccountEvent.new({
94
+ :name => event,
95
+ :timestamp => Time.now.to_f
96
+ })
97
+ elsif event.is_a?(Hash)
98
+ preact_event = AccountEvent.new(event)
99
+ elsif event.is_a?(AccountEvent)
100
+ preact_event = event
101
+ else
102
+ raise StandardError.new "Unknown event class, must pass a string event name, event hash or AccountEvent object"
103
+ end
104
+
105
+ # attach the account info to the event
106
+ preact_event.account = configuration.convert_to_account(account).as_json
107
+
108
+ send_log(nil, preact_event.as_json)
109
+ end
76
110
 
77
111
  def update_person(user)
78
112
  # Don't send requests when disabled
@@ -0,0 +1,12 @@
1
+ module Preact
2
+ class AccountEvent < Event
3
+
4
+ def as_json(options={})
5
+ super(options).merge({
6
+ :klass => "accountevent"
7
+ })
8
+ end
9
+
10
+ end
11
+
12
+ end
@@ -1,35 +1,5 @@
1
1
  module Preact
2
2
  class ActionEvent < Event
3
3
 
4
- attr_accessor :note, :links, :external_identifier, :extras
5
-
6
- def add_link(name, href)
7
- self.links ||= []
8
- self.links << ActionLink.new({ :name => name, :href => href })
9
- end
10
-
11
- def as_json(options={})
12
- super(options).merge({
13
- :klass => "actionevent",
14
- :note => self.note,
15
- :external_identifier => self.external_identifier,
16
- :extras => self.extras,
17
- :links => self.links.nil? ? nil : self.links.as_json
18
- })
19
- end
20
-
21
- end
22
-
23
- class ActionLink < ApiObject
24
-
25
- attr_accessor :name, :href
26
-
27
- def as_json
28
- {
29
- :name => self.name,
30
- :href => self.href
31
- }
32
- end
33
-
34
4
  end
35
5
  end
@@ -0,0 +1,14 @@
1
+ module Preact
2
+ class ActionLink < ApiObject
3
+
4
+ attr_accessor :name, :href
5
+
6
+ def as_json
7
+ {
8
+ :name => self.name,
9
+ :href => self.href
10
+ }
11
+ end
12
+
13
+ end
14
+ end
@@ -2,12 +2,25 @@ class Preact::Event < Preact::ApiObject
2
2
 
3
3
  attr_accessor :name, :timestamp, :account
4
4
 
5
+ attr_accessor :note, :links, :external_identifier, :extras
6
+
7
+ def add_link(name, href)
8
+ self.links ||= []
9
+ self.links << ActionLink.new({ :name => name, :href => href })
10
+ end
11
+
5
12
  def as_json(options={})
6
13
  {
14
+ :klass => "actionevent",
7
15
  :name => self.name,
8
16
  :timestamp => self.timestamp,
9
17
  :account => self.account,
10
- :source => Preact.configuration.user_agent # version of this logging library
18
+ :source => Preact.configuration.user_agent, # version of this logging library
19
+
20
+ :note => self.note,
21
+ :external_identifier => self.external_identifier,
22
+ :extras => self.extras,
23
+ :links => self.links.nil? ? nil : self.links.as_json
11
24
  }
12
25
  end
13
26
 
@@ -1,3 +1,3 @@
1
1
  module Preact
2
- VERSION = "0.6.5"
2
+ VERSION = "0.7.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: preact
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.5
4
+ version: 0.7.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -119,7 +119,9 @@ files:
119
119
  - lib/preact/client.rb
120
120
  - lib/preact/configuration.rb
121
121
  - lib/preact/objects/account.rb
122
+ - lib/preact/objects/account_event.rb
122
123
  - lib/preact/objects/action_event.rb
124
+ - lib/preact/objects/action_link.rb
123
125
  - lib/preact/objects/api_object.rb
124
126
  - lib/preact/objects/event.rb
125
127
  - lib/preact/objects/message.rb