statsman 0.0.1 → 0.0.2

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: 2f893b43308e1cba15f3ae3bba98808d84c92a6a
4
- data.tar.gz: 578b9f2f3efe488d1736c1bfc71897a4c37126f8
3
+ metadata.gz: a4ba0d1cac6e83dd6585c2f59e24d58355ad3ab1
4
+ data.tar.gz: 07092b0f510b7d0005a59c9e38667501d1e75a7a
5
5
  SHA512:
6
- metadata.gz: b04806849d924d72411337d2d76b7aa21da0e4719f035124bb67d97dce750fd6493c68f7fad109fe8187939fcf7159170d876ab69512ac0e37d66401f877a636
7
- data.tar.gz: 60eb7e4cbe1899b6527a7bc405136f696400c7fbf9131f8cd2230ac07a6c8649f8cf783e85f7ad47110b59fc330a7cb4bc46762c7c578c8e9c1fe42746fbce84
6
+ metadata.gz: 722b2d529e248dbee3bde23b0ba78d16dee76f7df4da2782c3f440389cb342c05860c787c859df9b67e943870109325e54a23a1dfa1eada2818a07f22d759432
7
+ data.tar.gz: 47c25c2b90706e39b1493db1ac5cfb0ea97d456b4c9a43e1be82f1bd5ad81a4dc03021f9a33d934fb392c8bf72c5f5d793641f19131489807417f0fa8b4b1a54
@@ -0,0 +1,60 @@
1
+ require "activesupport"
2
+
3
+ module Statsman
4
+
5
+ # Include this module into your ActiveRecord models to get
6
+ # some convenience methods for sending stats
7
+ module Accountable
8
+
9
+ def statsman_counter(key, count, meta = {})
10
+ Statsman.send_counter key, count, set_class_id(meta)
11
+ end
12
+
13
+ def statsman_value(key, count, meta = {})
14
+ Statsman.send_value key, count, set_class_id(meta)
15
+ end
16
+
17
+ # change_type can be anything you want, as it's just used
18
+ # as a part of the stat key name. Some common types could
19
+ # be:
20
+ # referral, upgrade, downgrade, signup,
21
+ # conversion, cancel, lapse, unlapse
22
+ #
23
+ # mrr_difference: in cents
24
+ # meta: optional hash of other data
25
+ def statsman_change(change_type, mrr_difference, meta = {})
26
+ class_name = self.class.name.downcase
27
+
28
+ Statsman.send_value "#{class_name}_change_#{change_type}",
29
+ mrr_difference,
30
+ set_class_id(meta)
31
+ end
32
+
33
+ def statsman_payment(successful_payment, amount, meta = {})
34
+ Statsman.send_value "payment_#{successful_payment ? "success" : "failed"}",
35
+ amount,
36
+ set_class_id(meta)
37
+ end
38
+
39
+ protected
40
+
41
+ # Set a key named by this class's name with the value of
42
+ # this record's ID.
43
+ # For example, if we're using this in the context of an
44
+ # Account instance, we'll set "account_id" => self.id
45
+ # into the meta hash argument if it doesn't exist already.
46
+ def set_class_id(meta)
47
+ key_name = "#{self.class.name.downcase}_id"
48
+ new_meta = meta.dup
49
+ new_meta.stringify_keys!
50
+
51
+ unless new_meta.has_key?(key_name)
52
+ new_meta.dup[key_name] = id
53
+ end
54
+
55
+ new_meta
56
+ end
57
+
58
+ end
59
+
60
+ end
@@ -1,3 +1,3 @@
1
1
  module Statsman
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/statsman.gemspec CHANGED
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_runtime_dependency "sucker_punch", "~> 1.2"
22
22
  spec.add_runtime_dependency "httparty", "~> 0.13"
23
+ spec.add_runtime_dependency "activesupport", ">= 3.0"
23
24
 
24
25
  spec.add_development_dependency "bundler", "~> 1.7"
25
26
  spec.add_development_dependency "rake", "~> 10.0"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: statsman
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Emminger
@@ -39,6 +39,20 @@ dependencies:
39
39
  - - ~>
40
40
  - !ruby/object:Gem::Version
41
41
  version: '0.13'
42
+ - !ruby/object:Gem::Dependency
43
+ name: activesupport
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - '>='
47
+ - !ruby/object:Gem::Version
48
+ version: '3.0'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '3.0'
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: bundler
44
58
  requirement: !ruby/object:Gem::Requirement
@@ -84,6 +98,7 @@ files:
84
98
  - README.md
85
99
  - Rakefile
86
100
  - lib/statsman.rb
101
+ - lib/statsman/accountable.rb
87
102
  - lib/statsman/reporter_job.rb
88
103
  - lib/statsman/version.rb
89
104
  - statsman.gemspec