gratitude 0.0.4 → 0.0.5

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: 473713e402afb411f3cfbae68c5bba2ce0fa5bdd
4
- data.tar.gz: f122eed37c115bd91210ab8e37969e5b9ad36706
3
+ metadata.gz: 148bd163e7811cecc2493f24c51e4772a24c524b
4
+ data.tar.gz: ab43ed1358db95ddccc6c4b7228a110622ef7850
5
5
  SHA512:
6
- metadata.gz: bc90a61ecf75e50f611ffe9ba38e07d73fed3fa00a657ca1864b4e90e9bcc3814dd237ea13088856a47d4cafb6f22e1d8033f5448a029bf980db8a3b78a43dde
7
- data.tar.gz: bb860da6574eca73ecf4209b854d13dfd93f8cc57ca32e48a8319d704196b794a2ce834e27819090fa32004cc00a79695df07be33323e6438c3f1e216a5d2aa7
6
+ metadata.gz: 490727f1acb43db4bb2d4abd38b7c705ab84c600717ad86f210658b5c814d67e3d843b4d12b8c99c67fb4faf6180788ad4cd45be363b10ff38c79979647822e2
7
+ data.tar.gz: 1440052a9d147e69b8f621209dfa536e912250761d4535531be9d520c74cba159ace19ba095043b3ea757aab82a6381e983a3a1c7cd65b48e3d1f9fc0d350965
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  Gemfile.lock
2
2
  pkg
3
- /coverage
3
+ /coverage
4
+ .rake_t_cache
data/README.md CHANGED
@@ -7,12 +7,118 @@ gratitude
7
7
  [![Coverage Status](https://coveralls.io/repos/JohnKellyFerguson/gratitude/badge.png)](https://coveralls.io/r/JohnKellyFerguson/gratitude)
8
8
 
9
9
 
10
- A simple Ruby wrapper for the Gittip API.
10
+ A simple Ruby wrapper for the [Gittip API](https://github.com/gittip/www.gittip.com#api).
11
11
 
12
12
  **Note**: This gem is currently under development and is not ready for use in a production environment. A stable version is planned for v0.1.0. Please follow the [Changelog](CHANGELOG.md) to check the status of the project.
13
13
 
14
+
15
+ # Installation
16
+ --------------
17
+ gem install gratitude
18
+
19
+ # Usage
20
+ -------
21
+ The gratitude gem has four different components that interact with different aspects of the Gittip API. They are as follows:
22
+
23
+ * [Paydays](#paydays-source-code)
24
+ * [Statistics](#statistics)
25
+ * [Profile](#profile-source-code)
26
+ * [Tips](#tips)
27
+
28
+ When using gratitude to retrieve data from the Gittip API, please note that many of the JSON key names have been wrapped in more naturally sounding method names. However, all of the original JSON key names have also been maintained as aliases so as to maitain consistency with the original [Gittip API documentation](https://github.com/gittip/www.gittip.com#api).
29
+
30
+ ##Paydays ([source code](https://github.com/JohnKellyFerguson/gratitude/blob/master/lib/gratitude/payday.rb))
31
+
32
+ The Gittip API provides access to the historical data of all its paydays. To retrieve this information, simply use the following command:
33
+
34
+ Gratitude::Payday.all
35
+
36
+ The above will return an array of Payday objects. Each Payday object responds to the following methods:
37
+
38
+ * `ach_fees_volume`
39
+ * `ach_volume`
40
+ * `charge_fees_volume`
41
+ * `charge_volume`
42
+ * `number_of_achs`
43
+ * `number_active`
44
+ * `number_of_failing_credit_cards`
45
+ * `number_of_missing_credit_cards`
46
+ * `number_of_charges`
47
+ * `number_of_participants`
48
+ * `number_of_tippers`
49
+ * `number_of_transfers`
50
+ * `transfer_volume`
51
+ * `ts_end`
52
+ * `ts_start`
53
+
54
+ You can then iterate through this array of payday objects to persist them to a database or get whatever information you need.
55
+
56
+ paydays = Gratitude::Payday.all
57
+ paydays.each do |payday|
58
+ # get whatever information you want from the payday object
59
+ # using the above mentioned methods.
60
+ end
61
+
62
+ Finally, if you just want to get the most recent payday, you can do so by using:
63
+
64
+ Gratitude::Payday.most_recent
65
+
66
+ ##Statistics
67
+ * **TODO:** Implement Gittip's Statistics API into gratitude.
68
+
69
+ ##Profile ([source code](https://github.com/JohnKellyFerguson/gratitude/blob/master/lib/gratitude/profile.rb))
70
+
71
+ The Profile aspect of the Gittip API allows you to get the public profile information of any Gittip user. To do so, just pass their username as an initialization argument to the `Gratitude::Profile` class.
72
+
73
+ Gratitude::Profile.new("johnkellyferguson")
74
+
75
+ The following will retrieve the public profile of the above user. You can then access all of the different information with the following methods:
76
+
77
+ * `avatar_url`
78
+ * `bitbucket_api_url`
79
+ * returns the user's bitbucket api url if they have connected a bitbucket account.
80
+ * otherwise, returns `nil`.
81
+ * `bitbucket_username`
82
+ * returns the user's bitbucket username if they have connected a bitbucket account.
83
+ * otherwise, returns `nil`.
84
+ * `bountysource_api_url`
85
+ * returns the user's bountysource api url if they have connected a bountysource account.
86
+ * otherwise, returns `nil`.
87
+ * `bountysource_username`
88
+ * returns the user's bountysource username if they have connected a bountysource account.
89
+ * otherwise, returns `nil`.
90
+ * `github_api_url`
91
+ * returns the user's github api url if they have connected a github account.
92
+ * otherwise, returns `nil`.
93
+ * `github_username`
94
+ * returns the user's github username if they have connected a github account.
95
+ * otherwise, returns `nil`.
96
+ * `twitter_api_url`
97
+ * returns the user's twitter api url if they have connected a twitter account.
98
+ * otherwise, returns `nil`.
99
+ * `amount_giving`
100
+ * returns the amount (as a float) the user has pledged to give this week.
101
+ * `amount_receiving`
102
+ * returns an estimate as a float of what the given user is expected to receive this week.
103
+ * `goal`
104
+ * returns the amount (as a float) that the user would like to receive weekly if the user set such a goal.
105
+ * returns `nil` if the user has defined themselves as a patron or has not set a specific monetary goal.
106
+ * `number`
107
+ * returns either `'singular'` or `'plural'` representing the type of account the user has.
108
+ * `id`
109
+ * the id of the user.
110
+
111
+ **TODO:** Implement the `my_tip` method into the Profile section once client authentication is finished.
112
+
113
+ ##Tips
114
+ * **TODO:** Implement Gittip's Statistics API into gratitude.
115
+
116
+
14
117
  #### Copyright and License
15
118
 
16
119
  Copyright John Kelly Ferguson and Contributors, 2013
17
120
 
18
121
  [MIT Licence](LICENSE.txt)
122
+
123
+
124
+
@@ -0,0 +1,67 @@
1
+ module Gratitude
2
+ class Payday
3
+ include HTTParty
4
+ base_uri "https://www.gittip.com/about/paydays.json"
5
+ PAYDAYS = []
6
+
7
+ attr_reader :ach_fees_volume, :ach_volume, :charge_fees_volume,
8
+ :charge_volume, :number_of_achs, :number_active,
9
+ :number_of_failing_credit_cards, :number_of_missing_credit_cards,
10
+ :number_of_charges, :number_of_participants, :number_of_tippers,
11
+ :number_of_transfers, :transfer_volume, :ts_end, :ts_start
12
+
13
+ # Provide aliases so all methods can correspond to the original Gittip API names.
14
+ alias :nachs :number_of_achs
15
+ alias :nactive :number_active
16
+ alias :ncc_failing :number_of_failing_credit_cards
17
+ alias :ncc_missing :number_of_missing_credit_cards
18
+ alias :ncharges :number_of_charges
19
+ alias :nparticipants :number_of_participants
20
+ alias :ntippers :number_of_tippers
21
+ alias :ntransfers :number_of_transfers
22
+
23
+ def initialize(options = {})
24
+ @ach_fees_volume = options["ach_fees_volume"]
25
+ @ach_volume = options["ach_volume"]
26
+ @charge_fees_volume = options["charge_fees_volume"]
27
+ @charge_volume = options["charge_volume"]
28
+ @number_of_achs = options["nachs"]
29
+ @number_active = options["nactive"]
30
+ @number_of_failing_credit_cards = options["ncc_failing"]
31
+ @number_of_missing_credit_cards = options["ncc_missing"]
32
+ @number_of_charges = options["ncharges"]
33
+ @number_of_participants = options["nparticipants"]
34
+ @number_of_tippers = options["ntippers"]
35
+ @number_of_transfers = options["ntransfers"]
36
+ @transfer_volume = options["transfer_volume"]
37
+ @ts_end = DateTime.parse(options["ts_end"])
38
+ @ts_start = DateTime.parse(options["ts_start"])
39
+ PAYDAYS << self
40
+ end
41
+
42
+ # Class Methods
43
+ def self.all
44
+ collect_paydays if PAYDAYS.empty?
45
+ PAYDAYS
46
+ end
47
+
48
+ def self.most_recent
49
+ sort_by_ts_end.first
50
+ end
51
+
52
+ def self.sort_by_ts_end
53
+ all.sort_by { |p| p.ts_end }.reverse
54
+ end
55
+
56
+ def self.get_paydays_from_gittip
57
+ get(base_uri).to_a
58
+ end
59
+
60
+ def self.collect_paydays
61
+ get_paydays_from_gittip.each do |payday_hash|
62
+ Payday.new(payday_hash)
63
+ end
64
+ end
65
+
66
+ end # Payday
67
+ end # Gratitude
@@ -14,10 +14,12 @@ module Gratitude
14
14
  def avatar_url
15
15
  response["avatar"]
16
16
  end
17
+ alias :avatar :avatar_url
17
18
 
18
19
  def bitbucket_api_url
19
20
  response["elsewhere"]["bitbucket"]
20
21
  end
22
+ alias :bitbucket :bitbucket_api_url
21
23
 
22
24
  def bitbucket_username
23
25
  bitbucket_api_url.gsub("https://bitbucket.org/api/1.0/users/", "") if bitbucket_api_url
@@ -26,6 +28,7 @@ module Gratitude
26
28
  def bountysource_api_url
27
29
  response["elsewhere"]["bountysource"]
28
30
  end
31
+ alias :bountysource :bountysource_api_url
29
32
 
30
33
  def bountysource_username
31
34
  bountysource_api_url.gsub("https://api.bountysource.com/users/", "") if bountysource_api_url
@@ -34,6 +37,7 @@ module Gratitude
34
37
  def github_api_url
35
38
  response["elsewhere"]["github"]
36
39
  end
40
+ alias :github :github_api_url
37
41
 
38
42
  def github_username
39
43
  github_api_url.gsub("https://api.github.com/users/", "") if github_api_url
@@ -42,6 +46,7 @@ module Gratitude
42
46
  def twitter_api_url
43
47
  response["elsewhere"]["twitter"]
44
48
  end
49
+ alias :twitter :twitter_api_url
45
50
 
46
51
  def twitter_username
47
52
  nil
@@ -50,10 +55,12 @@ module Gratitude
50
55
  def amount_giving
51
56
  response["giving"].to_f
52
57
  end
58
+ alias :giving :amount_giving
53
59
 
54
60
  def amount_receiving
55
61
  response["receiving"].to_f
56
62
  end
63
+ alias :receiving :amount_receiving
57
64
 
58
65
  def goal
59
66
  response["goal"].to_f if response["goal"]
@@ -66,6 +73,6 @@ module Gratitude
66
73
  def id
67
74
  response["id"]
68
75
  end
69
-
76
+
70
77
  end # Profile
71
78
  end # Gratitude
@@ -1,3 +1,3 @@
1
1
  module Gratitude
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
data/lib/gratitude.rb CHANGED
@@ -2,6 +2,7 @@ require "httparty"
2
2
 
3
3
  require "gratitude/version"
4
4
  require "gratitude/profile"
5
+ require "gratitude/payday"
5
6
 
6
7
  module Gratitude
7
8
  # Your code goes here...
@@ -0,0 +1,62 @@
1
+ {
2
+ "http_interactions": [
3
+ {
4
+ "request": {
5
+ "method": "get",
6
+ "uri": "https://www.gittip.com/about/paydays.json",
7
+ "body": {
8
+ "encoding": "US-ASCII",
9
+ "string": ""
10
+ },
11
+ "headers": {
12
+
13
+ }
14
+ },
15
+ "response": {
16
+ "status": {
17
+ "code": 200,
18
+ "message": "OK"
19
+ },
20
+ "headers": {
21
+ "Access-Control-Allow-Origin": [
22
+ "*"
23
+ ],
24
+ "Content-Type": [
25
+ "application/json"
26
+ ],
27
+ "Date": [
28
+ "Mon, 16 Sep 2013 02:36:08 GMT"
29
+ ],
30
+ "Server": [
31
+ "Aspen! Cheroot!"
32
+ ],
33
+ "Set-Cookie": [
34
+ "csrf_token=P3qyOIxwiFSL41CerOQ4FCV6xe4ANQxA; expires=Mon, 15 Sep 2014 02:36:08 GMT; Path=/"
35
+ ],
36
+ "Vary": [
37
+ "Cookie"
38
+ ],
39
+ "X-Frame-Options": [
40
+ "SAMEORIGIN"
41
+ ],
42
+ "X-Gittip-Version": [
43
+ "10.1.20"
44
+ ],
45
+ "Transfer-Encoding": [
46
+ "chunked"
47
+ ],
48
+ "Connection": [
49
+ "keep-alive"
50
+ ]
51
+ },
52
+ "body": {
53
+ "encoding": "UTF-8",
54
+ "string": "[\n {\n \"ach_fees_volume\": 0.00,\n \"ach_volume\": -2246.96,\n \"charge_fees_volume\": 216.09,\n \"charge_volume\": 4583.22,\n \"nachs\": 53,\n \"nactive\": 1719,\n \"ncc_failing\": 178,\n \"ncc_missing\": 1222,\n \"ncharges\": 276,\n \"nparticipants\": 19567,\n \"ntippers\": 1105,\n \"ntransfers\": 3309,\n \"transfer_volume\": 5464.38,\n \"ts_end\": \"2013-09-12T14:01:41.848587+00:00\",\n \"ts_start\": \"2013-09-12T12:36:52.967371+00:00\"\n },\n {\n \"ach_fees_volume\": 0.00,\n \"ach_volume\": -2176.68,\n \"charge_fees_volume\": 225.87,\n \"charge_volume\": 4972.77,\n \"nachs\": 46,\n \"nactive\": 1709,\n \"ncc_failing\": 179,\n \"ncc_missing\": 1225,\n \"ncharges\": 271,\n \"nparticipants\": 19224,\n \"ntippers\": 1088,\n \"ntransfers\": 3260,\n \"transfer_volume\": 5768.64,\n \"ts_end\": \"2013-09-05T18:38:26.802180+00:00\",\n \"ts_start\": \"2013-09-05T15:45:31.565974+00:00\"\n },\n {\n \"ach_fees_volume\": 0.00,\n \"ach_volume\": -2909.46,\n \"charge_fees_volume\": 218.37,\n \"charge_volume\": 4580.12,\n \"nachs\": 46,\n \"nactive\": 1668,\n \"ncc_failing\": 177,\n \"ncc_missing\": 1225,\n \"ncharges\": 284,\n \"nparticipants\": 18853,\n \"ntippers\": 1075,\n \"ntransfers\": 3174,\n \"transfer_volume\": 5197.81,\n \"ts_end\": \"2013-08-29T20:24:29.958827+00:00\",\n \"ts_start\": \"2013-08-29T19:10:14.523243+00:00\"\n },\n {\n \"ach_fees_volume\": 0.00,\n \"ach_volume\": -2152.78,\n \"charge_fees_volume\": 223.16,\n \"charge_volume\": 4818.22,\n \"nachs\": 48,\n \"nactive\": 1608,\n \"ncc_failing\": 172,\n \"ncc_missing\": 1223,\n \"ncharges\": 277,\n \"nparticipants\": 18466,\n \"ntippers\": 1033,\n \"ntransfers\": 3066,\n \"transfer_volume\": 5322.65,\n \"ts_end\": \"2013-08-22T13:11:52.149845+00:00\",\n \"ts_start\": \"2013-08-22T12:06:37.143034+00:00\"\n },\n {\n \"ach_fees_volume\": 0.00,\n \"ach_volume\": -2083.57,\n \"charge_fees_volume\": 225.97,\n \"charge_volume\": 4885.14,\n \"nachs\": 44,\n \"nactive\": 1564,\n \"ncc_failing\": 170,\n \"ncc_missing\": 1225,\n \"ncharges\": 280,\n \"nparticipants\": 18219,\n \"ntippers\": 996,\n \"ntransfers\": 2994,\n \"transfer_volume\": 5225.07,\n \"ts_end\": \"2013-08-15T14:29:33.631587+00:00\",\n \"ts_start\": \"2013-08-15T13:32:22.657493+00:00\"\n },\n {\n \"ach_fees_volume\": 0.00,\n \"ach_volume\": -1825.88,\n \"charge_fees_volume\": 185.94,\n \"charge_volume\": 3910.39,\n \"nachs\": 39,\n \"nactive\": 1465,\n \"ncc_failing\": 157,\n \"ncc_missing\": 1210,\n \"ncharges\": 241,\n \"nparticipants\": 17679,\n \"ntippers\": 912,\n \"ntransfers\": 2824,\n \"transfer_volume\": 4358.61,\n \"ts_end\": \"2013-08-08T16:16:37.244010+00:00\",\n \"ts_start\": \"2013-08-08T15:19:40.258773+00:00\"\n },\n {\n \"ach_fees_volume\": 10.50,\n \"ach_volume\": -1928.64,\n \"charge_fees_volume\": 169.96,\n \"charge_volume\": 3690.53,\n \"nachs\": 42,\n \"nactive\": 1404,\n \"ncc_failing\": 157,\n \"ncc_missing\": 1199,\n \"ncharges\": 209,\n \"nparticipants\": 17297,\n \"ntippers\": 871,\n \"ntransfers\": 2734,\n \"transfer_volume\": 4425.03,\n \"ts_end\": \"2013-08-01T14:44:35.172297+00:00\",\n \"ts_start\": \"2013-08-01T13:56:13.208819+00:00\"\n },\n {\n \"ach_fees_volume\": 9.00,\n \"ach_volume\": -1885.84,\n \"charge_fees_volume\": 164.99,\n \"charge_volume\": 3591.77,\n \"nachs\": 36,\n \"nactive\": 1347,\n \"ncc_failing\": 153,\n \"ncc_missing\": 1196,\n \"ncharges\": 202,\n \"nparticipants\": 17024,\n \"ntippers\": 863,\n \"ntransfers\": 2626,\n \"transfer_volume\": 4427.93,\n \"ts_end\": \"2013-07-25T14:58:43.736802+00:00\",\n \"ts_start\": \"2013-07-25T13:49:13.980449+00:00\"\n },\n {\n \"ach_fees_volume\": 11.75,\n \"ach_volume\": -2095.21,\n \"charge_fees_volume\": 176.26,\n \"charge_volume\": 3733.98,\n \"nachs\": 47,\n \"nactive\": 1331,\n \"ncc_failing\": 150,\n \"ncc_missing\": 1196,\n \"ncharges\": 226,\n \"nparticipants\": 16679,\n \"ntippers\": 845,\n \"ntransfers\": 2579,\n \"transfer_volume\": 4219.47,\n \"ts_end\": \"2013-07-18T12:21:48.248953+00:00\",\n \"ts_start\": \"2013-07-18T11:34:20.576994+00:00\"\n },\n {\n \"ach_fees_volume\": 8.75,\n \"ach_volume\": -1809.39,\n \"charge_fees_volume\": 159.21,\n \"charge_volume\": 3404.34,\n \"nachs\": 35,\n \"nactive\": 1281,\n \"ncc_failing\": 140,\n \"ncc_missing\": 1152,\n \"ncharges\": 201,\n \"nparticipants\": 15826,\n \"ntippers\": 818,\n \"ntransfers\": 2515,\n \"transfer_volume\": 4213.72,\n \"ts_end\": \"2013-07-11T15:27:22.939452+00:00\",\n \"ts_start\": \"2013-07-11T14:45:52.088502+00:00\"\n },\n {\n \"ach_fees_volume\": 9.75,\n \"ach_volume\": -1849.21,\n \"charge_fees_volume\": 146.14,\n \"charge_volume\": 3119.29,\n \"nachs\": 39,\n \"nactive\": 1273,\n \"ncc_failing\": 148,\n \"ncc_missing\": 1233,\n \"ncharges\": 185,\n \"nparticipants\": 15425,\n \"ntippers\": 803,\n \"ntransfers\": 2467,\n \"transfer_volume\": 4127.63,\n \"ts_end\": \"2013-07-04T14:00:39.702630+00:00\",\n \"ts_start\": \"2013-07-04T11:37:41.489635+00:00\"\n },\n {\n \"ach_fees_volume\": 9.25,\n \"ach_volume\": -1944.99,\n \"charge_fees_volume\": 159.15,\n \"charge_volume\": 3298.75,\n \"nachs\": 37,\n \"nactive\": 1254,\n \"ncc_failing\": 131,\n \"ncc_missing\": 1108,\n \"ncharges\": 211,\n \"nparticipants\": 15183,\n \"ntippers\": 790,\n \"ntransfers\": 2438,\n \"transfer_volume\": 4110.90,\n \"ts_end\": \"2013-06-27T21:23:45.017715+00:00\",\n \"ts_start\": \"2013-06-27T18:24:27.898532+00:00\"\n },\n {\n \"ach_fees_volume\": 11.00,\n \"ach_volume\": -1885.73,\n \"charge_fees_volume\": 167.59,\n \"charge_volume\": 3516.74,\n \"nachs\": 44,\n \"nactive\": 1211,\n \"ncc_failing\": 129,\n \"ncc_missing\": 1087,\n \"ncharges\": 218,\n \"nparticipants\": 14855,\n \"ntippers\": 771,\n \"ntransfers\": 2387,\n \"transfer_volume\": 4148.37,\n \"ts_end\": \"2013-06-20T13:48:44.073362+00:00\",\n \"ts_start\": \"2013-06-20T12:12:53.292609+00:00\"\n },\n {\n \"ach_fees_volume\": 11.10,\n \"ach_volume\": -1451.13,\n \"charge_fees_volume\": 164.34,\n \"charge_volume\": 2829.78,\n \"nachs\": 37,\n \"nactive\": 1200,\n \"ncc_failing\": 126,\n \"ncc_missing\": 1070,\n \"ncharges\": 191,\n \"nparticipants\": 14588,\n \"ntippers\": 748,\n \"ntransfers\": 2336,\n \"transfer_volume\": 3584.21,\n \"ts_end\": \"2013-06-13T16:37:05.531308+00:00\",\n \"ts_start\": \"2013-06-13T13:52:39.362970+00:00\"\n },\n {\n \"ach_fees_volume\": 11.70,\n \"ach_volume\": -1673.18,\n \"charge_fees_volume\": 152.21,\n \"charge_volume\": 2677.06,\n \"nachs\": 39,\n \"nactive\": 1181,\n \"ncc_failing\": 123,\n \"ncc_missing\": 1043,\n \"ncharges\": 170,\n \"nparticipants\": 14224,\n \"ntippers\": 735,\n \"ntransfers\": 2328,\n \"transfer_volume\": 3659.21,\n \"ts_end\": \"2013-06-06T13:27:32.567105+00:00\",\n \"ts_start\": \"2013-06-06T12:00:07.350250+00:00\"\n },\n {\n \"ach_fees_volume\": 10.20,\n \"ach_volume\": -1332.61,\n \"charge_fees_volume\": 166.96,\n \"charge_volume\": 2931.48,\n \"nachs\": 34,\n \"nactive\": 1146,\n \"ncc_failing\": 125,\n \"ncc_missing\": 967,\n \"ncharges\": 187,\n \"nparticipants\": 13887,\n \"ntippers\": 713,\n \"ntransfers\": 2277,\n \"transfer_volume\": 3391.71,\n \"ts_end\": \"2013-05-30T13:34:13.226248+00:00\",\n \"ts_start\": \"2013-05-30T12:09:40.641417+00:00\"\n },\n {\n \"ach_fees_volume\": 10.80,\n \"ach_volume\": -1471.32,\n \"charge_fees_volume\": 160.32,\n \"charge_volume\": 2844.15,\n \"nachs\": 36,\n \"nactive\": 1118,\n \"ncc_failing\": 121,\n \"ncc_missing\": 929,\n \"ncharges\": 176,\n \"nparticipants\": 13508,\n \"ntippers\": 697,\n \"ntransfers\": 2229,\n \"transfer_volume\": 3449.21,\n \"ts_end\": \"2013-05-23T13:10:53.424416+00:00\",\n \"ts_start\": \"2013-05-23T11:48:32.981663+00:00\"\n },\n {\n \"ach_fees_volume\": 10.20,\n \"ach_volume\": -2002.82,\n \"charge_fees_volume\": 186.24,\n \"charge_volume\": 3258.74,\n \"nachs\": 34,\n \"nactive\": 1092,\n \"ncc_failing\": 108,\n \"ncc_missing\": 898,\n \"ncharges\": 210,\n \"nparticipants\": 12970,\n \"ntippers\": 671,\n \"ntransfers\": 2127,\n \"transfer_volume\": 3371.13,\n \"ts_end\": \"2013-05-16T14:14:34.113852+00:00\",\n \"ts_start\": \"2013-05-16T12:36:57.041446+00:00\"\n },\n {\n \"ach_fees_volume\": 9.60,\n \"ach_volume\": -1295.46,\n \"charge_fees_volume\": 144.04,\n \"charge_volume\": 2515.20,\n \"nachs\": 32,\n \"nactive\": 1000,\n \"ncc_failing\": 109,\n \"ncc_missing\": 841,\n \"ncharges\": 163,\n \"nparticipants\": 11723,\n \"ntippers\": 598,\n \"ntransfers\": 1914,\n \"transfer_volume\": 2881.62,\n \"ts_end\": \"2013-05-09T13:38:39.260356+00:00\",\n \"ts_start\": \"2013-05-09T12:24:11.591705+00:00\"\n },\n {\n \"ach_fees_volume\": 8.70,\n \"ach_volume\": -1418.33,\n \"charge_fees_volume\": 127.64,\n \"charge_volume\": 2224.54,\n \"nachs\": 29,\n \"nactive\": 955,\n \"ncc_failing\": 103,\n \"ncc_missing\": 796,\n \"ncharges\": 145,\n \"nparticipants\": 11305,\n \"ntippers\": 580,\n \"ntransfers\": 1843,\n \"transfer_volume\": 2731.37,\n \"ts_end\": \"2013-05-02T13:05:55.862292+00:00\",\n \"ts_start\": \"2013-05-02T11:56:44.052716+00:00\"\n },\n {\n \"ach_fees_volume\": 7.50,\n \"ach_volume\": -1311.13,\n \"charge_fees_volume\": 140.03,\n \"charge_volume\": 2457.44,\n \"nachs\": 25,\n \"nactive\": 923,\n \"ncc_failing\": 91,\n \"ncc_missing\": 768,\n \"ncharges\": 157,\n \"nparticipants\": 10985,\n \"ntippers\": 578,\n \"ntransfers\": 1821,\n \"transfer_volume\": 2896.12,\n \"ts_end\": \"2013-04-25T14:26:33.863180+00:00\",\n \"ts_start\": \"2013-04-25T13:11:45.729977+00:00\"\n },\n {\n \"ach_fees_volume\": 9.30,\n \"ach_volume\": -1315.96,\n \"charge_fees_volume\": 154.85,\n \"charge_volume\": 2649.20,\n \"nachs\": 31,\n \"nactive\": 873,\n \"ncc_failing\": 92,\n \"ncc_missing\": 736,\n \"ncharges\": 182,\n \"nparticipants\": 10647,\n \"ntippers\": 544,\n \"ntransfers\": 1736,\n \"transfer_volume\": 2716.05,\n \"ts_end\": \"2013-04-18T14:47:13.441234+00:00\",\n \"ts_start\": \"2013-04-18T14:11:24.158947+00:00\"\n },\n {\n \"ach_fees_volume\": 7.80,\n \"ach_volume\": -1083.94,\n \"charge_fees_volume\": 124.54,\n \"charge_volume\": 2084.76,\n \"nachs\": 26,\n \"nactive\": 762,\n \"ncc_failing\": 86,\n \"ncc_missing\": 638,\n \"ncharges\": 152,\n \"nparticipants\": 9722,\n \"ntippers\": 482,\n \"ntransfers\": 1502,\n \"transfer_volume\": 2234.39,\n \"ts_end\": \"2013-04-11T12:50:22.697402+00:00\",\n \"ts_start\": \"2013-04-11T11:47:12.931720+00:00\"\n },\n {\n \"ach_fees_volume\": 7.50,\n \"ach_volume\": -1160.06,\n \"charge_fees_volume\": 108.48,\n \"charge_volume\": 1884.47,\n \"nachs\": 25,\n \"nactive\": 740,\n \"ncc_failing\": 74,\n \"ncc_missing\": 620,\n \"ncharges\": 124,\n \"nparticipants\": 9514,\n \"ntippers\": 473,\n \"ntransfers\": 1474,\n \"transfer_volume\": 2342.39,\n \"ts_end\": \"2013-04-04T12:25:00.995681+00:00\",\n \"ts_start\": \"2013-04-04T11:39:18.681291+00:00\"\n },\n {\n \"ach_fees_volume\": 9.00,\n \"ach_volume\": -1365.47,\n \"charge_fees_volume\": 130.30,\n \"charge_volume\": 2271.08,\n \"nachs\": 30,\n \"nactive\": 695,\n \"ncc_failing\": 69,\n \"ncc_missing\": 606,\n \"ncharges\": 148,\n \"nparticipants\": 9297,\n \"ntippers\": 459,\n \"ntransfers\": 1376,\n \"transfer_volume\": 2393.89,\n \"ts_end\": \"2013-03-28T14:17:06.515475+00:00\",\n \"ts_start\": \"2013-03-28T13:05:23.740132+00:00\"\n },\n {\n \"ach_fees_volume\": 9.00,\n \"ach_volume\": -1359.50,\n \"charge_fees_volume\": 115.88,\n \"charge_volume\": 2032.42,\n \"nachs\": 30,\n \"nactive\": 640,\n \"ncc_failing\": 67,\n \"ncc_missing\": 579,\n \"ncharges\": 130,\n \"nparticipants\": 9059,\n \"ntippers\": 417,\n \"ntransfers\": 1253,\n \"transfer_volume\": 2212.39,\n \"ts_end\": \"2013-03-22T12:57:04.105470+00:00\",\n \"ts_start\": \"2013-03-22T12:11:45.041410+00:00\"\n },\n {\n \"ach_fees_volume\": 6.90,\n \"ach_volume\": -990.24,\n \"charge_fees_volume\": 97.76,\n \"charge_volume\": 1728.46,\n \"nachs\": 23,\n \"nactive\": 602,\n \"ncc_failing\": 66,\n \"ncc_missing\": 555,\n \"ncharges\": 108,\n \"nparticipants\": 8829,\n \"ntippers\": 388,\n \"ntransfers\": 1171,\n \"transfer_volume\": 2021.14,\n \"ts_end\": \"2013-03-14T20:48:02.670819+00:00\",\n \"ts_start\": \"2013-03-14T19:44:55.774744+00:00\"\n },\n {\n \"ach_fees_volume\": 7.80,\n \"ach_volume\": -896.71,\n \"charge_fees_volume\": 98.94,\n \"charge_volume\": 1711.26,\n \"nachs\": 26,\n \"nactive\": 583,\n \"ncc_failing\": 63,\n \"ncc_missing\": 542,\n \"ncharges\": 114,\n \"nparticipants\": 8632,\n \"ntippers\": 369,\n \"ntransfers\": 1120,\n \"transfer_volume\": 1933.14,\n \"ts_end\": \"2013-03-07T13:42:02.099630+00:00\",\n \"ts_start\": \"2013-03-07T13:00:08.405623+00:00\"\n },\n {\n \"ach_fees_volume\": 5.70,\n \"ach_volume\": -2975.45,\n \"charge_fees_volume\": 87.59,\n \"charge_volume\": 1538.96,\n \"nachs\": 19,\n \"nactive\": 558,\n \"ncc_failing\": 63,\n \"ncc_missing\": 528,\n \"ncharges\": 98,\n \"nparticipants\": 8465,\n \"ntippers\": 347,\n \"ntransfers\": 1070,\n \"transfer_volume\": 1843.98,\n \"ts_end\": \"2013-02-28T18:21:18.214478+00:00\",\n \"ts_start\": \"2013-02-28T17:11:06.449708+00:00\"\n },\n {\n \"ach_fees_volume\": 4.50,\n \"ach_volume\": -562.23,\n \"charge_fees_volume\": 79.07,\n \"charge_volume\": 1360.48,\n \"nachs\": 15,\n \"nactive\": 533,\n \"ncc_failing\": 61,\n \"ncc_missing\": 519,\n \"ncharges\": 92,\n \"nparticipants\": 8270,\n \"ntippers\": 330,\n \"ntransfers\": 1020,\n \"transfer_volume\": 1678.48,\n \"ts_end\": \"2013-02-21T17:29:19.708366+00:00\",\n \"ts_start\": \"2013-02-21T17:08:55.242202+00:00\"\n },\n {\n \"ach_fees_volume\": 5.40,\n \"ach_volume\": -2004.37,\n \"charge_fees_volume\": 86.50,\n \"charge_volume\": 1493.25,\n \"nachs\": 18,\n \"nactive\": 515,\n \"ncc_failing\": 57,\n \"ncc_missing\": 512,\n \"ncharges\": 100,\n \"nparticipants\": 8138,\n \"ntippers\": 326,\n \"ntransfers\": 980,\n \"transfer_volume\": 1730.06,\n \"ts_end\": \"2013-02-14T14:37:23.950795+00:00\",\n \"ts_start\": \"2013-02-14T13:38:08.967383+00:00\"\n },\n {\n \"ach_fees_volume\": 3.90,\n \"ach_volume\": -1021.08,\n \"charge_fees_volume\": 86.45,\n \"charge_volume\": 1483.76,\n \"nachs\": 13,\n \"nactive\": 457,\n \"ncc_failing\": 53,\n \"ncc_missing\": 491,\n \"ncharges\": 101,\n \"nparticipants\": 7818,\n \"ntippers\": 292,\n \"ntransfers\": 865,\n \"transfer_volume\": 1623.88,\n \"ts_end\": \"2013-02-07T12:38:05.201953+00:00\",\n \"ts_start\": \"2013-02-07T12:00:20.239147+00:00\"\n },\n {\n \"ach_fees_volume\": 3.60,\n \"ach_volume\": -590.64,\n \"charge_fees_volume\": 77.26,\n \"charge_volume\": 1320.61,\n \"nachs\": 12,\n \"nactive\": 455,\n \"ncc_failing\": 72,\n \"ncc_missing\": 697,\n \"ncharges\": 91,\n \"nparticipants\": 7716,\n \"ntippers\": 297,\n \"ntransfers\": 829,\n \"transfer_volume\": 1542.88,\n \"ts_end\": \"2013-01-31T15:16:08.473804+00:00\",\n \"ts_start\": \"2013-01-31T14:21:29.964045+00:00\"\n },\n {\n \"ach_fees_volume\": 3.60,\n \"ach_volume\": -562.50,\n \"charge_fees_volume\": 69.90,\n \"charge_volume\": 1238.02,\n \"nachs\": 12,\n \"nactive\": 458,\n \"ncc_failing\": 44,\n \"ncc_missing\": 496,\n \"ncharges\": 77,\n \"nparticipants\": 7623,\n \"ntippers\": 294,\n \"ntransfers\": 835,\n \"transfer_volume\": 1551.95,\n \"ts_end\": \"2013-01-24T14:59:46.558362+00:00\",\n \"ts_start\": \"2013-01-24T14:15:23.073011+00:00\"\n },\n {\n \"ach_fees_volume\": 3.30,\n \"ach_volume\": -602.69,\n \"charge_fees_volume\": 85.89,\n \"charge_volume\": 1477.38,\n \"nachs\": 11,\n \"nactive\": 456,\n \"ncc_failing\": 47,\n \"ncc_missing\": 463,\n \"ncharges\": 100,\n \"nparticipants\": 7500,\n \"ntippers\": 288,\n \"ntransfers\": 797,\n \"transfer_volume\": 1506.70,\n \"ts_end\": \"2013-01-17T14:40:26.395489+00:00\",\n \"ts_start\": \"2013-01-17T14:05:01.620168+00:00\"\n },\n {\n \"ach_fees_volume\": 3.30,\n \"ach_volume\": -563.51,\n \"charge_fees_volume\": 74.93,\n \"charge_volume\": 1298.85,\n \"nachs\": 11,\n \"nactive\": 443,\n \"ncc_failing\": 68,\n \"ncc_missing\": 721,\n \"ncharges\": 86,\n \"nparticipants\": 7319,\n \"ntippers\": 282,\n \"ntransfers\": 772,\n \"transfer_volume\": 1471.19,\n \"ts_end\": \"2013-01-10T13:34:52.077455+00:00\",\n \"ts_start\": \"2013-01-10T12:32:05.299853+00:00\"\n },\n {\n \"ach_fees_volume\": 2.40,\n \"ach_volume\": -526.02,\n \"charge_fees_volume\": 71.26,\n \"charge_volume\": 1241.60,\n \"nachs\": 8,\n \"nactive\": 432,\n \"ncc_failing\": 43,\n \"ncc_missing\": 450,\n \"ncharges\": 81,\n \"nparticipants\": 7155,\n \"ntippers\": 279,\n \"ntransfers\": 765,\n \"transfer_volume\": 1425.24,\n \"ts_end\": \"2013-01-03T15:06:40.714021+00:00\",\n \"ts_start\": \"2013-01-03T13:41:18.062207+00:00\"\n },\n {\n \"ach_fees_volume\": 3.60,\n \"ach_volume\": -559.07,\n \"charge_fees_volume\": 73.08,\n \"charge_volume\": 1282.19,\n \"nachs\": 12,\n \"nactive\": 423,\n \"ncc_failing\": 44,\n \"ncc_missing\": 447,\n \"ncharges\": 82,\n \"nparticipants\": 7069,\n \"ntippers\": 274,\n \"ntransfers\": 753,\n \"transfer_volume\": 1447.74,\n \"ts_end\": \"2012-12-27T13:04:35.707600+00:00\",\n \"ts_start\": \"2012-12-27T12:32:21.391256+00:00\"\n },\n {\n \"ach_fees_volume\": 3.00,\n \"ach_volume\": -529.42,\n \"charge_fees_volume\": 78.08,\n \"charge_volume\": 1350.72,\n \"nachs\": 10,\n \"nactive\": 429,\n \"ncc_failing\": 41,\n \"ncc_missing\": 438,\n \"ncharges\": 90,\n \"nparticipants\": 6997,\n \"ntippers\": 274,\n \"ntransfers\": 757,\n \"transfer_volume\": 1457.02,\n \"ts_end\": \"2012-12-20T13:22:16.494733+00:00\",\n \"ts_start\": \"2012-12-20T12:51:36.881051+00:00\"\n },\n {\n \"ach_fees_volume\": 3.30,\n \"ach_volume\": -496.60,\n \"charge_fees_volume\": 69.48,\n \"charge_volume\": 1219.30,\n \"nachs\": 11,\n \"nactive\": 423,\n \"ncc_failing\": 43,\n \"ncc_missing\": 433,\n \"ncharges\": 78,\n \"nparticipants\": 6863,\n \"ntippers\": 268,\n \"ntransfers\": 752,\n \"transfer_volume\": 1426.53,\n \"ts_end\": \"2012-12-13T14:24:43.914858+00:00\",\n \"ts_start\": \"2012-12-13T13:09:06.330355+00:00\"\n },\n {\n \"ach_fees_volume\": 3.00,\n \"ach_volume\": -305.03,\n \"charge_fees_volume\": 73.94,\n \"charge_volume\": 1272.94,\n \"nachs\": 10,\n \"nactive\": 419,\n \"ncc_failing\": 55,\n \"ncc_missing\": 572,\n \"ncharges\": 86,\n \"nparticipants\": 6790,\n \"ntippers\": 265,\n \"ntransfers\": 751,\n \"transfer_volume\": 1372.61,\n \"ts_end\": \"2012-12-06T14:07:47.257937+00:00\",\n \"ts_start\": \"2012-12-06T13:27:27.158125+00:00\"\n },\n {\n \"ach_fees_volume\": 3.30,\n \"ach_volume\": -641.62,\n \"charge_fees_volume\": 93.58,\n \"charge_volume\": 1576.84,\n \"nachs\": 11,\n \"nactive\": 424,\n \"ncc_failing\": 37,\n \"ncc_missing\": 424,\n \"ncharges\": 113,\n \"nparticipants\": 6641,\n \"ntippers\": 271,\n \"ntransfers\": 762,\n \"transfer_volume\": 1464.39,\n \"ts_end\": \"2012-11-29T13:16:06.900440+00:00\",\n \"ts_start\": \"2012-11-29T12:45:18.180298+00:00\"\n },\n {\n \"ach_fees_volume\": 3.60,\n \"ach_volume\": -606.30,\n \"charge_fees_volume\": 68.15,\n \"charge_volume\": 1207.69,\n \"nachs\": 12,\n \"nactive\": 431,\n \"ncc_failing\": 33,\n \"ncc_missing\": 410,\n \"ncharges\": 75,\n \"nparticipants\": 6500,\n \"ntippers\": 273,\n \"ntransfers\": 765,\n \"transfer_volume\": 1491.89,\n \"ts_end\": \"2012-11-22T16:06:00.629991+00:00\",\n \"ts_start\": \"2012-11-22T15:37:59.390225+00:00\"\n },\n {\n \"ach_fees_volume\": 3.00,\n \"ach_volume\": -456.67,\n \"charge_fees_volume\": 72.07,\n \"charge_volume\": 1255.17,\n \"nachs\": 10,\n \"nactive\": 427,\n \"ncc_failing\": 35,\n \"ncc_missing\": 407,\n \"ncharges\": 82,\n \"nparticipants\": 6408,\n \"ntippers\": 274,\n \"ntransfers\": 765,\n \"transfer_volume\": 1512.89,\n \"ts_end\": \"2012-11-15T15:06:05.173137+00:00\",\n \"ts_start\": \"2012-11-15T14:37:56.650669+00:00\"\n },\n {\n \"ach_fees_volume\": 2.40,\n \"ach_volume\": -429.02,\n \"charge_fees_volume\": 79.41,\n \"charge_volume\": 1385.79,\n \"nachs\": 8,\n \"nactive\": 429,\n \"ncc_failing\": 29,\n \"ncc_missing\": 400,\n \"ncharges\": 90,\n \"nparticipants\": 6286,\n \"ntippers\": 273,\n \"ntransfers\": 771,\n \"transfer_volume\": 1529.61,\n \"ts_end\": \"2012-11-08T21:36:47.732642+00:00\",\n \"ts_start\": \"2012-11-08T20:47:52.767141+00:00\"\n },\n {\n \"ach_fees_volume\": 3.30,\n \"ach_volume\": -665.16,\n \"charge_fees_volume\": 70.62,\n \"charge_volume\": 1216.72,\n \"nachs\": 11,\n \"nactive\": 426,\n \"ncc_failing\": 39,\n \"ncc_missing\": 387,\n \"ncharges\": 82,\n \"nparticipants\": 6095,\n \"ntippers\": 270,\n \"ntransfers\": 771,\n \"transfer_volume\": 1407.14,\n \"ts_end\": \"2012-11-01T23:48:23.624102+00:00\",\n \"ts_start\": \"2012-11-01T23:07:31.044081+00:00\"\n },\n {\n \"ach_fees_volume\": 3.90,\n \"ach_volume\": -567.02,\n \"charge_fees_volume\": 79.23,\n \"charge_volume\": 1405.33,\n \"nachs\": 13,\n \"nactive\": 433,\n \"ncc_failing\": 36,\n \"ncc_missing\": 380,\n \"ncharges\": 87,\n \"nparticipants\": 6009,\n \"ntippers\": 274,\n \"ntransfers\": 777,\n \"transfer_volume\": 1602.72,\n \"ts_end\": \"2012-10-25T12:31:16.908494+00:00\",\n \"ts_start\": \"2012-10-25T12:02:52.010809+00:00\"\n },\n {\n \"ach_fees_volume\": 4.20,\n \"ach_volume\": -674.47,\n \"charge_fees_volume\": 81.26,\n \"charge_volume\": 1451.11,\n \"nachs\": 14,\n \"nactive\": 431,\n \"ncc_failing\": 29,\n \"ncc_missing\": 372,\n \"ncharges\": 88,\n \"nparticipants\": 5884,\n \"ntippers\": 274,\n \"ntransfers\": 794,\n \"transfer_volume\": 1663.72,\n \"ts_end\": \"2012-10-18T14:14:24.122195+00:00\",\n \"ts_start\": \"2012-10-18T13:45:51.045152+00:00\"\n },\n {\n \"ach_fees_volume\": 3.60,\n \"ach_volume\": -631.64,\n \"charge_fees_volume\": 77.14,\n \"charge_volume\": 1390.08,\n \"nachs\": 12,\n \"nactive\": 432,\n \"ncc_failing\": 23,\n \"ncc_missing\": 363,\n \"ncharges\": 82,\n \"nparticipants\": 5780,\n \"ntippers\": 275,\n \"ntransfers\": 791,\n \"transfer_volume\": 1667.59,\n \"ts_end\": \"2012-10-11T16:27:44.581458+00:00\",\n \"ts_start\": \"2012-10-11T16:00:55.171435+00:00\"\n },\n {\n \"ach_fees_volume\": 3.00,\n \"ach_volume\": -1236.98,\n \"charge_fees_volume\": 90.33,\n \"charge_volume\": 1546.83,\n \"nachs\": 10,\n \"nactive\": 428,\n \"ncc_failing\": 18,\n \"ncc_missing\": 350,\n \"ncharges\": 106,\n \"nparticipants\": 5659,\n \"ntippers\": 273,\n \"ntransfers\": 822,\n \"transfer_volume\": 1542.36,\n \"ts_end\": \"2012-10-04T13:49:40.950112+00:00\",\n \"ts_start\": \"2012-10-04T13:09:59.575767+00:00\"\n },\n {\n \"ach_fees_volume\": 2.10,\n \"ach_volume\": -370.14,\n \"charge_fees_volume\": 83.17,\n \"charge_volume\": 1404.85,\n \"nachs\": 7,\n \"nactive\": 402,\n \"ncc_failing\": 18,\n \"ncc_missing\": 331,\n \"ncharges\": 100,\n \"nparticipants\": 5313,\n \"ntippers\": 258,\n \"ntransfers\": 763,\n \"transfer_volume\": 1358.92,\n \"ts_end\": \"2012-09-27T15:40:38.948322+00:00\",\n \"ts_start\": \"2012-09-27T13:59:13.358022+00:00\"\n },\n {\n \"ach_fees_volume\": 1.50,\n \"ach_volume\": -307.90,\n \"charge_fees_volume\": 62.64,\n \"charge_volume\": 1109.73,\n \"nachs\": 5,\n \"nactive\": 370,\n \"ncc_failing\": 7,\n \"ncc_missing\": 292,\n \"ncharges\": 69,\n \"nparticipants\": 4744,\n \"ntippers\": 230,\n \"ntransfers\": 733,\n \"transfer_volume\": 1261.82,\n \"ts_end\": \"2012-09-20T13:08:07.296572+00:00\",\n \"ts_start\": \"2012-09-20T12:42:03.698033+00:00\"\n },\n {\n \"ach_fees_volume\": 1.50,\n \"ach_volume\": -491.81,\n \"charge_fees_volume\": 69.70,\n \"charge_volume\": 1208.16,\n \"nachs\": 5,\n \"nactive\": 361,\n \"ncc_failing\": 8,\n \"ncc_missing\": 288,\n \"ncharges\": 80,\n \"nparticipants\": 4642,\n \"ntippers\": 224,\n \"ntransfers\": 705,\n \"transfer_volume\": 1225.52,\n \"ts_end\": \"2012-09-13T07:01:02.417488+00:00\",\n \"ts_start\": \"2012-09-13T06:38:51.300291+00:00\"\n },\n {\n \"ach_fees_volume\": 1.50,\n \"ach_volume\": -309.34,\n \"charge_fees_volume\": 61.42,\n \"charge_volume\": 1084.32,\n \"nachs\": 5,\n \"nactive\": 343,\n \"ncc_failing\": 13,\n \"ncc_missing\": 768,\n \"ncharges\": 68,\n \"nparticipants\": 4515,\n \"ntippers\": 207,\n \"ntransfers\": 708,\n \"transfer_volume\": 1174.43,\n \"ts_end\": \"2012-09-06T23:29:56.276524+00:00\",\n \"ts_start\": \"2012-09-06T22:29:53.060895+00:00\"\n },\n {\n \"ach_fees_volume\": 1.50,\n \"ach_volume\": -931.37,\n \"charge_fees_volume\": 50.79,\n \"charge_volume\": 914.85,\n \"nachs\": 5,\n \"nactive\": 337,\n \"ncc_failing\": 5,\n \"ncc_missing\": 276,\n \"ncharges\": 54,\n \"nparticipants\": 4417,\n \"ntippers\": 203,\n \"ntransfers\": 693,\n \"transfer_volume\": 1127.43,\n \"ts_end\": \"2012-08-31T13:40:27.352876+00:00\",\n \"ts_start\": \"2012-08-31T12:53:04.080298+00:00\"\n },\n {\n \"ach_fees_volume\": 0.60,\n \"ach_volume\": -1147.50,\n \"charge_fees_volume\": 60.91,\n \"charge_volume\": 1054.66,\n \"nachs\": 2,\n \"nactive\": 322,\n \"ncc_failing\": 9,\n \"ncc_missing\": 518,\n \"ncharges\": 70,\n \"nparticipants\": 4179,\n \"ntippers\": 197,\n \"ntransfers\": 683,\n \"transfer_volume\": 1070.07,\n \"ts_end\": \"2012-08-24T13:47:17.406442+00:00\",\n \"ts_start\": \"2012-08-24T13:25:40.605212+00:00\"\n },\n {\n \"ach_fees_volume\": 0.00,\n \"ach_volume\": 0.00,\n \"charge_fees_volume\": 54.78,\n \"charge_volume\": 964.40,\n \"nachs\": 0,\n \"nactive\": 313,\n \"ncc_failing\": 4,\n \"ncc_missing\": 258,\n \"ncharges\": 61,\n \"nparticipants\": 4070,\n \"ntippers\": 187,\n \"ntransfers\": 692,\n \"transfer_volume\": 1052.09,\n \"ts_end\": \"2012-08-17T18:55:12.464828+00:00\",\n \"ts_start\": \"2012-08-17T18:39:59.835695+00:00\"\n },\n {\n \"ach_fees_volume\": 0.00,\n \"ach_volume\": 0.00,\n \"charge_fees_volume\": 47.75,\n \"charge_volume\": 857.89,\n \"nachs\": 0,\n \"nactive\": 298,\n \"ncc_failing\": 4,\n \"ncc_missing\": 248,\n \"ncharges\": 51,\n \"nparticipants\": 3974,\n \"ntippers\": 179,\n \"ntransfers\": 667,\n \"transfer_volume\": 1038.38,\n \"ts_end\": \"2012-08-10T19:19:40.404633+00:00\",\n \"ts_start\": \"2012-08-10T19:05:05.938610+00:00\"\n },\n {\n \"ach_fees_volume\": 0.00,\n \"ach_volume\": 0.00,\n \"charge_fees_volume\": 45.27,\n \"charge_volume\": 986.37,\n \"nachs\": 0,\n \"nactive\": 286,\n \"ncc_failing\": 2,\n \"ncc_missing\": 235,\n \"ncharges\": 65,\n \"nparticipants\": 3802,\n \"ntippers\": 172,\n \"ntransfers\": 645,\n \"transfer_volume\": 997.27,\n \"ts_end\": \"2012-08-03T15:11:29.309878+00:00\",\n \"ts_start\": \"2012-08-03T14:57:42.935184+00:00\"\n },\n {\n \"ach_fees_volume\": 0.00,\n \"ach_volume\": 0.00,\n \"charge_fees_volume\": 71.36,\n \"charge_volume\": 1623.21,\n \"nachs\": 0,\n \"nactive\": 261,\n \"ncc_failing\": 6,\n \"ncc_missing\": 226,\n \"ncharges\": 126,\n \"nparticipants\": 3539,\n \"ntippers\": 151,\n \"ntransfers\": 628,\n \"transfer_volume\": 955.53,\n \"ts_end\": \"2012-07-27T21:08:04.390366+00:00\",\n \"ts_start\": \"2012-07-27T20:51:21.754544+00:00\"\n },\n {\n \"ach_fees_volume\": 0.00,\n \"ach_volume\": 0.00,\n \"charge_fees_volume\": 46.29,\n \"charge_volume\": 509.51,\n \"nachs\": 0,\n \"nactive\": 191,\n \"ncc_failing\": 1,\n \"ncc_missing\": 156,\n \"ncharges\": 89,\n \"nparticipants\": 1897,\n \"ntippers\": 110,\n \"ntransfers\": 509,\n \"transfer_volume\": 600.99,\n \"ts_end\": \"2012-07-20T20:59:44.915658+00:00\",\n \"ts_start\": \"2012-07-20T19:28:19.952586+00:00\"\n },\n {\n \"ach_fees_volume\": 0.00,\n \"ach_volume\": 0.00,\n \"charge_fees_volume\": 46.14,\n \"charge_volume\": 555.27,\n \"nachs\": 0,\n \"nactive\": 176,\n \"ncc_failing\": 0,\n \"ncc_missing\": 143,\n \"ncharges\": 83,\n \"nparticipants\": 1698,\n \"ntippers\": 98,\n \"ntransfers\": 485,\n \"transfer_volume\": 615.66,\n \"ts_end\": \"2012-07-13T18:01:43.170725+00:00\",\n \"ts_start\": \"2012-07-13T17:49:02.299015+00:00\"\n },\n {\n \"ach_fees_volume\": 0.00,\n \"ach_volume\": 0.00,\n \"charge_fees_volume\": 33.63,\n \"charge_volume\": 375.24,\n \"nachs\": 0,\n \"nactive\": 130,\n \"ncc_failing\": 0,\n \"ncc_missing\": 126,\n \"ncharges\": 64,\n \"nparticipants\": 1242,\n \"ntippers\": 71,\n \"ntransfers\": 343,\n \"transfer_volume\": 379.56,\n \"ts_end\": \"2012-07-06T18:46:29.486210+00:00\",\n \"ts_start\": \"2012-07-06T18:37:13.603400+00:00\"\n },\n {\n \"ach_fees_volume\": 0.00,\n \"ach_volume\": 0.00,\n \"charge_fees_volume\": 15.76,\n \"charge_volume\": 111.00,\n \"nachs\": 0,\n \"nactive\": 95,\n \"ncc_failing\": 0,\n \"ncc_missing\": 84,\n \"ncharges\": 38,\n \"nparticipants\": 833,\n \"ntippers\": 44,\n \"ntransfers\": 241,\n \"transfer_volume\": 110.64,\n \"ts_end\": \"2012-06-29T17:10:08.981798+00:00\",\n \"ts_start\": \"2012-06-29T17:05:03.867698+00:00\"\n },\n {\n \"ach_fees_volume\": 0.00,\n \"ach_volume\": 0.00,\n \"charge_fees_volume\": 4.62,\n \"charge_volume\": 25.29,\n \"nachs\": 0,\n \"nactive\": 50,\n \"ncc_failing\": 0,\n \"ncc_missing\": 52,\n \"ncharges\": 12,\n \"nparticipants\": 622,\n \"ntippers\": 19,\n \"ntransfers\": 83,\n \"transfer_volume\": 30.08,\n \"ts_end\": \"2012-06-22T15:34:22.371432+00:00\",\n \"ts_start\": \"2012-06-22T15:30:42.882306+00:00\"\n },\n {\n \"ach_fees_volume\": 0.00,\n \"ach_volume\": 0.00,\n \"charge_fees_volume\": 0.69,\n \"charge_volume\": 2.05,\n \"nachs\": 0,\n \"nactive\": 25,\n \"ncc_failing\": 17,\n \"ncc_missing\": 26,\n \"ncharges\": 2,\n \"nparticipants\": 477,\n \"ntippers\": 7,\n \"ntransfers\": 25,\n \"transfer_volume\": 4.24,\n \"ts_end\": \"2012-06-15T11:10:41.612864+00:00\",\n \"ts_start\": \"2012-06-15T11:09:54.298416+00:00\"\n },\n {\n \"ach_fees_volume\": 0.00,\n \"ach_volume\": 0.00,\n \"charge_fees_volume\": 2.11,\n \"charge_volume\": 25.28,\n \"nachs\": 0,\n \"nactive\": 25,\n \"ncc_failing\": 1,\n \"ncc_missing\": 18,\n \"ncharges\": 11,\n \"nparticipants\": 175,\n \"ntippers\": 12,\n \"ntransfers\": 49,\n \"transfer_volume\": 24.80,\n \"ts_end\": \"2012-06-08T12:03:19.889215+00:00\",\n \"ts_start\": \"2012-06-08T12:02:45.182409+00:00\"\n },\n {\n \"ach_fees_volume\": 0.00,\n \"ach_volume\": 0.00,\n \"charge_fees_volume\": 0.34,\n \"charge_volume\": 3.30,\n \"nachs\": 0,\n \"nactive\": 4,\n \"ncc_failing\": 0,\n \"ncc_missing\": 0,\n \"ncharges\": 2,\n \"nparticipants\": 2,\n \"ntippers\": 2,\n \"ntransfers\": 4,\n \"transfer_volume\": 2.96,\n \"ts_end\": \"2012-06-01T07:16:31.080825+00:00\",\n \"ts_start\": \"2012-06-01T07:01:13.376763+00:00\"\n }\n]"
55
+ },
56
+ "http_version": null
57
+ },
58
+ "recorded_at": "Mon, 16 Sep 2013 02:36:10 GMT"
59
+ }
60
+ ],
61
+ "recorded_with": "VCR 2.5.0"
62
+ }
@@ -0,0 +1,269 @@
1
+ require "spec_helper"
2
+
3
+ describe Gratitude::Payday do
4
+
5
+ describe "default attributes" do
6
+
7
+ it "should include httparty methods" do
8
+ Gratitude::Payday.should include(HTTParty)
9
+ end
10
+
11
+ it "should have the base uri set to gittip's payday api endpoint" do
12
+ expect(Gratitude::Payday.base_uri).to eq("https://www.gittip.com/about/paydays.json")
13
+ end
14
+
15
+ it "should have the PAYDAYS constant initially set to an empty array" do
16
+ expect(Gratitude::Payday::PAYDAYS).to eq([])
17
+ end
18
+
19
+ end # default attributes
20
+
21
+ describe "class methods" do
22
+
23
+ before do
24
+ VCR.insert_cassette "paydays"
25
+ end
26
+
27
+ after do
28
+ VCR.eject_cassette
29
+ end
30
+
31
+ describe "#get_paydays_from_gittip" do
32
+ it "returns an array" do
33
+ expect(Gratitude::Payday.get_paydays_from_gittip.class).to be(Array)
34
+ end
35
+
36
+ it "returns the correct number of items in the array" do
37
+ expect(Gratitude::Payday.get_paydays_from_gittip.size).to eq(68)
38
+ end
39
+ end
40
+
41
+ describe "#collect_paydays" do
42
+ it "creates all payday objects and puts them in the PAYDAYS constant" do
43
+ expect {
44
+ Gratitude::Payday.collect_paydays
45
+ }.to change { Gratitude::Payday::PAYDAYS.size }.from(0).to(68)
46
+ end
47
+ end
48
+
49
+ describe "#all" do
50
+ before do
51
+ Gratitude::Payday::PAYDAYS = []
52
+ end
53
+
54
+ it "returns an array" do
55
+ expect(Gratitude::Payday.all.class).to be(Array)
56
+ end
57
+
58
+ it "updates the PAYDAYS constant when it is empty" do
59
+ expect(Gratitude::Payday.all.size).to eq(68)
60
+ end
61
+
62
+ it "its array should be comprised of Payday objects" do
63
+ expect(Gratitude::Payday.all.first.class).to be(Gratitude::Payday)
64
+ end
65
+ end
66
+
67
+ describe "#sort_by_ts_end" do
68
+ it "places the newest payday first" do
69
+ expect(Gratitude::Payday.sort_by_ts_end.first.ts_end.year).to eq(2013)
70
+ expect(Gratitude::Payday.sort_by_ts_end.first.ts_end.month).to eq(9)
71
+ expect(Gratitude::Payday.sort_by_ts_end.first.ts_end.day).to eq(12)
72
+ end
73
+
74
+ it "places the oldest item last" do
75
+ expect(Gratitude::Payday.sort_by_ts_end.last.ts_end.year).to eq(2012)
76
+ expect(Gratitude::Payday.sort_by_ts_end.last.ts_end.month).to eq(6)
77
+ expect(Gratitude::Payday.sort_by_ts_end.last.ts_end.day).to eq(1)
78
+ end
79
+ end
80
+
81
+ describe "#most_recent" do
82
+ it "returns the most recent payday" do
83
+ expect(Gratitude::Payday.most_recent.ts_end.year).to eq(2013)
84
+ expect(Gratitude::Payday.most_recent.ts_end.month).to eq(9)
85
+ expect(Gratitude::Payday.most_recent.ts_end.day).to eq(12)
86
+ end
87
+ end
88
+
89
+ end # class methods
90
+
91
+ describe "initialization and instance methods" do
92
+
93
+ it "should add the initialized object to the PAYDAYS constant" do
94
+ expect { Gratitude::Payday.new( {
95
+ 'ts_end' => "2013-09-12T14:01:41.848587+00:00",
96
+ 'ts_start' => "2013-09-12T12:36:52.967371+00:00"
97
+ } )
98
+ }.to change{ Gratitude::Payday::PAYDAYS.size }.by(1)
99
+ end
100
+
101
+ let(:payday) { Gratitude::Payday.new( {
102
+ 'ach_fees_volume' => 0,
103
+ 'ach_volume' => -2246.96,
104
+ 'charge_fees_volume' => 216.09,
105
+ 'charge_volume' => 4583.22,
106
+ 'nachs' => 53,
107
+ 'nactive' => 1719,
108
+ 'ncc_failing' => 178,
109
+ 'ncc_missing' => 1222,
110
+ 'ncharges' => 276,
111
+ 'nparticipants' => 19567,
112
+ 'ntippers' => 1105,
113
+ 'ntransfers' => 3309,
114
+ 'transfer_volume' => 5464.38,
115
+ 'ts_end' => "2013-09-12T14:01:41.848587+00:00",
116
+ 'ts_start' => "2013-09-12T12:36:52.967371+00:00"
117
+ } )
118
+ }
119
+
120
+ describe "#ach_fees_volume" do
121
+ it "should return the correct ach fees volume" do
122
+ expect(payday.ach_fees_volume).to eq(0)
123
+ end
124
+ end
125
+
126
+ describe "#ach_volume" do
127
+ it "should return the correct ach volume" do
128
+ expect(payday.ach_volume).to eq(-2246.96)
129
+ end
130
+ end
131
+
132
+ describe "#charge_fees_volume" do
133
+ it "should return the correct charge fees volume" do
134
+ expect(payday.charge_fees_volume).to eq(216.09)
135
+ end
136
+ end
137
+
138
+ describe "#charge_volume" do
139
+ it "should return the correct charge volume" do
140
+ expect(payday.charge_volume).to eq(4583.22)
141
+ end
142
+ end
143
+
144
+ describe "#number_of_achs" do
145
+ it "should return the correct number of achs" do
146
+ expect(payday.number_of_achs).to eq(53)
147
+ end
148
+
149
+
150
+ it "should return the same value as #nachs" do
151
+ expect(payday.number_of_achs).to eq(payday.nachs)
152
+ end
153
+ end
154
+
155
+ describe "#number_active" do
156
+ it "should return the correct number active" do
157
+ expect(payday.number_active).to eq(1719)
158
+ end
159
+
160
+ it "should return the same value as #nactive" do
161
+ expect(payday.number_active).to eq(payday.nactive)
162
+ end
163
+ end
164
+
165
+ describe "#number_of_failing_credit_cards" do
166
+ it "should return the correct number of failing credit cards" do
167
+ expect(payday.number_of_failing_credit_cards).to eq(178)
168
+ end
169
+
170
+ it "should return the same value as #ncc_failing" do
171
+ expect(payday.number_of_failing_credit_cards).to eq(payday.ncc_failing)
172
+ end
173
+ end
174
+
175
+ describe "#number_of_missing_credit_cards" do
176
+ it "should return the correct number of missing credit cards" do
177
+ expect(payday.number_of_missing_credit_cards).to eq(1222)
178
+ end
179
+
180
+ it "should return the same value as #ncc_missing" do
181
+ expect(payday.number_of_missing_credit_cards).to eq(payday.ncc_missing)
182
+ end
183
+ end
184
+
185
+ describe "#number_of_charges" do
186
+ it "should return the correct number of charges" do
187
+ expect(payday.number_of_charges).to eq(276)
188
+ end
189
+
190
+ it "should return the same value as #ncharges" do
191
+ expect(payday.number_of_charges).to eq(payday.ncharges)
192
+ end
193
+ end
194
+
195
+ describe "#number_of_participants" do
196
+ it "should return the correct number of participants" do
197
+ expect(payday.number_of_participants).to eq(19567)
198
+ end
199
+
200
+ it "should return the same value as #nparticipants" do
201
+ expect(payday.number_of_participants).to eq(payday.nparticipants)
202
+ end
203
+ end
204
+
205
+ describe "#number_of_tippers" do
206
+ it "should respond to #number_of_tippers" do
207
+ expect(payday.number_of_tippers).to eq(1105)
208
+ end
209
+
210
+ it "should return the same value as #ntippers" do
211
+ expect(payday.number_of_tippers).to eq(payday.ntippers)
212
+ end
213
+ end
214
+
215
+ describe "#number_of_transfers" do
216
+ it "should return the correct number of transfers" do
217
+ expect(payday.number_of_transfers).to eq(3309)
218
+ end
219
+
220
+ it "should return the same value as #ntransfers" do
221
+ expect(payday.number_of_transfers).to eq(payday.ntransfers)
222
+ end
223
+ end
224
+
225
+ describe "#transfer_volume" do
226
+ it "should respond to #transfer_volume" do
227
+ expect(payday.transfer_volume).to eq(5464.38)
228
+ end
229
+ end
230
+
231
+ describe "#ts_end" do
232
+ it "should return a DateTime object" do
233
+ expect(payday.ts_end.class).to eq(DateTime)
234
+ end
235
+
236
+ it "should have the correct year" do
237
+ expect(payday.ts_end.year).to eq(2013)
238
+ end
239
+
240
+ it "should have the correct month" do
241
+ expect(payday.ts_end.month).to eq(9)
242
+ end
243
+
244
+ it "should have the correct date" do
245
+ expect(payday.ts_end.day).to eq(12)
246
+ end
247
+ end
248
+
249
+ describe "#ts_start" do
250
+ it "should return a DateTime object" do
251
+ expect(payday.ts_start.class).to eq(DateTime)
252
+ end
253
+
254
+ it "should have the correct year" do
255
+ expect(payday.ts_start.year).to eq(2013)
256
+ end
257
+
258
+ it "should have the correct month" do
259
+ expect(payday.ts_start.month).to eq(9)
260
+ end
261
+
262
+ it "should have the correct date" do
263
+ expect(payday.ts_start.day).to eq(12)
264
+ end
265
+ end
266
+
267
+ end # initialization and instance methods
268
+
269
+ end
@@ -8,7 +8,7 @@ describe Gratitude::Profile do
8
8
  Gratitude::Profile.should include(HTTParty)
9
9
  end
10
10
 
11
- it "should have the base url set to the API endpoint" do
11
+ it "should have the base uri set to the API endpoint" do
12
12
  expect(Gratitude::Profile.base_uri).to eq("https://www.gittip.com")
13
13
  end
14
14
 
@@ -16,7 +16,7 @@ describe Gratitude::Profile do
16
16
  expect(Gratitude::Profile::URI_SUFFIX).to eq("/public.json")
17
17
  end
18
18
 
19
- end
19
+ end # default attributes
20
20
 
21
21
  describe "instance methods" do
22
22
 
@@ -32,6 +32,8 @@ describe Gratitude::Profile do
32
32
 
33
33
  let(:complete_profile) { Gratitude::Profile.new("whit537") }
34
34
 
35
+ subject { :complete_profile }
36
+
35
37
  it "should set the correct username" do
36
38
  expect(complete_profile.username).to eq("whit537")
37
39
  end
@@ -44,12 +46,20 @@ describe Gratitude::Profile do
44
46
  it "should return the correct avatar url" do
45
47
  expect(complete_profile.avatar_url).to eq("https://www.gravatar.com/avatar/fb054b407a6461e417ee6b6ae084da37.jpg?s=128")
46
48
  end
49
+
50
+ it "should return the same value as #avatar" do
51
+ expect(complete_profile.avatar_url).to eq(complete_profile.avatar)
52
+ end
47
53
  end
48
54
 
49
55
  describe "#bitbucket_api_url" do
50
56
  it "should return the correct bitbucket api url" do
51
57
  expect(complete_profile.bitbucket_api_url).to eq("https://bitbucket.org/api/1.0/users/whit537")
52
58
  end
59
+
60
+ it "should return the same value as #bitbucket" do
61
+ expect(complete_profile.bitbucket_api_url).to eq(complete_profile.bitbucket)
62
+ end
53
63
  end
54
64
 
55
65
  describe "#bitbucket_username" do
@@ -74,6 +84,10 @@ describe Gratitude::Profile do
74
84
  it "should return the correct github api url" do
75
85
  expect(complete_profile.github_api_url).to eq("https://api.github.com/users/whit537")
76
86
  end
87
+
88
+ it "should return the same value as #github" do
89
+ expect(complete_profile.github_api_url).to eq(complete_profile.github)
90
+ end
77
91
  end
78
92
 
79
93
  describe "#github_username" do
@@ -86,8 +100,12 @@ describe Gratitude::Profile do
86
100
  it "should return the correct twitter api url" do
87
101
  expect(complete_profile.twitter_api_url).to eq("https://api.twitter.com/1.1/users/show.json?id=34175404&include_entities=1")
88
102
  end
103
+
104
+ it "should return the same value as #twitter" do
105
+ expect(complete_profile.twitter_api_url).to eq(complete_profile.twitter)
106
+ end
89
107
  end
90
-
108
+
91
109
  describe "#twitter_username" do
92
110
  it "should return nil" do
93
111
  expect(complete_profile.twitter_username).to be(nil)
@@ -102,6 +120,10 @@ describe Gratitude::Profile do
102
120
  it "should return the correct amount giving" do
103
121
  expect(complete_profile.amount_giving).to eq(101.41)
104
122
  end
123
+
124
+ it "should return the same value as #giving" do
125
+ expect(complete_profile.amount_giving).to eq(complete_profile.giving)
126
+ end
105
127
  end
106
128
 
107
129
  describe "#amount_receiving" do
@@ -112,6 +134,10 @@ describe Gratitude::Profile do
112
134
  it "should return the correct amount amount receiving" do
113
135
  expect(complete_profile.amount_receiving).to eq(434.25)
114
136
  end
137
+
138
+ it "should return the same value as #receiving" do
139
+ expect(complete_profile.amount_receiving).to eq(complete_profile.receiving)
140
+ end
115
141
  end
116
142
 
117
143
  describe "#goal" do
@@ -136,10 +162,10 @@ describe Gratitude::Profile do
136
162
  end
137
163
  end
138
164
 
139
- end
165
+ end # a fully completed profile
140
166
 
141
167
  context "an account that registered through twitter and linked no other accounts" do
142
-
168
+
143
169
  before do
144
170
  VCR.insert_cassette "incomplete_profile"
145
171
  end
@@ -195,7 +221,7 @@ describe Gratitude::Profile do
195
221
  end
196
222
  end
197
223
 
198
- end
224
+ end # an incomplete profile
199
225
 
200
226
  context "a profile that has defined a gittip goal" do
201
227
 
@@ -207,7 +233,6 @@ describe Gratitude::Profile do
207
233
  VCR.eject_cassette
208
234
  end
209
235
 
210
-
211
236
  let(:goal_profile) { Gratitude::Profile.new("johnkellyferguson") }
212
237
 
213
238
  describe "#goal" do
@@ -216,9 +241,8 @@ describe Gratitude::Profile do
216
241
  end
217
242
  end
218
243
 
219
- end
220
-
244
+ end # a profile with a gittip goal
221
245
 
222
- end
246
+ end # instance methods
223
247
 
224
248
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gratitude
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Kelly Ferguson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-15 00:00:00.000000000 Z
11
+ date: 2013-09-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -69,11 +69,14 @@ files:
69
69
  - Rakefile
70
70
  - gratitude.gemspec
71
71
  - lib/gratitude.rb
72
+ - lib/gratitude/payday.rb
72
73
  - lib/gratitude/profile.rb
73
74
  - lib/gratitude/version.rb
74
75
  - spec/cassettes/complete_profile.json
75
76
  - spec/cassettes/goal_profile.json
76
77
  - spec/cassettes/incomplete_profile.json
78
+ - spec/cassettes/paydays.json
79
+ - spec/gratitude/payday_spec.rb
77
80
  - spec/gratitude/profile_spec.rb
78
81
  - spec/gratitude/version_spec.rb
79
82
  - spec/spec_helper.rb
@@ -105,6 +108,8 @@ test_files:
105
108
  - spec/cassettes/complete_profile.json
106
109
  - spec/cassettes/goal_profile.json
107
110
  - spec/cassettes/incomplete_profile.json
111
+ - spec/cassettes/paydays.json
112
+ - spec/gratitude/payday_spec.rb
108
113
  - spec/gratitude/profile_spec.rb
109
114
  - spec/gratitude/version_spec.rb
110
115
  - spec/spec_helper.rb