scoutmetrics 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 97400cb658e77738d7e00283182027b338e77525
4
- data.tar.gz: 53fbbb79f42b664eafa6268659cdd37b81b58360
3
+ metadata.gz: ffa9658c79e58bd4414e2e36b8ebdcd95fe5e53f
4
+ data.tar.gz: 594b1283e8f9a6144851a73923aede910cf49328
5
5
  SHA512:
6
- metadata.gz: ed576c727d64fc5fb7d31ca7f72656fba5778b751e503ab3c9c4f3b5de921047ecef6c75e54340939c64ec7b1a69f96219d3c7f144266036d33ac0ef549241d9
7
- data.tar.gz: c5d0aae011c11271b286877ef9dfa3eac174784093c7a2e0621f0ddb8a9d33f3d1dbf89e603248cd960feebea3729461d5af7cf5eeaf4825d657db648f385bd0
6
+ metadata.gz: af8243471e972dbe00c0acb0db74034c6ad276fb501044dc45bf5d8ac4c45761bd1d2e30f47e4ff429b9c6acf5440d21f9b550253623665cc7c6a7c655cf03fb
7
+ data.tar.gz: e375fc6ac4ff994b9b40dbfc21eac658bec8cc6aa8388500ffb293266f2bc8070751c49c0c7952d55b1e3f20e269125d264f84cc48016bf919dc114e79193204
data/README.md CHANGED
@@ -13,7 +13,7 @@ Installation
13
13
  gem install scoutmetrics
14
14
 
15
15
  Or include it in your application,
16
- gem 'scoutmetrics', '~> 0.0.2'
16
+ gem 'scoutmetrics', '~> 0.0.3'
17
17
 
18
18
  Usage
19
19
  ------------
@@ -27,17 +27,17 @@ end
27
27
 
28
28
  ### User API (found in `/lib/scoutmetrics/user.rb`)
29
29
  To tell us a user has signed up
30
- `ScoutMetrics::User.create(user.id)`
30
+ `ScoutMetrics::User.find(user.id).signup`
31
31
 
32
32
  Or if you wanted to backfill signups
33
33
  ```ruby
34
34
  User.each do |user|
35
- ScoutMetrics::User.create(user.id, user.created_at)
35
+ ScoutMetrics::User.create(id: user.id, signup_date: user.created_at, return_date: user.latest_login, active: user.active?)
36
36
  end
37
37
  ```
38
38
 
39
39
  To tell us about their latest login (so we can track retention for you)
40
- `ScoutMetrics::User.update(user.id)`
40
+ `ScoutMetrics::User.find(user.id).report_login`
41
41
 
42
42
  ### Engagement API (found in `/lib/scoutmetrics/engagement.rb`)
43
43
  Tell us that one of your users commented on a post
@@ -2,53 +2,47 @@ module ScoutMetrics
2
2
 
3
3
  class User
4
4
 
5
- # Adds an "AppUser" to Scout Metrics
6
- #
7
- # @param id [Integer] Uniquely identifies user
8
- # @param signup_date [DateTime] Date the user signed up, defaults to now
9
- #
10
- # @return [Json] Returns a msg for the transaction and the status of the request
11
- # @return msg explanation of outcome
12
- def self.create(id, signup_date=nil)
13
- signup_date ||= Time.new
14
- post_update(id, { signup_date: signup_date })
5
+ attr_accesor :id, :signup_date, :return_date, :active
6
+
7
+ # Create a User record with the id passed in for posting to Scout Metrics
8
+ def self.find(id)
9
+ new(id: id)
15
10
  end
16
11
 
17
- # Update an "AppUser" on Scout Metrics
18
- #
19
- # @param id [Integer] Uniquely identifies user
20
- # @param return_date [DateTime] Latest time returning to your site, defaults to now
21
- #
22
- # @return [Json] Returns a msg for the transaction and the status of the request
23
- # @return msg explanation of outcome
24
- def self.update(id, return_date=nil)
25
- return_date ||= Time.new
26
- post_update(id, { return_date: return_date })
12
+ # Override save method to post the information to Scout Metrics
13
+ def save
14
+ post_update(id, { signup_date: signup_date, return_date: return_date, active: active }))
15
+ end
16
+
17
+ # Posts signup date for this user (if it doesn't exist yet the "AppUser" will be created)
18
+ def signup(signup_date=nil)
19
+ self.signup_date = signup_date || Time.new
20
+ save
21
+ end
22
+
23
+ # Tells Scout Metrics the latest login date for this "AppUser"
24
+ def report_login(return_date=nil)
25
+ self.return_date = return_date || Time.new
26
+ save
27
27
  end
28
28
 
29
29
  # Activate an "AppUser" on Scout Metrics
30
30
  # (Should we also reset their signup_date & return_date?)
31
- #
32
- # @param id [Integer] Uniquely identifies user
33
- #
34
- # @return [Json] Returns a msg for the transaction and the status of the request
35
- # @return msg explanation of outcome
36
- def self.activate(id)
37
- post_update(id, { active: true })
31
+ def activate
32
+ self.active = true
33
+ save
38
34
  end
39
35
 
40
36
  # Deactivate an "AppUser" on Scout Metrics
41
- #
42
- # @param id [Integer] Uniquely identifies user
43
- #
44
- # @return [Json] Returns a msg for the transaction and the status of the request
45
- # @return msg explanation of outcome
46
- def self.deactivate(id)
47
- post_update(id, { active: false })
37
+ def deactivate
38
+ self.active = false
39
+ save
48
40
  end
49
41
 
50
42
  private
51
43
 
44
+ # @return [Json] Returns a msg for the transaction and the status of the request
45
+ # @return msg explanation of outcome
52
46
  def self.post_update(id, params)
53
47
  ScoutMetrics::Request.new(:put, "/app_users/#{id}", { app_user: params })
54
48
  end
Binary file
data/scoutmetrics.gemspec CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = 'scoutmetrics'
6
- s.version = '0.0.2'
6
+ s.version = '0.0.3'
7
7
  s.date = '2014-10-20'
8
8
  s.summary = 'Ruby wrapper for the Scout Metrics API'
9
9
  s.description = 'Ruby wrapper for the Scout Metrics API'
@@ -2,44 +2,60 @@
2
2
  "use strict";
3
3
 
4
4
  var ScoutMetrics = {
5
- accessToken: '6qPPlrlPYk5erffdy7cgig'
5
+ accessToken: '6qPPlrlPYk5erffdy7cgig',
6
6
  Request: {
7
7
  init: function() {
8
- this.domain = 'https://scoutmetrics.com/api/v1'
8
+ this.api_domain = 'https://scoutmetrics.herokuapp.com/api/v1';
9
9
  },
10
- send: function(method, route, data) {
10
+ send: function(method, route, data, callback) {
11
11
  var self = this;
12
+ var url = self.api_domain + route
13
+
12
14
  data['token'] = ScoutMetrics.accessToken;
13
15
  $.ajax({
14
- url: self.domain + route,
16
+ url: self.api_domain + route,
15
17
  type: method,
16
- data: data
18
+ data: data,
19
+ complete: function(response) {
20
+ callback(response, 'NOTHING');
21
+ }
17
22
  });
18
23
  }
19
24
  },
20
25
  User: {
21
- create: function(params) {
22
- params['signup_date'] || (params['signup_date'] = new Date());
23
- Request.send('POST', '/app_users', { app_user: params });
26
+ create: function(id, signup_date, callback) {
27
+ signup_date || (signup_date = new Date());
28
+ this.postUpdate(id, { app_user: { signup_date: signup_date } }, callback);
29
+ },
30
+ update: function(id, return_date, callback) {
31
+ return_date || (return_date = new Date());
32
+ this.postUpdate(id, { app_user: { return_date: return_date } }, callback);
33
+ },
34
+ activate: function(id, callback) {
35
+ this.postUpdate(id, { active: true }, callback);
24
36
  },
25
- update: function(params) {
26
- params['return_date'] || (params['return_date'] = new Date());
27
- Request.send('POST', '/app_users', { app_user: params });
37
+ deactivate: function(id, callback) {
38
+ this.postUpdate(id, { active: false }, callback);
39
+ },
40
+ postUpdate: function(id, params, callback) {
41
+ ScoutMetrics.Request.send('POST', '/app_users/' + id, params, callback);
28
42
  }
29
43
  },
30
44
  Engagement: {
31
- create: function(params) {
32
- Request.send('POST', '/engagements', { engagement: params });
45
+ create_category: function(name, callback) {
46
+ ScoutMetrics.Request.send('POST', '/engagements', { engagement: { name: name } }, callback);
33
47
  },
34
- report: function(engagement_params, date_recorded) {
48
+ create: function(name, date_recorded, callback) {
35
49
  date_recorded || (date_recorded = new Date());
36
- params = { engagement: engagement_params,
37
- engagement_instance: { date_recorded: date_recorded } };
38
- Request.send('POST', '/engagements/add_instance', params);
50
+ var params = { engagement: { name: name },
51
+ engagement_instance: { date_recorded: date_recorded } };
52
+ ScoutMetrics.Request.send('POST', '/engagements/add_instance', params, callback);
39
53
  }
40
54
  }
41
55
  };
42
56
 
57
+ ScoutMetrics.Request.init();
58
+
43
59
  window.ScoutMetrics = ScoutMetrics;
44
60
 
45
61
  })(jQuery,window,document);
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scoutmetrics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dosty Everts
@@ -14,28 +14,28 @@ dependencies:
14
14
  name: http
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.6.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.6.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: http_parser.rb
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: 0.6.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.6.0
41
41
  description: Ruby wrapper for the Scout Metrics API
@@ -50,6 +50,7 @@ files:
50
50
  - lib/scoutmetrics/engagement.rb
51
51
  - lib/scoutmetrics/request.rb
52
52
  - lib/scoutmetrics/user.rb
53
+ - scoutmetrics-0.0.2.gem
53
54
  - scoutmetrics.gemspec
54
55
  - vendor/assets/javascripts/scoutmetrics.js
55
56
  homepage: https://github.com/MustWin/scoutmetrics-ruby-gem
@@ -62,17 +63,17 @@ require_paths:
62
63
  - lib
63
64
  required_ruby_version: !ruby/object:Gem::Requirement
64
65
  requirements:
65
- - - ">="
66
+ - - '>='
66
67
  - !ruby/object:Gem::Version
67
68
  version: '0'
68
69
  required_rubygems_version: !ruby/object:Gem::Requirement
69
70
  requirements:
70
- - - ">="
71
+ - - '>='
71
72
  - !ruby/object:Gem::Version
72
73
  version: '0'
73
74
  requirements: []
74
75
  rubyforge_project:
75
- rubygems_version: 2.2.2
76
+ rubygems_version: 2.2.1
76
77
  signing_key:
77
78
  specification_version: 4
78
79
  summary: Ruby wrapper for the Scout Metrics API