dash-bees 0.18

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,75 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://backtweets.com:80/search.json?key=4554feeeeeeeeeeeeeee&q=vanity.labnotes.org
6
+ body:
7
+ headers:
8
+ accept:
9
+ - "*/*"
10
+ host:
11
+ - backtweets.com
12
+ response: !ruby/struct:VCR::Response
13
+ status: !ruby/struct:VCR::ResponseStatus
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ content-type:
18
+ - application/json; charset=utf-8
19
+ server:
20
+ - Apache
21
+ date:
22
+ - Sat, 21 Aug 2010 05:31:10 GMT
23
+ content-length:
24
+ - "4427"
25
+ http_version: "1.1"
26
+ body: |-
27
+ { "totalresults": "2",
28
+ "startindex": 1,
29
+ "itemsperpage": 3,
30
+ "tweets": [
31
+ { "tweet_id": "20959239143",
32
+ "tweet_from_user_id": 1501751,
33
+ "tweet_from_user": "dude",
34
+ "tweet_profile_image_url": "http://a0.twimg.com/profile_images/305156692/ls_3001_author30_normal.jpg",
35
+ "tweet_created_at": "2010-08-12 08:30:04",
36
+ "tweet_text": "Super awesome <a href=\"http://vanity.labnotes.org/\">http://j.mp/aOrUnsz</a>" }
37
+ ]
38
+ }
39
+ - !ruby/struct:VCR::HTTPInteraction
40
+ request: !ruby/struct:VCR::Request
41
+ method: :get
42
+ uri: http://backtweets.com:80/search.json?key=4554feeeeeeeeeeeeeee&q=vanity.labnotes.org
43
+ body:
44
+ response: !ruby/struct:VCR::Response
45
+ status: !ruby/struct:VCR::ResponseStatus
46
+ code: 200
47
+ message: OK
48
+ headers:
49
+ content-type:
50
+ - application/json; charset=utf-8
51
+ body: |-
52
+ { "totalresults": "13",
53
+ "startindex": 1,
54
+ "itemsperpage": 3,
55
+ "tweets": [
56
+ { "tweet_id": "20959239300",
57
+ "tweet_from_user_id": 2367111,
58
+ "tweet_from_user": "assaf",
59
+ "tweet_profile_image_url": "http://twitter.com/account/profile_image/assaf",
60
+ "tweet_created_at": "2010-08-22 05:00:04",
61
+ "tweet_text": "The last of its kind" },
62
+ { "tweet_id": "20959239200",
63
+ "tweet_from_user_id": 2367111,
64
+ "tweet_from_user": "assaf",
65
+ "tweet_profile_image_url": "http://twitter.com/account/profile_image/assaf",
66
+ "tweet_created_at": "2010-08-22 05:00:01",
67
+ "tweet_text": "Not as awesome" },
68
+ { "tweet_id": "20959239143",
69
+ "tweet_from_user_id": 1501751,
70
+ "tweet_from_user": "dude",
71
+ "tweet_profile_image_url": "http://a0.twimg.com/profile_images/305156692/ls_3001_author30_normal.jpg",
72
+ "tweet_created_at": "2010-08-12 08:30:04",
73
+ "tweet_text": "Super awesome <a href=\"http://vanity.labnotes.org/\">http://j.mp/aOrUnsz</a>" }
74
+ ]
75
+ }
@@ -0,0 +1,126 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: https://github.com:443/api/v2/json/repos/show/assaf/vanity
6
+ body:
7
+ headers:
8
+ accept:
9
+ - "*/*"
10
+ host:
11
+ - github.com
12
+ response: !ruby/struct:VCR::Response
13
+ status: !ruby/struct:VCR::ResponseStatus
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ etag:
18
+ - "\"b2dd080275a47b78eb85d03518581862\""
19
+ content-type:
20
+ - application/json; charset=utf-8
21
+ connection:
22
+ - keep-alive
23
+ server:
24
+ - nginx/0.7.67
25
+ date:
26
+ - Tue, 24 Aug 2010 03:05:04 GMT
27
+ x-runtime:
28
+ - 17ms
29
+ content-length:
30
+ - "404"
31
+ set-cookie:
32
+ - _github_ses=BAh7BzoRbG9jYWxlX2d1ZXNzMCIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7AA%3D%3D--e10506e0f6935897cafe4f56774e20aa35e579a5; path=/; expires=Wed, 01 Jan 2020 08:00:00 GMT; HttpOnly
33
+ status:
34
+ - 200 OK
35
+ cache-control:
36
+ - private, max-age=0, must-revalidate
37
+ body: "{\"repository\":{\"description\":\"Experiment Driven Development for Ruby\",\"has_downloads\":true,\"watchers\":534,\"pledgie\":8178,\"homepage\":\"http://vanity.labnotes.org\",\"fork\":false,\"pushed_at\":\"2010/08/06 00:18:14 -0700\",\"has_wiki\":true,\"url\":\"http://github.com/assaf/vanity\",\"private\":false,\"open_issues\":9,\"name\":\"vanity\",\"owner\":\"assaf\",\"has_issues\":true,\"created_at\":\"2009/11/03 21:51:35 -0800\",\"forks\":36}}"
38
+ http_version: "1.1"
39
+ - !ruby/struct:VCR::HTTPInteraction
40
+ request: !ruby/struct:VCR::Request
41
+ method: :get
42
+ uri: https://github.com:443/api/v2/json/commits/list/assaf/vanity/master
43
+ body:
44
+ headers:
45
+ accept:
46
+ - "*/*"
47
+ host:
48
+ - github.com
49
+ response: !ruby/struct:VCR::Response
50
+ status: !ruby/struct:VCR::ResponseStatus
51
+ code: 200
52
+ message: OK
53
+ headers:
54
+ etag:
55
+ - "\"2e163afdf89a2aba31b5b3f38fd80d68\""
56
+ content-type:
57
+ - application/json; charset=utf-8
58
+ connection:
59
+ - keep-alive
60
+ server:
61
+ - nginx/0.7.67
62
+ date:
63
+ - Tue, 24 Aug 2010 03:05:12 GMT
64
+ x-runtime:
65
+ - 49ms
66
+ content-length:
67
+ - "22367"
68
+ set-cookie:
69
+ - _github_ses=BAh7BzoRbG9jYWxlX2d1ZXNzMCIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7AA%3D%3D--e10506e0f6935897cafe4f56774e20aa35e579a5; path=/; expires=Wed, 01 Jan 2020 08:00:00 GMT; HttpOnly
70
+ status:
71
+ - 200 OK
72
+ cache-control:
73
+ - private, max-age=0, must-revalidate
74
+ body: "{\"commits\":[{\"parents\":[{\"id\":\"a8b06d1fcface41e1a339ff9555f39db30027105\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/dd154a9fdd2ac534b62b55b8acac2fd092d6543a\",\"id\":\"dd154a9fdd2ac534b62b55b8acac2fd092d6543a\",\"committed_date\":\"2010-08-06T00:18:01-07:00\",\"authored_date\":\"2010-08-06T00:18:01-07:00\",\"message\":\"Gemfile changes necessary to pass test suite.\",\"tree\":\"895c6473ed62bfd4091da3d558b788d2a17a5315\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"00b2692ac0f3a09c38c5ea9670ef75b41c47d202\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/a8b06d1fcface41e1a339ff9555f39db30027105\",\"id\":\"a8b06d1fcface41e1a339ff9555f39db30027105\",\"committed_date\":\"2010-08-06T00:04:39-07:00\",\"authored_date\":\"2010-08-06T00:04:39-07:00\",\"message\":\"Beta becomes official 1.4.\",\"tree\":\"17da653983bcbada734631a8e96e009af391ef1d\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"d059363e6e44bc05e59cc5e74889f65b8dd9ec84\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/00b2692ac0f3a09c38c5ea9670ef75b41c47d202\",\"id\":\"00b2692ac0f3a09c38c5ea9670ef75b41c47d202\",\"committed_date\":\"2010-07-27T22:54:52-07:00\",\"authored_date\":\"2010-07-27T22:54:52-07:00\",\"message\":\"Typographical cleanup on site and PDF.\\nImproved text in configuring section.\\nAdded \\\"How to contribute\\\" list.\\nAdded experimental page for experimental features.\",\"tree\":\"94aa6c67740384b22e8a5188a5174c4d848d3cc7\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"10b1523d049040b9e45f9d851c556ad35c047493\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/d059363e6e44bc05e59cc5e74889f65b8dd9ec84\",\"id\":\"d059363e6e44bc05e59cc5e74889f65b8dd9ec84\",\"committed_date\":\"2010-07-27T16:44:13-07:00\",\"authored_date\":\"2010-07-27T16:27:32-07:00\",\"message\":\"Generating PDF for documentation.\",\"tree\":\"44c61094ea28103909620c1ba3feac3b22830649\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"e20e9cac1759c065f6e8f62c2ef9e040da214069\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/10b1523d049040b9e45f9d851c556ad35c047493\",\"id\":\"10b1523d049040b9e45f9d851c556ad35c047493\",\"committed_date\":\"2010-07-27T10:03:42-07:00\",\"authored_date\":\"2010-07-08T10:10:17-07:00\",\"message\":\"Remote metrics: use Web API to push/retrieve metrics on remote host.\\n\\nInitial support for multi-value metrics.\\n\\n* Added: Vanity.playground.collecting. You want this to be true only in\\nproduction environment. When false, disables collecting of metric and\\nexperiment data.\\n* Added: Metric.last_update_at.\\n* Removed: Metric.created_at, derived from experiment and never used.\\n\\nFixed MongoDB flushdb to drop collections.\\n\\n.rvmrc no longer setups Ruby/creates gemset.\\n\\nApparently on Linux, Passenger uses UNIX sockets, where on OS X it\\nuses TCP.\",\"tree\":\"ef5cef85aa1bef3f651de578b3c6340b18d4c071\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"842d1fc3dd944ddbb5e80f63783ea2c0b7078104\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/e20e9cac1759c065f6e8f62c2ef9e040da214069\",\"id\":\"e20e9cac1759c065f6e8f62c2ef9e040da214069\",\"committed_date\":\"2010-07-10T00:55:15-07:00\",\"authored_date\":\"2010-07-10T00:55:15-07:00\",\"message\":\"Seeing problems with Timecop.travel on 1.9.2-rc1, using\\nTimecop.freeze instead.\",\"tree\":\"c740cbfdbc1a17cb6111d26bd4d08e8d2023caba\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"9720ae6a5ff66daae0ce1ddd468f787519cdfce9\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/842d1fc3dd944ddbb5e80f63783ea2c0b7078104\",\"id\":\"842d1fc3dd944ddbb5e80f63783ea2c0b7078104\",\"committed_date\":\"2010-07-09T20:14:36-07:00\",\"authored_date\":\"2010-07-09T20:14:36-07:00\",\"message\":\"Apparently on Linux, Passenger uses UNIX sockets, where on OS X it\\nuses TCP.\",\"tree\":\"82a4939ddd856c19a82554f835eb3416b463dc94\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"f0deef91df9b25c95cbaac72a9a5142199dd0311\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/9720ae6a5ff66daae0ce1ddd468f787519cdfce9\",\"id\":\"9720ae6a5ff66daae0ce1ddd468f787519cdfce9\",\"committed_date\":\"2010-07-08T00:38:02-07:00\",\"authored_date\":\"2010-07-08T00:37:45-07:00\",\"message\":\"Minimal RDocs for adapters that only serve to indicate no good will\\ncome out of digging into lightly documented code.\",\"tree\":\"4c842a5b0617436a215147953edf0b38e4c17875\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"cbcd67c2bdd25f89403541610acb3e8d613f462a\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/f0deef91df9b25c95cbaac72a9a5142199dd0311\",\"id\":\"f0deef91df9b25c95cbaac72a9a5142199dd0311\",\"committed_date\":\"2010-07-07T21:26:31-07:00\",\"authored_date\":\"2010-07-07T21:26:31-07:00\",\"message\":\"Updated documentation to mention MongoDB.\",\"tree\":\"5ae5f41d92def82fdfccffa60267b8a691090742\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"ef6dc4b86a4021fdf833901670df6b01d618f007\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/cbcd67c2bdd25f89403541610acb3e8d613f462a\",\"id\":\"cbcd67c2bdd25f89403541610acb3e8d613f462a\",\"committed_date\":\"2010-07-07T21:21:39-07:00\",\"authored_date\":\"2010-07-07T09:51:38-07:00\",\"message\":\"Lo and behold, MongoDB adapter just showed up!\",\"tree\":\"a4be00725d98f9bf6b241f269e59768a2bc5e188\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"5ed70eb8c48c97b8dc6c8479de27f675fe95afbe\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/ef6dc4b86a4021fdf833901670df6b01d618f007\",\"id\":\"ef6dc4b86a4021fdf833901670df6b01d618f007\",\"committed_date\":\"2010-07-01T23:47:05-07:00\",\"authored_date\":\"2010-07-01T23:47:05-07:00\",\"message\":\"Fixed a few places that had redis:/ instead of redis://.\",\"tree\":\"2f319479a8de6eb6118f7e977544db51a44f23c1\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"d54b33e1f3422c07c10b14084e8046a2f49e4f4c\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/5ed70eb8c48c97b8dc6c8479de27f675fe95afbe\",\"id\":\"5ed70eb8c48c97b8dc6c8479de27f675fe95afbe\",\"committed_date\":\"2010-06-30T18:16:24-07:00\",\"authored_date\":\"2010-06-30T18:08:41-07:00\",\"message\":\"Added upgrade command. When upgrading to 1.4 (or even head, from now on), please run:\\n vanity upgrade\\n\\nUsing Redis namespace and all Vanity objects are now in the vanity: namespace.\",\"tree\":\"549306326685f5d89875b7930577e354f2273e42\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"10d4a513b6e22c447c2ff0bfaca23317c4325837\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/d54b33e1f3422c07c10b14084e8046a2f49e4f4c\",\"id\":\"d54b33e1f3422c07c10b14084e8046a2f49e4f4c\",\"committed_date\":\"2010-06-30T14:51:32-07:00\",\"authored_date\":\"2010-06-30T14:51:32-07:00\",\"message\":\"Updated documentation to cover how to run against all or particular\\nRuby implementation, all or particular adapter.\",\"tree\":\"7185bdeab4e01f9ee06c2f0d6e71493347264678\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"7fb90e879caadfb1ec53c5c36d6c4b1e6bd64ef3\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/10d4a513b6e22c447c2ff0bfaca23317c4325837\",\"id\":\"10d4a513b6e22c447c2ff0bfaca23317c4325837\",\"committed_date\":\"2010-06-30T14:25:20-07:00\",\"authored_date\":\"2010-06-30T09:30:26-07:00\",\"message\":\"New adapter API. Metrics and experiments now use this API instead of\\naccessing Redis directly, so it won't be too hard to add a MongoDB\\nor MySQL adapter.\",\"tree\":\"314909aeb3f15e224c8c5af1d4322e0ed910963e\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"e52bd1acff03b2ac5e3abfbc11e3f5ed6b92fc17\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/7fb90e879caadfb1ec53c5c36d6c4b1e6bd64ef3\",\"id\":\"7fb90e879caadfb1ec53c5c36d6c4b1e6bd64ef3\",\"committed_date\":\"2010-06-27T13:20:42-07:00\",\"authored_date\":\"2010-06-27T13:20:42-07:00\",\"message\":\"Clarify that default connection configuration uses Vanity.\\nOnly load Redis gem if using Redis adapter.\",\"tree\":\"906e4384e6df1245880a8fce16fde134e6e4a3e7\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"2b124d58b5a421dec9a537dece7a9834b16a7b55\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/e52bd1acff03b2ac5e3abfbc11e3f5ed6b92fc17\",\"id\":\"e52bd1acff03b2ac5e3abfbc11e3f5ed6b92fc17\",\"committed_date\":\"2010-06-27T12:47:46-07:00\",\"authored_date\":\"2010-06-27T12:39:48-07:00\",\"message\":\"Connection adapters! We have a new way for managing connections which extends\\nto multiple adapters (not just Redis). The easiest is to use the configuration\\nfile config/vanity.yml. For example:\\n\\n development:\\n adapter: redis\\n test:\\n adapter: mock\\n heroku:\\n adapter: activerecord\",\"tree\":\"263823bf9bc1839ff8c31b78cbfa4d641b76c64a\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"d6308dfc36e26ea0c2a20868f8dfc205667c13a0\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/2b124d58b5a421dec9a537dece7a9834b16a7b55\",\"id\":\"2b124d58b5a421dec9a537dece7a9834b16a7b55\",\"committed_date\":\"2010-06-23T09:39:54-07:00\",\"authored_date\":\"2010-06-23T09:39:54-07:00\",\"message\":\"Now using RVM, gemsets and Bundler to test Vanity in different configurations.\\nTo run the full set of tests in all the supported versions of Ruby:\\n rake test:rubies\\nTo test specific version of Ruby:\\n rake test:rubies[1.8.7]\\nTo switch around:\\n rvm 1.9.2@vanity\",\"tree\":\"3818a90b485fb12a9394aaef94559dadf37b64ae\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"2363514ce108008e500dc945bc6daca3dcdb40ad\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/d6308dfc36e26ea0c2a20868f8dfc205667c13a0\",\"id\":\"d6308dfc36e26ea0c2a20868f8dfc205667c13a0\",\"committed_date\":\"2010-06-21T00:18:43-07:00\",\"authored_date\":\"2010-06-21T00:18:43-07:00\",\"message\":\"This release switches from a pre-2.0 version of the Redis gem that was bundled\\nwith Vanity, to a 2.0.x version of the Redis gem used as a dependency. If your\\ncode uses the Redis gem directly, watch out for subtle incompatibility bugs.\",\"tree\":\"e54c538c35c9454e618e15cc135b62ab7dda21f6\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"1a1a840e7ffaf46cf684b76baa4ed8b92d7251eb\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/2363514ce108008e500dc945bc6daca3dcdb40ad\",\"id\":\"2363514ce108008e500dc945bc6daca3dcdb40ad\",\"committed_date\":\"2010-06-20T12:13:55-07:00\",\"authored_date\":\"2010-06-20T12:13:55-07:00\",\"message\":\"Added rake test:rubies for testing with multiple versions of Ruby (requires RVM).\",\"tree\":\"e706c73ede34f48a5e5e05c26034b3ce9b07fde2\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"854b6f88fccad807f6c317c43bb7327004d491e9\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/1a1a840e7ffaf46cf684b76baa4ed8b92d7251eb\",\"id\":\"1a1a840e7ffaf46cf684b76baa4ed8b92d7251eb\",\"committed_date\":\"2010-06-04T13:24:25-07:00\",\"authored_date\":\"2010-06-04T13:22:40-07:00\",\"message\":\"Issue 14: if you've got a File, just call unlink on it.\",\"tree\":\"fd4ad17252de42e5730ed4985e82de06744d9e0a\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"c289ea4a7362ce4203fd1455b2b9620961be3b38\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/854b6f88fccad807f6c317c43bb7327004d491e9\",\"id\":\"854b6f88fccad807f6c317c43bb7327004d491e9\",\"committed_date\":\"2010-03-17T18:53:34-07:00\",\"authored_date\":\"2010-03-17T18:53:34-07:00\",\"message\":\"Another typo fix, btw check out emend, cool way to make corrections on other people's sites:\\nhttp://www.emendapp.com/sites/vanity.labnotes.org/edits/0\",\"tree\":\"a0ddf6f190fd63662559837fc68a05ceccfb9825\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"48ef4364006dca4781bcfd833d7266701c8d303f\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/c289ea4a7362ce4203fd1455b2b9620961be3b38\",\"id\":\"c289ea4a7362ce4203fd1455b2b9620961be3b38\",\"committed_date\":\"2010-03-17T12:56:15-07:00\",\"authored_date\":\"2010-03-17T12:56:15-07:00\",\"message\":\"Fix: documentation had broken links to dashboard (now part of Rails page).\",\"tree\":\"984e40022fdd16eb1795f23da5bd10af3e0f09bd\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"6f0ad3cb107c332fa833ec58ac9d29d7508ebd80\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/48ef4364006dca4781bcfd833d7266701c8d303f\",\"id\":\"48ef4364006dca4781bcfd833d7266701c8d303f\",\"committed_date\":\"2010-03-01T19:49:55-08:00\",\"authored_date\":\"2010-03-01T19:49:55-08:00\",\"message\":\"Added ToC on various pages\",\"tree\":\"33214b89f7af057cbaf5537e9c8b92646e111069\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"a93b9960cfa9968472920927cab2fc2fb7ce4590\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/6f0ad3cb107c332fa833ec58ac9d29d7508ebd80\",\"id\":\"6f0ad3cb107c332fa833ec58ac9d29d7508ebd80\",\"committed_date\":\"2010-03-01T19:14:18-08:00\",\"authored_date\":\"2010-03-01T19:14:18-08:00\",\"message\":\"Added test cases for Google Analytics methods (and in the process found and fixed a bug).\",\"tree\":\"f0e5a17447a08ace8004db14df9c9e6864d042d5\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"6c6455a4e85b7fe37be1e7eca215cf2eeeadc5f4\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/a93b9960cfa9968472920927cab2fc2fb7ce4590\",\"id\":\"a93b9960cfa9968472920927cab2fc2fb7ce4590\",\"committed_date\":\"2010-03-01T18:11:53-08:00\",\"authored_date\":\"2010-03-01T18:11:53-08:00\",\"message\":\"Added documentation for using Google Analytics metrics.\\nAdded report method to GA metric, for accessing Garb report object.\",\"tree\":\"03f23789cd1b0a52f152ea16a95d41ce283006b2\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"d90ed4f86f8d14d4351598f1225b6682afeaa1b1\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/6c6455a4e85b7fe37be1e7eca215cf2eeeadc5f4\",\"id\":\"6c6455a4e85b7fe37be1e7eca215cf2eeeadc5f4\",\"committed_date\":\"2010-02-24T16:15:08-08:00\",\"authored_date\":\"2010-02-24T16:15:08-08:00\",\"message\":\"Minor styling tweaks\",\"tree\":\"eda28a02bffc183820f0b378104bfda95548cf4d\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"9689f86a9783189d3b0cfed27895ff560e24ab6f\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/d90ed4f86f8d14d4351598f1225b6682afeaa1b1\",\"id\":\"d90ed4f86f8d14d4351598f1225b6682afeaa1b1\",\"committed_date\":\"2010-02-24T15:11:27-08:00\",\"authored_date\":\"2010-02-24T15:11:27-08:00\",\"message\":\"Added instructions for running under Unicorn\",\"tree\":\"cca48360a0f36e975d93bc69818f2395ef645b3a\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"a6d3cb2d0aed4e7f18c717a0ce64cb127418a52d\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/9689f86a9783189d3b0cfed27895ff560e24ab6f\",\"id\":\"9689f86a9783189d3b0cfed27895ff560e24ab6f\",\"committed_date\":\"2010-02-24T14:38:50-08:00\",\"authored_date\":\"2010-02-24T14:38:50-08:00\",\"message\":\"Changed: streamlined options for vanity command.\\nFixed: couple of bugs when generating reports offline (using vanity report command).\\nFixed documentation/README for initializing and using the vanity report command.\\nFixed documentation/README for using Bundler to handle development dependencies.\",\"tree\":\"05c80d7da1fa29e3ee99cdc189bee173e9d3802f\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"35252e778d797aeb241c8e5ea18cd3c516d380b6\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/a6d3cb2d0aed4e7f18c717a0ce64cb127418a52d\",\"id\":\"a6d3cb2d0aed4e7f18c717a0ce64cb127418a52d\",\"committed_date\":\"2010-02-24T14:25:15-08:00\",\"authored_date\":\"2010-02-24T14:23:50-08:00\",\"message\":\"Another fix, and revised documentation to (more likely to work) configuration.\",\"tree\":\"90ffeb35272b9b84d9f4ba84795a6d3a27b969f5\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"fb449beba7a2d77d58396f35b90bb11212406792\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/35252e778d797aeb241c8e5ea18cd3c516d380b6\",\"id\":\"35252e778d797aeb241c8e5ea18cd3c516d380b6\",\"committed_date\":\"2010-02-24T13:56:44-08:00\",\"authored_date\":\"2010-02-24T13:56:44-08:00\",\"message\":\"Fix to lazy loading Garb.\",\"tree\":\"72baf9b07ca72feacffbaf3bdf575dbf7b809fbd\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"4fa9f88e41b9b7ee049864c9bb93835777549973\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/fb449beba7a2d77d58396f35b90bb11212406792\",\"id\":\"fb449beba7a2d77d58396f35b90bb11212406792\",\"committed_date\":\"2010-02-24T13:48:37-08:00\",\"authored_date\":\"2010-02-24T13:48:37-08:00\",\"message\":\"Added: Vanity loads Redis configuration from config/redis.yml (if you have such a file).\\nAdded Playground.connected? method, renamed Playground.mock! to Playground.test!.\\n\\nDocumentation updates:\\n Added documentation section specifically for Rails.\\n Moved dashboard documentation there.\\n Revised configuration section, up to date for Vanity 1.3.0.\",\"tree\":\"b46b0a8f8724f001cede2f7e4866423a89dee454\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"d1a49ce44dbe88f7f1dbe2d2b4d41ca36ed1c690\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/4fa9f88e41b9b7ee049864c9bb93835777549973\",\"id\":\"4fa9f88e41b9b7ee049864c9bb93835777549973\",\"committed_date\":\"2010-02-24T11:51:43-08:00\",\"authored_date\":\"2010-02-24T11:51:43-08:00\",\"message\":\"Fixed: Running vanity command, automatically detects and loads Rails.\\nFixed: Vanity now picks up on load_path set from within config/environment.rb.\",\"tree\":\"5a6c783dbec2bab6f87d17c9bd9ee2fe6254d3e0\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"35d852a55d2835c665127eb8f52277ad6f5352c0\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/d1a49ce44dbe88f7f1dbe2d2b4d41ca36ed1c690\",\"id\":\"d1a49ce44dbe88f7f1dbe2d2b4d41ca36ed1c690\",\"committed_date\":\"2010-02-22T17:01:33-08:00\",\"authored_date\":\"2010-02-22T17:01:33-08:00\",\"message\":\"Fix: dashboard renders with template option, otherwise Rails, not always happy.\",\"tree\":\"76a1b4266d3e8df2c8ca5b8fd51deb8348dee80f\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"ee80119b008cbaed26de874d108920a9eb73b998\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/35d852a55d2835c665127eb8f52277ad6f5352c0\",\"id\":\"35d852a55d2835c665127eb8f52277ad6f5352c0\",\"committed_date\":\"2010-02-22T15:12:49-08:00\",\"authored_date\":\"2010-02-22T15:12:49-08:00\",\"message\":\"Rails integration code moved to lib/vanity/frameworks/rails.\\nYes, more frameworks should and will be supported.\\nAlso, fixed bug that did not allow changing load_path under Rails (see Github issue #4)\",\"tree\":\"330fc20cc453ee1a01b606f6c254039ad131072f\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}},{\"parents\":[{\"id\":\"ae9a208569d59b5a1b852e10e745efb6570b867d\"}],\"author\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"},\"url\":\"http://github.com/assaf/vanity/commit/ee80119b008cbaed26de874d108920a9eb73b998\",\"id\":\"ee80119b008cbaed26de874d108920a9eb73b998\",\"committed_date\":\"2010-02-22T12:33:10-08:00\",\"authored_date\":\"2010-02-22T12:33:10-08:00\",\"message\":\"To specify connection, use Vanity.playground.redis = \\\"localhost:6379\\\". The host/port/db attributes are deprecated.\",\"tree\":\"c1fc42dce86a35a13eef8ba02d0ccd2357bc9dcf\",\"committer\":{\"name\":\"Assaf Arkin\",\"login\":\"assaf\",\"email\":\"assaf@labnotes.org\"}}]}"
75
+ http_version: "1.1"
76
+ - !ruby/struct:VCR::HTTPInteraction
77
+ request: !ruby/struct:VCR::Request
78
+ method: :get
79
+ uri: https://github.com:443/api/v2/json/repos/show/assaf/vanity
80
+ response: !ruby/struct:VCR::Response
81
+ status: !ruby/struct:VCR::ResponseStatus
82
+ code: 200
83
+ message: OK
84
+ headers:
85
+ body: |-
86
+ { "repository": {
87
+ "watchers": 555,
88
+ "forks": 38 } }
89
+ http_version: "1.1"
90
+ - !ruby/struct:VCR::HTTPInteraction
91
+ request: !ruby/struct:VCR::Request
92
+ method: :get
93
+ uri: https://github.com:443/api/v2/json/commits/list/assaf/vanity/master
94
+ response: !ruby/struct:VCR::Response
95
+ status: !ruby/struct:VCR::ResponseStatus
96
+ code: 200
97
+ message: OK
98
+ headers:
99
+ etag:hub_ses=BAh7BzoRbG9jYWxlX2d1ZXNzMCIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7AA%3D%3D--e10506e0f6935897cafe4f56774e20aa35e579a5; path=/; expires=Wed, 01 Jan 2020 08:00:00 GMT; HttpOnly
100
+ status:
101
+ - 200 OK
102
+ body: |-
103
+ { "commits": [
104
+ { "url": "http://github.com/assaf/vanity/commit/dd154a9fdd2ac534b62b55b8acac2fd092d65439",
105
+ "id": "cc156a9fdd2ac534b62b55b8acac2fd092d65439",
106
+ "committed_date": "2010-08-06T00:22:01-07:00",
107
+ "message": "Most recent commit",
108
+ "committer": { "name": "Assaf Arkin", "login": "assaf", "email": "assaf@labnotes.org" } },
109
+ { "url": "http://github.com/assaf/vanity/commit/dd154a9fdd2ac534b62b55b8acac2fd092d6543b",
110
+ "id": "dd156a9fdd2ac534b62b55b8acac2fd092d6543b",
111
+ "committed_date": "2010-08-06T00:21:01-07:00",
112
+ "message": "Not most recent commit",
113
+ "committer": { "name": "Assaf Arkin", "login": "assaf", "email": "assaf@labnotes.org" } },
114
+ { "url": "http://github.com/assaf/vanity/commit/dd154a9fdd2ac534b62b55b8acac2fd092d6543a",
115
+ "id": "ee156a9fdd2ac534b62b55b8acac2fd092d6543a",
116
+ "committed_date": "2010-08-06T00:20:01-07:00",
117
+ "message": "Context change",
118
+ "committer": { "name": "Assaf Arkin", "login": "assaf", "email": "not.assaf@labnotes.org" } },
119
+ { "url": "http://github.com/assaf/vanity/commit/dd154a9fdd2ac534b62b55b8acac2fd092d6543a",
120
+ "id": "ff156a9fdd2ac534b62b55b8acac2fd092d6543a",
121
+ "committed_date": "2010-08-06T00:15:01-07:00",
122
+ "message": "Separate activity",
123
+ "committer": { "name": "Assaf Arkin", "login": "assaf", "email": "assaf@labnotes.org" } }
124
+ ]
125
+ }
126
+
@@ -0,0 +1,123 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: https://github.com:443/api/v2/json/issues/list/assaf/vanity/open
6
+ body:
7
+ headers:
8
+ accept:
9
+ - "*/*"
10
+ host:
11
+ - github.com
12
+ response: !ruby/struct:VCR::Response
13
+ status: !ruby/struct:VCR::ResponseStatus
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ etag:
18
+ - "\"25d629fac5db7676318f64921e6b29e1\""
19
+ connection:
20
+ - keep-alive
21
+ content-type:
22
+ - application/json; charset=utf-8
23
+ x-runtime:
24
+ - 37ms
25
+ date:
26
+ - Tue, 24 Aug 2010 07:11:43 GMT
27
+ server:
28
+ - nginx/0.7.67
29
+ content-length:
30
+ - "9176"
31
+ set-cookie:
32
+ - _github_ses=BAh7BzoRbG9jYWxlX2d1ZXNzMCIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7AA%3D%3D--e10506e0f6935897cafe4f56774e20aa35e579a5; path=/; expires=Wed, 01 Jan 2020 08:00:00 GMT; HttpOnly
33
+ cache-control:
34
+ - private, max-age=0, must-revalidate
35
+ status:
36
+ - 200 OK
37
+ body: "{\"issues\":[{\"gravatar_id\":\"452dab20da70c8b3a8f19be0df3ceae5\",\"position\":5.0,\"number\":7,\"votes\":0,\"created_at\":\"2010/03/17 11:32:02 -0700\",\"comments\":1,\"body\":\"It would be great to be able to run experiments in Vanity based on metrics from google analytics. It would be a little messier than the current A/B tests as it would probably have to depend on using analytics' _setCustomVar() in the view. Is this something you'd consider or accept as a patch?\",\"title\":\"Option to use Google Analytics for A/B testing\",\"updated_at\":\"2010/03/17 12:59:56 -0700\",\"closed_at\":null,\"user\":\"dougcole\",\"labels\":[],\"state\":\"open\"},{\"gravatar_id\":\"a3df9dcb16a01bf651203016e0ee6d11\",\"position\":7.0,\"number\":9,\"votes\":0,\"created_at\":\"2010/03/19 11:58:20 -0700\",\"comments\":0,\"body\":\"Hi,\\r\\n\\r\\nIn my Rails application I `rescue_from` the various `:not_found` errors (`ActiveRecord::RecordNotFound`, `ActionController::RoutingError`, etc.) to render a template. That looks roughly like this:\\r\\n rescue_from ActiveRecord::RecordNotFound do\\r\\n render :template => \\\"pages/404\\\", :layout => 'application', :status => 404\\r\\n end\\r\\nNow that I've installed Vanity, when I go to a page that returns a 404, I get an error: `ActionView::TemplateError (No Vanity.context)`. It seems like the `vanity_context_filter` doesn't get run for these 404 pages, and then the `ab_test` call that's in my application layout causes this error. Here's the backtrace:\\r\\n\\r\\n ActionView::TemplateError (No Vanity.context) on line #50 of app/views/layouts/application.html.haml:\\r\\n 47: \\r\\n 48: .sidebar_item.nav\\r\\n 49: = link_to \\\"Add a FAIL\\\", new_fail_path, {:class => 'add_a_fail'}\\r\\n 50: %ul{:class => ab_test(:signup_text_size)}\\r\\n 51: -if current_user\\r\\n 52: %li\\r\\n 53: = link_to \\\"Your Account\\\", account_path\\r\\n \\r\\n vanity (1.3.0) lib/vanity/experiment/base.rb:180:in `default_identify'\\r\\n vanity (1.3.0) lib/vanity/experiment/base.rb:176:in `call'\\r\\n vanity (1.3.0) lib/vanity/experiment/base.rb:176:in `identity'\\r\\n vanity (1.3.0) lib/vanity/experiment/ab_test.rb:190:in `choose'\\r\\n vanity (1.3.0) lib/vanity/frameworks/rails.rb:132:in `ab_test'\\r\\n app/views/layouts/application.html.haml:50:in `_run_haml_app47views47layouts47application46html46haml'\\r\\n haml (2.2.16) lib/haml/helpers/action_view_mods.rb:13:in `render'\\r\\n haml (2.2.16) lib/haml/helpers/action_view_mods.rb:13:in `render'\\r\\n app/controllers/application_controller.rb:13:in `__bind_1269023699_679185'\\r\\n haml (2.2.16) rails/./lib/sass/plugin/rails.rb:19:in `process'\\r\\n\\r\\nIs my suspicion of what's happening here accurate? What might be causing this? How can I work around this?\\r\\n\\r\\nThanks,\\r\\nAlex\",\"title\":\"Error when rescuing from errors\",\"updated_at\":\"2010/03/19 11:58:20 -0700\",\"closed_at\":null,\"user\":\"akahn\",\"labels\":[],\"state\":\"open\"},{\"gravatar_id\":\"a3df9dcb16a01bf651203016e0ee6d11\",\"position\":8.0,\"number\":10,\"votes\":4,\"created_at\":\"2010/03/23 06:48:23 -0700\",\"comments\":4,\"body\":\"Hi,\\r\\n\\r\\nI'm having an issue where Vanity is successfully tracking a metric, but not giving me numbers for the alternatives. [This screenshot shows the problem.](http://img.skitch.com/20100323-r5nrr584yuxn3w433ss72a9jhm.png) Out of 1,245 participants, 0.0% for each alternative. But I know that people have signed up. 16, in fact. Looking at my data in Redis, `vanity:1:signup_text_size:alts:0:conversions` is 10 and `vanity:1:signup_text_size:alts:1:conversions` is 6.\\r\\n\\r\\nHere's my a/b test:\\r\\n ab_test \\\"Signup text size\\\" do\\r\\n description \\\"Does increasing the size of the signup text increase signups\\\"\\r\\n alternatives \\\"big\\\", \\\"normal\\\"\\r\\n metrics :signup\\r\\n end\\r\\n\\r\\nHere's the metric:\\r\\n metric \\\"Signup\\\" do\\r\\n description \\\"Measures how many people signed up\\\"\\r\\n end\\r\\n\\r\\nHere's `UsersController#create`:\\r\\n def create\\r\\n @user = User.new(params[:user])\\r\\n if @user.save\\r\\n track! :signup\\r\\n flash[:message] = \\\"Thank you for signing up! You are now logged in.\\\"\\r\\n redirect_back_or_default account_url\\r\\n else\\r\\n render :action => :new\\r\\n end\\r\\n end\\r\\n\\r\\nAnd then in the layout template I have:\\r\\n %ul{:class => ab_test(:signup_text_size)}\\r\\n\\r\\nAny idea what I'm doing wrong here? I can verify that folks are seeing each alternative. Vanity is clearly tracking the metric. Why is there no percentage for each alternative?\\r\\n\\r\\nThanks,\\r\\nAlex\",\"title\":\"A/B test is not tracking alternatives\",\"updated_at\":\"2010/06/04 12:53:11 -0700\",\"closed_at\":null,\"user\":\"akahn\",\"labels\":[],\"state\":\"open\"},{\"gravatar_id\":\"a17f0025641b4be419a6cd3845e55dd2\",\"position\":9.0,\"number\":11,\"votes\":6,\"created_at\":\"2010/03/24 16:07:08 -0700\",\"comments\":0,\"body\":\"Would be nice if the plugin continued to silently work if the redis server is down -- yes, the data may not get logged, but it should not bring down the entire site. In other words, same behavior as default cache logic in Rails. If the memcached is down, it'll complain in the logs and serve everything without cache, but it continues to render the pages.\",\"title\":\"Graceful operation if redis is down?\",\"updated_at\":\"2010/07/09 13:42:15 -0700\",\"closed_at\":null,\"user\":\"igrigorik\",\"labels\":[],\"state\":\"open\"},{\"gravatar_id\":\"a9e5ce6f28587baa2a566eb4f2d76c13\",\"position\":10.0,\"number\":12,\"votes\":1,\"created_at\":\"2010/03/25 00:51:24 -0700\",\"comments\":2,\"body\":\"For the most part, Vanity is running great for us on our production site. However, once every few days I see an exception looking something like : \\n\\n RuntimeError: No Vanity.context\\n vendor/gems/vanity-1.2.0/lib/vanity/experiment/base.rb:180:in `default_identify'\\n vendor/gems/vanity-1.2.0/lib/vanity/experiment/base.rb:176:in `call'\\n vendor/gems/vanity-1.2.0/lib/vanity/experiment/base.rb:176:in `identity'\\n vendor/gems/vanity-1.2.0/lib/vanity/experiment/ab_test.rb:190:in `choose'\\n vendor/gems/vanity-1.2.0/lib/vanity/frameworks/rails.rb:132:in `ab_test'\\n app/views/shared/_header.haml:20:in `_run_haml_app47views47shared47_header46haml_locals_header_object'\\n\\n\\nbut of course I can never actually reproduce it, and it goes away again as soon as it appears. Any bright ideas what might cause that?\\n\\n-Jonathan\",\"title\":\"RuntimeError: No Vanity.context\",\"updated_at\":\"2010/03/25 09:38:43 -0700\",\"closed_at\":null,\"user\":\"jdelStrother\",\"labels\":[],\"state\":\"open\"},{\"gravatar_id\":\"b62104e36c39144c7a29658122ab6c83\",\"position\":11.0,\"number\":13,\"votes\":0,\"created_at\":\"2010/06/01 09:13:01 -0700\",\"comments\":0,\"body\":\"We run daily security scans against our site and the scanning host is showing up in experiment results. Is it possible to ignore hosts and subnets so they don't pollute our tests?\",\"title\":\"Ignore hosts by subnet\",\"updated_at\":\"2010/06/01 09:13:01 -0700\",\"closed_at\":null,\"user\":\"jnimety\",\"labels\":[],\"state\":\"open\"},{\"gravatar_id\":\"2fc05288d31367ce9b9f5913818ce4ab\",\"position\":17.0,\"number\":19,\"votes\":0,\"created_at\":\"2010/08/09 09:41:25 -0700\",\"comments\":2,\"body\":\"The `rails_xss` plugin simulates Rails 3.x's XSS protection by auto-escaping \\\"unsafe\\\" html in strings. The Vanity dashboard's use of html-in-strings, e.g. \\n %{<div class=\\\"metric\\\"></div>}\\ncauses things to get double-escaped. Using rails' helpers instead, e.g. \\n content_tag(:div, nil, :class => 'metric')\\nand concatenating with `+` should prevent this and be backward compatible with those without XSS protections.\",\"title\":\"Doesn't play nice with rails_xss\",\"updated_at\":\"2010/08/12 14:56:11 -0700\",\"closed_at\":null,\"user\":\"dbushong\",\"labels\":[],\"state\":\"open\"},{\"gravatar_id\":\"0395fcc22548a1eb18201d0753e46a73\",\"position\":18.0,\"number\":20,\"votes\":0,\"created_at\":\"2010/08/11 13:57:30 -0700\",\"comments\":0,\"body\":\"/Users/agentrock/.rvm/gems/ruby-1.9.2-head/bundler/gems/rails-5d3e8ee/railties/lib/rails.rb:44:in `configuration': undefined method `config' for nil:NilClass (NoMethodError)\\r\\n\\r\\nfrom /Users/agentrock/.rvm/gems/ruby-1.9.2-head/bundler/gems/vanity-dd154a9/lib/vanity/frameworks/rails.rb:192:in `<top (required)>'\\r\\n\",\"title\":\"Rails.3.rc\",\"updated_at\":\"2010/08/11 13:57:31 -0700\",\"closed_at\":null,\"user\":\"agentrock\",\"labels\":[],\"state\":\"open\"},{\"gravatar_id\":\"985ff04dc441ad87b0cefcd31823575d\",\"position\":19.0,\"number\":21,\"votes\":0,\"created_at\":\"2010/08/19 12:59:31 -0700\",\"comments\":1,\"body\":\"Using rails 2.3, Bundler 0.9.26\\r\\nWhen I have \\r\\n gem 'vanity', '1.3.0' \\r\\nin my Gemfile, everything works fine.\\r\\nIf I change that line to \\r\\n gem 'vanity', '1.4.0' \\r\\nmy deploy blows up with:\\r\\n/opt/ruby-enterprise-1.8.7-2010.01/lib/ruby/site_ruby/1.8/rubygems/package/tar_input.rb:49:in `initialize': not in gzip format (Zlib::GzipFile::Error)\\r\\nat the point that it tries to do a bundle install --relock\\r\\nI have no clue as to what or why this is.\\r\\n\",\"title\":\"Vanity 1.4.0 seems to have issues with Bundler\",\"updated_at\":\"2010/08/19 18:53:37 -0700\",\"closed_at\":null,\"user\":\"mattvanhorn\",\"labels\":[],\"state\":\"open\"}]}"
38
+ http_version: "1.1"
39
+ - !ruby/struct:VCR::HTTPInteraction
40
+ request: !ruby/struct:VCR::Request
41
+ method: :get
42
+ uri: https://github.com:443/api/v2/json/issues/list/assaf/vanity/closed
43
+ body:
44
+ headers:
45
+ accept:
46
+ - "*/*"
47
+ host:
48
+ - github.com
49
+ response: !ruby/struct:VCR::Response
50
+ status: !ruby/struct:VCR::ResponseStatus
51
+ code: 200
52
+ message: OK
53
+ headers:
54
+ etag:
55
+ - "\"2b4ac0f57b03ee5fd76b40a75b8d3845\""
56
+ connection:
57
+ - keep-alive
58
+ content-type:
59
+ - application/json; charset=utf-8
60
+ x-runtime:
61
+ - 47ms
62
+ date:
63
+ - Tue, 24 Aug 2010 07:11:44 GMT
64
+ server:
65
+ - nginx/0.7.67
66
+ content-length:
67
+ - "8367"
68
+ set-cookie:
69
+ - _github_ses=BAh7BzoRbG9jYWxlX2d1ZXNzMCIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7AA%3D%3D--e10506e0f6935897cafe4f56774e20aa35e579a5; path=/; expires=Wed, 01 Jan 2020 08:00:00 GMT; HttpOnly
70
+ cache-control:
71
+ - private, max-age=0, must-revalidate
72
+ status:
73
+ - 200 OK
74
+ body: "{\"issues\":[{\"gravatar_id\":\"07949fed3b1168425027bb9423c665ff\",\"position\":16.0,\"number\":18,\"votes\":0,\"created_at\":\"2010/07/01 23:26:50 -0700\",\"comments\":2,\"body\":\"The config does not support a password for redis. Also the redis url string doesn't seem to follow the typical scheme. For example:\\r\\n\\r\\nmongodb://app:ao82tceb@flame.local.mongohq.com:7067/app\\r\\n\\r\\nSo redis would be:\\r\\nredis://user:password@host:port/\",\"title\":\"Passwords not supported for the Redis config\",\"updated_at\":\"2010/07/02 12:16:42 -0700\",\"closed_at\":\"2010/07/02 19:16:42 -0700\",\"user\":\"waratuman\",\"labels\":[],\"state\":\"closed\"},{\"gravatar_id\":\"35b8082323b6218ec21c53d386986848\",\"position\":15.0,\"number\":17,\"votes\":0,\"created_at\":\"2010/06/28 00:10:25 -0700\",\"comments\":7,\"body\":\"This bug from MRI 1.9, http://redmine.ruby-lang.org/issues/show/3140, shows that an incorrect behavior was introduced which makes it possible to autoload modules from gems.\\r\\n\\r\\nThis is actually incorrect, a formal require is needed instead. Also, other implementations need to require rubygems explicitly.\\r\\n\\r\\nGoing forward, the loop will be closed on 1.9, so Vanity will have issues with it as well.\\r\\n\\r\\nThis is the outcome of the discussion on Vanity tests running over Rubinius:\\r\\nhttp://github.com/evanphx/rubinius/issues/issue/388/#comment_288977\",\"title\":\"autoload won't work for gems on other implementations than MRI 1.9\",\"updated_at\":\"2010/07/01 15:13:22 -0700\",\"closed_at\":\"2010/06/28 19:30:25 -0700\",\"user\":\"atoulme\",\"labels\":[],\"state\":\"closed\"},{\"gravatar_id\":\"647cf36273c9bc3be39c08b9dfded6b5\",\"position\":14.0,\"number\":16,\"votes\":0,\"created_at\":\"2010/06/10 13:25:54 -0700\",\"comments\":3,\"body\":\"Some of the gems unused in testing are not compatible on non-Mac platforms (Linux). I ran \\\"bundle install\\\" and got the following error:\\r\\n\\r\\nInstalling autotest-fsevent (0.2.2) from rubygems repository at http://rubygems.org/ with native extensions /usr/local/lib/ruby/site_ruby/1.8/rubygems/installer.rb:482:in `build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)\\r\\n\\r\\n/usr/local/bin/ruby extconf.rb\\r\\nextconf.rb:19: Only Darwin (Mac OS X) systems are supported (RuntimeError)\\r\\n\\r\\nI was going to look into some new features (issue 11 \\\"Graceful operation if redis is down?\\\") but can't get the tests running.\",\"title\":\"unable to run tests on non-mac platforms\",\"updated_at\":\"2010/06/28 12:34:07 -0700\",\"closed_at\":\"2010/06/28 19:34:07 -0700\",\"user\":\"tylerkovacs\",\"labels\":[],\"state\":\"closed\"},{\"gravatar_id\":\"27d51f62ee0d0042cd2f506cf46981b4\",\"position\":13.0,\"number\":15,\"votes\":0,\"created_at\":\"2010/06/05 11:20:27 -0700\",\"comments\":1,\"body\":\"rake test runs against the live redis server, not the MockRedis implementation as the task descriptions state. I sent a pull request for a patch that fixes this.\",\"title\":\"rake test runs against live redis server\",\"updated_at\":\"2010/06/30 18:52:26 -0700\",\"closed_at\":\"2010/07/01 01:52:26 -0700\",\"user\":\"KeeperPat\",\"labels\":[],\"state\":\"closed\"},{\"gravatar_id\":\"89992299997cb05046d970aa3d867ff8\",\"position\":12.0,\"number\":14,\"votes\":1,\"created_at\":\"2010/06/04 13:04:31 -0700\",\"comments\":5,\"body\":\"First problem I've found with the tests is that they are written with the assumption that rubygems is required automatically, which I feel is bad form.\\r\\n\\r\\nThe second problem is that they seem extremely brittle and environment-dependent. I'm curious if they pass for anyone. \\r\\n\\r\\nExample:\\r\\n #test/rails_test.rb:162\\r\\n ensure\\r\\n File.unlink yml\\r\\n end\\r\\n\\r\\nIn this case, `yml` is a file, but `File.unlink` takes a path to a file as an argument, not an actual file object.\\r\\n\\r\\nChanging this to:\\r\\n ensure\\r\\n File.unlink yml.path\\r\\n end\\r\\n\\r\\nMakes this test pass.\\r\\n\",\"title\":\"Tests don't pass\",\"updated_at\":\"2010/06/07 23:16:54 -0700\",\"closed_at\":\"2010/06/07 14:41:32 -0700\",\"user\":\"sdhull\",\"labels\":[],\"state\":\"closed\"},{\"gravatar_id\":\"a3df9dcb16a01bf651203016e0ee6d11\",\"position\":6.0,\"number\":8,\"votes\":0,\"created_at\":\"2010/03/19 06:45:11 -0700\",\"comments\":2,\"body\":\"<a href=\\\"http://vanity.labnotes.org/configuring.html\\\">This page</a> says that `redis.yml` will be used if present in a Rails project. It doesn't say what the file's contents should look like. since `lib/vanity/frameworks/rails.rb` does sets `Vanity.playground.redis`, the config needs to be a string as in:\\n\\n development:\\n \\\"localhost:6379\\\"\\n\\nThe commit at akahn/vanity@2029de5d39b5afa2d7af5f525485cf1c21de7c37 adds this to the documentation.\\n\\nCheers,\\nAlex\",\"title\":\"Docs don't indicate how to use redis.yml\",\"updated_at\":\"2010/06/28 12:43:11 -0700\",\"closed_at\":\"2010/06/28 19:33:13 -0700\",\"user\":\"akahn\",\"labels\":[],\"state\":\"closed\"},{\"gravatar_id\":\"a3df9dcb16a01bf651203016e0ee6d11\",\"position\":4.0,\"number\":6,\"votes\":0,\"created_at\":\"2010/03/16 19:15:38 -0700\",\"comments\":1,\"body\":\"The docs link to http://vanity.labnotes.org/dashboard.html but that page is a 404. Did such a page ever exist?\",\"title\":\"Dashboard page in docs missing\",\"updated_at\":\"2010/03/17 12:58:48 -0700\",\"closed_at\":\"2010/03/17 12:58:48 -0700\",\"user\":\"akahn\",\"labels\":[],\"state\":\"closed\"},{\"gravatar_id\":\"d85d44a0eca045f40e5a31449277c26c\",\"position\":1.0,\"number\":5,\"votes\":0,\"created_at\":\"2010/02/28 16:00:33 -0800\",\"comments\":7,\"body\":\"As far as I can tell the namespace option is not actually getting used for the redis keys, is that the case?\",\"title\":\"Namespace option ignored?\",\"updated_at\":\"2010/07/02 00:03:37 -0700\",\"closed_at\":\"2010/07/02 07:03:37 -0700\",\"user\":\"bmarini\",\"labels\":[],\"state\":\"closed\"},{\"gravatar_id\":\"c6f2f058debdde1bacf111a186841ab0\",\"position\":3.0,\"number\":4,\"votes\":0,\"created_at\":\"2010/02/22 10:35:59 -0800\",\"comments\":1,\"body\":\"having an initializer initializers/vanity.rb with\\r\\nVanity.playground.logger = Rails::logger \\r\\nworks, but\\r\\nVanity.playground.load_path = \\\"app/experiments\\\" \\r\\nis ignored, the problem seems to come at rails.rb\\r\\n\\r\\nRails.configuration.after_initialize\\r\\n Vanity.playground.load_path = \\\"#{RAILS_ROOT}/experiments\\\"\\r\\n\\r\\nshould be \\r\\n Vanity.playground.load_path ||= \\\"#{RAILS_ROOT}/experiments\\\"\\r\\n\\r\\nor something like that.\\r\\n\\r\\n\\r\\n\",\"title\":\"load_path cannot be set in initializers\",\"updated_at\":\"2010/02/22 15:14:31 -0800\",\"closed_at\":\"2010/02/22 15:14:31 -0800\",\"user\":\"rodrigob\",\"labels\":[],\"state\":\"closed\"},{\"gravatar_id\":\"c6f2f058debdde1bacf111a186841ab0\",\"position\":1.0,\"number\":3,\"votes\":1,\"created_at\":\"2010/02/22 01:00:45 -0800\",\"comments\":1,\"body\":\"Out of the box on ruby 1.8.7 (2009-06-12 patchlevel 174) [i486-linux] and rails 2.3.5 Vanity::Rails::Dashboard rendering failed.\\r\\n\\r\\nI fixed the issue by adding in my VanityController\\r\\n\\r\\n def index\\r\\n # original code: render Vanity.template(\\\"_report\\\"), :content_type=>Mime::HTML, :layout=>true\\r\\n render :template => Vanity.template(\\\"_report\\\"), :content_type=>Mime::HTML, :layout=>true\\r\\n end\\r\\n\\r\\n\",\"title\":\"Vanity template failed\",\"updated_at\":\"2010/02/22 17:03:42 -0800\",\"closed_at\":\"2010/02/22 17:03:42 -0800\",\"user\":\"rodrigob\",\"labels\":[],\"state\":\"closed\"},{\"gravatar_id\":\"f3ebc1f56421482200a561a312206cec\",\"position\":2.0,\"number\":2,\"votes\":0,\"created_at\":\"2010/02/09 05:06:19 -0800\",\"comments\":1,\"body\":\"When load is very high, we randomly get\\n undefined method `call' for nil:NilClass\\nerror\\n\\n/usr/local/lib/ruby/gems/1.8/gems/vanity-1.2.0/lib/vanity/experiment/base.rb:108:in `identity'\\n\\n/usr/local/lib/ruby/gems/1.8/gems/vanity-1.2.0/lib/vanity/experiment/ab_test.rb:190:in `choose'\\n\\n/usr/local/lib/ruby/gems/1.8/gems/vanity-1.2.0/lib/vanity/rails/helpers.rb:91:in `ab_test'\",\"title\":\"Vanity fails to set identify_block on high load\",\"updated_at\":\"2010/02/15 16:10:03 -0800\",\"closed_at\":\"2010/02/15 16:10:03 -0800\",\"user\":\"dziulius\",\"labels\":[],\"state\":\"closed\"},{\"gravatar_id\":\"a2ddfdbb7cbc634bee6080a7e3f50de2\",\"position\":1.0,\"number\":1,\"votes\":0,\"created_at\":\"2010/01/20 13:32:36 -0800\",\"comments\":3,\"body\":\"I believe I'm seeing an issue with when vanity opens a connection to redis. In particular, I believe it happens before Passenger forks the app spawner for children processes. Has anyone else seen this? \",\"title\":\"Vanity making Redis connection before Passenger fork?\",\"updated_at\":\"2010/02/15 16:03:11 -0800\",\"closed_at\":\"2010/02/15 16:03:11 -0800\",\"user\":\"graysky\",\"labels\":[],\"state\":\"closed\"}]}"
75
+ http_version: "1.1"
76
+ - !ruby/struct:VCR::HTTPInteraction
77
+ request: !ruby/struct:VCR::Request
78
+ method: :get
79
+ uri: https://github.com:443/api/v2/json/issues/list/assaf/vanity/open
80
+ response: !ruby/struct:VCR::Response
81
+ status: !ruby/struct:VCR::ResponseStatus
82
+ code: 200
83
+ message: OK
84
+ headers:
85
+ status:
86
+ - 200 OK
87
+ body: |-
88
+ { "issues": [
89
+ { "number": 22,
90
+ "created_at": "2010/03/17 15:32:02 -0700",
91
+ "body": "It would be great to be able to run experiments ...",
92
+ "title": "Option to use Google Analytics for A/B testing",
93
+ "updated_at": "2010/03/17 15:59:56 -0700" },
94
+ { "number": 7,
95
+ "created_at": "2010/03/17 11:32:02 -0700",
96
+ "body": "It would be great to be able to run experiments ...",
97
+ "title": "Option to use Google Analytics for A/B testing",
98
+ "updated_at": "2010/03/17 15:59:56 -0700" }
99
+ ] }
100
+ - !ruby/struct:VCR::HTTPInteraction
101
+ request: !ruby/struct:VCR::Request
102
+ method: :get
103
+ uri: https://github.com:443/api/v2/json/issues/list/assaf/vanity/closed
104
+ response: !ruby/struct:VCR::Response
105
+ status: !ruby/struct:VCR::ResponseStatus
106
+ code: 200
107
+ message: OK
108
+ headers:
109
+ status:
110
+ - 200 OK
111
+ body: |-
112
+ { "issues": [
113
+ { "number": 19,
114
+ "body": "The config does not support a password for redis...",
115
+ "title": "Passwords not supported for the Redis config",
116
+ "closed_at": "2010/07/02 21:16:42 -0700",
117
+ "updated_at": "2010/03/17 15:59:56 -0700" },
118
+ { "number": 18,
119
+ "body": "The config does not support a password for redis...",
120
+ "title": "Passwords not supported for the Redis config",
121
+ "closed_at": "2010/07/02 19:16:42 -0700",
122
+ "updated_at": "2010/03/17 15:59:56 -0700" }
123
+ ] }
@@ -0,0 +1,36 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://rubygems.org:80/api/v1/gems/vanity.json
6
+ body:
7
+ headers:
8
+ accept:
9
+ - "*/*"
10
+ host:
11
+ - rubygems.org
12
+ response: !ruby/struct:VCR::Response
13
+ status: !ruby/struct:VCR::ResponseStatus
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ x-powered-by:
18
+ - Phusion Passenger (mod_rails/mod_rack) 2.2.15
19
+ etag:
20
+ - "\"507b606ca36de3ed6a565710ceff9a58\""
21
+ content-type:
22
+ - application/json; charset=utf-8
23
+ date:
24
+ - Sun, 22 Aug 2010 22:51:02 GMT
25
+ server:
26
+ - Apache/2.2.3 (Red Hat) mod_ssl/2.2.3 OpenSSL/0.9.8e-fips-rhel5 Phusion_Passenger/2.2.15
27
+ x-runtime:
28
+ - "0.018334"
29
+ cache-control:
30
+ - max-age=0, private, must-revalidate
31
+ status:
32
+ - "200"
33
+ transfer-encoding:
34
+ - chunked
35
+ body: "{\"dependencies\":{\"runtime\":[{\"name\":\"redis-namespace\",\"requirements\":\"~> 0.7\"},{\"name\":\"redis\",\"requirements\":\"~> 2.0\"}],\"development\":[]},\"name\":\"vanity\",\"downloads\":3492,\"info\":\"Mirror, mirror on the wall ...\",\"version_downloads\":158,\"version\":\"1.4.0\",\"homepage_uri\":\"http://vanity.labnotes.org\",\"bug_tracker_uri\":\"http://github.com/assaf/vanity/issues\",\"source_code_uri\":\"http://github.com/assaf/vanity\",\"gem_uri\":\"http://rubygems.org/gems/vanity-1.4.0.gem\",\"project_uri\":\"http://rubygems.org/gems/vanity\",\"authors\":\"Assaf Arkin\",\"mailing_list_uri\":\"http://groups.google.com/group/vanity-talk\",\"documentation_uri\":\"http://vanity.labnotes.org\",\"wiki_uri\":\"\"}"
36
+ http_version: "1.1"
@@ -0,0 +1,194 @@
1
+ require_relative "setup"
2
+
3
+ test DashFu::Bee::GithubIssues do
4
+ context "setup" do
5
+ setup { source.setup "repo"=>"assaf/vanity" }
6
+
7
+ context "metric" do
8
+ subject { source.metric }
9
+
10
+ should "use repository name" do
11
+ assert_equal "Github Issues for assaf/vanity", subject.name
12
+ end
13
+
14
+ should "measure totals" do
15
+ assert subject.totals
16
+ end
17
+
18
+ should "capture open issues" do
19
+ assert subject.columns.include?(id: "open", label: "Open issues")
20
+ end
21
+
22
+ should "capture closed issues" do
23
+ assert subject.columns.include?(id: "closed", label: "Closed issues")
24
+ end
25
+ end
26
+ end
27
+
28
+
29
+ context "validation" do
30
+ should "raise error if repository name missing" do
31
+ assert_raise(RuntimeError) { source.setup "repo"=>" " }
32
+ end
33
+
34
+ should "raise error if repository name not user/repo" do
35
+ assert_raise(RuntimeError) { source.setup "repo"=>"vanity" }
36
+ end
37
+
38
+ should "allow alphanumeric, minus and underscore" do
39
+ source.setup "repo"=>"assaf/the-vanity_0"
40
+ assert source.valid?
41
+ end
42
+
43
+ should "create valid source" do
44
+ source.setup "repo"=>"assaf/vanity"
45
+ assert source.valid?
46
+ end
47
+ end
48
+
49
+
50
+ context "update" do
51
+ setup { source.setup "repo"=>"assaf/vanity" }
52
+
53
+ should "handle 404" do
54
+ stub_request(:get, interactions.first.uri).to_return status: 404
55
+ stub_request(:get, interactions.second.uri).to_return status: 404
56
+ source.update
57
+ assert_equal "Could not find the repository assaf/vanity", source.last_error
58
+ end
59
+
60
+ should "handle 401" do
61
+ stub_request(:get, interactions.first.uri).to_return status: 401
62
+ stub_request(:get, interactions.second.uri).to_return status: 401
63
+ source.update
64
+ assert_equal "You are not authorized to access this repository, or invalid username/password", source.last_error
65
+ end
66
+
67
+ should "handle other error" do
68
+ stub_request(:get, interactions.first.uri).to_return status: 500
69
+ stub_request(:get, interactions.second.uri).to_return status: 500
70
+ source.update
71
+ assert_equal "Last request didn't go as expected, trying again later", source.last_error
72
+ end
73
+
74
+ should "handle invlid document entity" do
75
+ stub_request(:get, interactions.first.uri).to_return body: "Not JSON"
76
+ stub_request(:get, interactions.last.uri).to_return body: "Not JSON"
77
+ source.update
78
+ assert_equal "Last request didn't go as expected, trying again later", source.last_error
79
+ end
80
+
81
+ should "capture number of open issues" do
82
+ source.update
83
+ assert_equal 9, source.metric.values[:open]
84
+ end
85
+
86
+ should "capture number of closed issues" do
87
+ source.update
88
+ assert_equal 12, source.metric.values[:closed]
89
+ end
90
+
91
+
92
+ context "activity for open issue" do
93
+ setup { source.update }
94
+ subject { source.activities.first }
95
+
96
+ should "capture issue URL" do
97
+ assert_equal "http://github.com/assaf/vanity/issues#issue/21", subject.url
98
+ end
99
+
100
+ should "use SHA1 for ID" do
101
+ assert_match /^[0-9a-f]{40}$/, subject.uid
102
+ end
103
+
104
+ should "capture issue creation time" do
105
+ assert_equal Time.parse("2010/08/19 19:59:31 UTC"), subject.timestamp
106
+ end
107
+
108
+ should "capture issue title" do
109
+ assert_equal <<-HTML, subject.html
110
+ opened <a href="http://github.com/assaf/vanity/issues#issue/21">issue 21</a> on assaf/vanity:
111
+ <blockquote>Vanity 1.4.0 seems to have issues with Bundler</blockquote>
112
+ HTML
113
+ end
114
+
115
+ should "tag as issue and open" do
116
+ assert_contains subject.tags, "issue"
117
+ assert_contains subject.tags, "opened"
118
+ end
119
+
120
+ should "be valid" do
121
+ assert subject.valid?
122
+ end
123
+ end
124
+
125
+ context "activity for closed issue" do
126
+ setup { source.update }
127
+ subject { source.activities.last }
128
+
129
+ should "capture issue URL" do
130
+ assert_equal "http://github.com/assaf/vanity/issues#issue/18", subject.url
131
+ end
132
+
133
+ should "use SHA1 for ID" do
134
+ assert_match /^[0-9a-f]{40}$/, subject.uid
135
+ end
136
+
137
+ should "capture issue closing time" do
138
+ assert_equal Time.parse("2010/07/03 02:16:42 UTC"), subject.timestamp
139
+ end
140
+
141
+ should "capture issue title" do
142
+ assert_equal <<-HTML, subject.html
143
+ closed <a href="http://github.com/assaf/vanity/issues#issue/18">issue 18</a> on assaf/vanity:
144
+ <blockquote>Passwords not supported for the Redis config</blockquote>
145
+ HTML
146
+ end
147
+
148
+ should "tag as issue and closed" do
149
+ assert_contains subject.tags, "issue"
150
+ assert_contains subject.tags, "closed"
151
+ end
152
+
153
+ should "be valid" do
154
+ assert subject.valid?
155
+ end
156
+ end
157
+
158
+
159
+ context "repeating" do
160
+ setup do
161
+ source.update
162
+ source.activities.clear
163
+ open = interactions.select { |i| i.uri =~ /open/ }
164
+ stub_request(:get, open.first.uri).to_return body: open.last.response.body
165
+ closed = interactions.select { |i| i.uri =~ /closed/ }
166
+ stub_request(:get, closed.first.uri).to_return body: closed.last.response.body
167
+ source.update
168
+ end
169
+
170
+ should "update open count" do
171
+ assert_equal 2, source.metric.values[:open]
172
+ end
173
+
174
+ should "update closed count" do
175
+ assert_equal 2, source.metric.values[:closed]
176
+ end
177
+
178
+ should "create activity for each issue opened or closed" do
179
+ assert_equal 2, source.activities.count
180
+ end
181
+ end
182
+
183
+ end
184
+
185
+
186
+ context "meta" do
187
+ setup { source.setup "repo"=>"assaf/vanity" }
188
+ subject { source.meta }
189
+
190
+ should "link to repository" do
191
+ assert_contains subject, title: "On Github", url: "http://github.com/assaf/vanity/issues"
192
+ end
193
+ end
194
+ end