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 +4 -4
- data/lib/statsman/accountable.rb +60 -0
- data/lib/statsman/version.rb +1 -1
- data/statsman.gemspec +1 -0
- metadata +16 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a4ba0d1cac6e83dd6585c2f59e24d58355ad3ab1
|
4
|
+
data.tar.gz: 07092b0f510b7d0005a59c9e38667501d1e75a7a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
data/lib/statsman/version.rb
CHANGED
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.
|
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
|