statsman 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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