worochi 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +20 -0
  3. data/lib/worochi/agent/dropbox.rb +26 -4
  4. data/lib/worochi/agent/github.rb +14 -9
  5. data/lib/worochi/agent/sample.rb +8 -3
  6. data/lib/worochi/agent.rb +64 -23
  7. data/lib/worochi/config.rb +34 -2
  8. data/lib/worochi/error.rb +1 -0
  9. data/lib/worochi/helper/github.rb +1 -0
  10. data/lib/worochi/helper.rb +10 -8
  11. data/lib/worochi/item.rb +18 -9
  12. data/lib/worochi/log.rb +11 -0
  13. data/lib/worochi/version.rb +4 -0
  14. data/lib/worochi.rb +23 -16
  15. data/spec/cassettes/Worochi_Agent_Dropbox/_list/works_with_absolute_paths.yml +60 -0
  16. data/spec/cassettes/Worochi_Agent_Dropbox/_push_item/pushes_a_single_item.yml +303 -0
  17. data/spec/cassettes/Worochi_Agent_Dropbox/_push_item_chunked/pushes_a_single_item_in_chunks.yml +349 -0
  18. data/spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_files/accepts_a_different_path.yml +60 -0
  19. data/spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_files/accepts_a_different_relative_path.yml +60 -0
  20. data/spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_files/contains_file1.yml +79 -0
  21. data/spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_folders/accepts_a_different_path.yml +60 -0
  22. data/spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_folders/accepts_a_different_relative_path.yml +60 -0
  23. data/spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_folders/contains_folder1.yml +79 -0
  24. data/spec/cassettes/Worochi_Agent_Github/_list/works_with_absolute_paths.yml +133 -0
  25. data/spec/cassettes/Worochi_Agent_Github/_push_all/pushes_a_list_of_items_to_create_a_new_commit.yml +989 -0
  26. data/spec/cassettes/Worochi_Agent_Github/_push_all/pushes_the_file_to_the_right_place.yml +687 -0
  27. data/spec/cassettes/Worochi_Agent_Github/_source_branch/retrieves_the_master_branch_correctly.yml +68 -0
  28. data/spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_files/accepts_a_different_path.yml +133 -0
  29. data/spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_files/accepts_a_different_relative_path.yml +133 -0
  30. data/spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_files/contains_file1.yml +133 -0
  31. data/spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_folders/accepts_a_different_path.yml +133 -0
  32. data/spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_folders/accepts_a_different_relative_path.yml +133 -0
  33. data/spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_folders/contains_folder1.yml +133 -0
  34. data/spec/cassettes/Worochi_Item/_open/opens_a_single_file/with_Hash_parameter.yml +107 -0
  35. data/spec/cassettes/Worochi_Item/_open/opens_a_single_file/with_String_parameter.yml +107 -0
  36. data/spec/cassettes/Worochi_Item/_open/opens_multiple_files/with_Hash_parameters.yml +211 -0
  37. data/spec/cassettes/Worochi_Item/_open/opens_multiple_files/with_String_parameters.yml +107 -0
  38. data/spec/cassettes/Worochi_Item/_open_single/accepts_a_String.yml +107 -0
  39. data/spec/cassettes/Worochi_Item/_open_single/works_with_AWS_S3_paths.yml +46 -0
  40. data/spec/helper.rb +46 -0
  41. data/spec/support/aws_uri_matcher.rb +12 -0
  42. data/spec/support/shared_exampes_for_agents.rb +36 -0
  43. data/spec/support/test_file +1 -0
  44. data/spec/support/test_files.rb +34 -0
  45. data/spec/worochi/agent/dropbox_spec.rb +48 -0
  46. data/spec/worochi/agent/github_spec.rb +77 -0
  47. data/spec/worochi/agent_spec.rb +2 -0
  48. data/spec/worochi/helper/github_spec.rb +57 -0
  49. data/spec/worochi/helper_spec.rb +23 -0
  50. data/spec/worochi/item_spec.rb +85 -0
  51. data/spec/worochi_spec.rb +109 -0
  52. data/worochi.gemspec +27 -4
  53. metadata +193 -4
@@ -0,0 +1,79 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.dropbox.com/1/metadata/auto/Dev/test?file_limit=25000&include_deleted=false&list=true
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - '*/*'
14
+ User-Agent:
15
+ - OfficialDropboxRubySDK/1.6.1
16
+ Authorization:
17
+ - Bearer <DROPBOX_TOKEN>
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - nginx
25
+ Date:
26
+ - Fri, 09 Aug 2013 23:04:21 GMT
27
+ Content-Type:
28
+ - text/javascript
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - keep-alive
33
+ X-Server-Response-Time:
34
+ - '60'
35
+ X-Dropbox-Request-Id:
36
+ - 4bb445e6280dbda2242297deaccf6d1e
37
+ Pragma:
38
+ - no-cache
39
+ Cache-Control:
40
+ - no-cache
41
+ X-Dropbox-Http-Protocol:
42
+ - None
43
+ X-Frame-Options:
44
+ - SAMEORIGIN
45
+ X-Requestid:
46
+ - 51c179468646c793498cba5611400e72
47
+ body:
48
+ encoding: UTF-8
49
+ string: '{"hash": "bf88e23a6fa5e851915a2b37069faf3c", "revision": 913527043,
50
+ "rev": "36735103002426b8", "thumb_exists": false, "bytes": 0, "modified":
51
+ "Fri, 09 Aug 2013 00:17:26 +0000", "path": "/Dev/test", "is_dir": true, "icon":
52
+ "folder", "root": "dropbox", "contents": [{"revision": 913527044, "rev": "36735104002426b8",
53
+ "thumb_exists": false, "bytes": 0, "modified": "Fri, 09 Aug 2013 00:17:28
54
+ +0000", "path": "/Dev/test/.git", "is_dir": true, "icon": "folder", "root":
55
+ "dropbox", "size": "0 bytes"}, {"revision": 913527128, "rev": "36735158002426b8",
56
+ "thumb_exists": false, "bytes": 18, "modified": "Fri, 09 Aug 2013 00:17:36
57
+ +0000", "client_mtime": "Thu, 08 Aug 2013 20:44:11 +0000", "path": "/Dev/test/file1",
58
+ "is_dir": false, "icon": "page_white", "root": "dropbox", "mime_type": "application/octet-stream",
59
+ "size": "18 bytes"}, {"revision": 913527046, "rev": "36735106002426b8", "thumb_exists":
60
+ false, "bytes": 0, "modified": "Fri, 09 Aug 2013 00:17:28 +0000", "path":
61
+ "/Dev/test/folder1", "is_dir": true, "icon": "folder", "root": "dropbox",
62
+ "size": "0 bytes"}, {"revision": 913527047, "rev": "36735107002426b8", "thumb_exists":
63
+ false, "bytes": 0, "modified": "Fri, 09 Aug 2013 00:17:28 +0000", "path":
64
+ "/Dev/test/folder2", "is_dir": true, "icon": "folder", "root": "dropbox",
65
+ "size": "0 bytes"}, {"revision": 913527045, "rev": "36735105002426b8", "thumb_exists":
66
+ false, "bytes": 0, "modified": "Fri, 09 Aug 2013 00:17:28 +0000", "path":
67
+ "/Dev/test/folder3", "is_dir": true, "icon": "folder", "root": "dropbox",
68
+ "size": "0 bytes"}, {"revision": 913527152, "rev": "36735170002426b8", "thumb_exists":
69
+ false, "bytes": 1078, "modified": "Fri, 09 Aug 2013 00:17:36 +0000", "client_mtime":
70
+ "Thu, 08 Aug 2013 20:38:22 +0000", "path": "/Dev/test/LICENSE", "is_dir":
71
+ false, "icon": "page_white", "root": "dropbox", "mime_type": "application/octet-stream",
72
+ "size": "1.1 KB"}, {"revision": 913527129, "rev": "36735159002426b8", "thumb_exists":
73
+ false, "bytes": 20, "modified": "Fri, 09 Aug 2013 00:17:36 +0000", "client_mtime":
74
+ "Thu, 08 Aug 2013 20:38:22 +0000", "path": "/Dev/test/README.md", "is_dir":
75
+ false, "icon": "page_white_text", "root": "dropbox", "mime_type": "application/octet-stream",
76
+ "size": "20 bytes"}], "size": "0 bytes"}'
77
+ http_version:
78
+ recorded_at: Fri, 09 Aug 2013 23:04:21 GMT
79
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,133 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.github.com/repos/darkmirage/test/branches/master
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Octokit Ruby Gem 1.25.0
12
+ Accept:
13
+ - application/vnd.github.beta+json
14
+ Authorization:
15
+ - token <GITHUB_TOKEN>
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - GitHub.com
25
+ Date:
26
+ - Fri, 09 Aug 2013 23:25:16 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Status:
32
+ - 200 OK
33
+ X-Ratelimit-Limit:
34
+ - '5000'
35
+ X-Ratelimit-Remaining:
36
+ - '4991'
37
+ X-Ratelimit-Reset:
38
+ - '1376092779'
39
+ X-Oauth-Scopes:
40
+ - user, public_repo, repo, gist
41
+ X-Accepted-Oauth-Scopes:
42
+ - repo, public_repo, repo:status, delete_repo, site_admin
43
+ X-Github-Media-Type:
44
+ - github.beta; format=json
45
+ X-Content-Type-Options:
46
+ - nosniff
47
+ Access-Control-Allow-Credentials:
48
+ - 'true'
49
+ Access-Control-Expose-Headers:
50
+ - ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
51
+ X-Accepted-OAuth-Scopes
52
+ Access-Control-Allow-Origin:
53
+ - '*'
54
+ Etag:
55
+ - '"9f1960e9f71a26ef10999b56127f5ff5"'
56
+ Cache-Control:
57
+ - max-age=0, private, must-revalidate
58
+ Vary:
59
+ - Accept-Encoding
60
+ body:
61
+ encoding: UTF-8
62
+ string: '{"name":"master","commit":{"sha":"cdddc3941866854cdb41c023d0f5240ed10df053","commit":{"author":{"name":"Raven
63
+ Jiang","email":"raven@cs.stanford.edu","date":"2013-08-09T23:23:24Z"},"committer":{"name":"Raven
64
+ Jiang","email":"raven@cs.stanford.edu","date":"2013-08-09T23:23:24Z"},"message":"Added
65
+ subfolder testing","tree":{"sha":"6553d302dfc55bf5cd09c07a6125753af023c7a5","url":"https://api.github.com/repos/darkmirage/test/git/trees/6553d302dfc55bf5cd09c07a6125753af023c7a5"},"url":"https://api.github.com/repos/darkmirage/test/git/commits/cdddc3941866854cdb41c023d0f5240ed10df053","comment_count":0},"url":"https://api.github.com/repos/darkmirage/test/commits/cdddc3941866854cdb41c023d0f5240ed10df053","html_url":"https://github.com/darkmirage/test/commit/cdddc3941866854cdb41c023d0f5240ed10df053","comments_url":"https://api.github.com/repos/darkmirage/test/commits/cdddc3941866854cdb41c023d0f5240ed10df053/comments","author":{"login":"darkmirage","id":1635019,"avatar_url":"https://secure.gravatar.com/avatar/5111569f6bba258cfe81d12af3ba99a2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"5111569f6bba258cfe81d12af3ba99a2","url":"https://api.github.com/users/darkmirage","html_url":"https://github.com/darkmirage","followers_url":"https://api.github.com/users/darkmirage/followers","following_url":"https://api.github.com/users/darkmirage/following{/other_user}","gists_url":"https://api.github.com/users/darkmirage/gists{/gist_id}","starred_url":"https://api.github.com/users/darkmirage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/darkmirage/subscriptions","organizations_url":"https://api.github.com/users/darkmirage/orgs","repos_url":"https://api.github.com/users/darkmirage/repos","events_url":"https://api.github.com/users/darkmirage/events{/privacy}","received_events_url":"https://api.github.com/users/darkmirage/received_events","type":"User"},"committer":{"login":"darkmirage","id":1635019,"avatar_url":"https://secure.gravatar.com/avatar/5111569f6bba258cfe81d12af3ba99a2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","gravatar_id":"5111569f6bba258cfe81d12af3ba99a2","url":"https://api.github.com/users/darkmirage","html_url":"https://github.com/darkmirage","followers_url":"https://api.github.com/users/darkmirage/followers","following_url":"https://api.github.com/users/darkmirage/following{/other_user}","gists_url":"https://api.github.com/users/darkmirage/gists{/gist_id}","starred_url":"https://api.github.com/users/darkmirage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/darkmirage/subscriptions","organizations_url":"https://api.github.com/users/darkmirage/orgs","repos_url":"https://api.github.com/users/darkmirage/repos","events_url":"https://api.github.com/users/darkmirage/events{/privacy}","received_events_url":"https://api.github.com/users/darkmirage/received_events","type":"User"},"parents":[{"sha":"9da46c5d5e0758a759f80de6283eba05c1f04735","url":"https://api.github.com/repos/darkmirage/test/commits/9da46c5d5e0758a759f80de6283eba05c1f04735","html_url":"https://github.com/darkmirage/test/commit/9da46c5d5e0758a759f80de6283eba05c1f04735"}]},"_links":{"self":"https://api.github.com/repos/darkmirage/test/branches/master","html":"https://github.com/darkmirage/test/tree/master"}}'
66
+ http_version:
67
+ recorded_at: Fri, 09 Aug 2013 23:25:16 GMT
68
+ - request:
69
+ method: get
70
+ uri: https://api.github.com/repos/darkmirage/test/git/trees/cdddc3941866854cdb41c023d0f5240ed10df053?recursive=true
71
+ body:
72
+ encoding: US-ASCII
73
+ string: ''
74
+ headers:
75
+ User-Agent:
76
+ - Octokit Ruby Gem 1.25.0
77
+ Accept:
78
+ - application/vnd.github.beta+json
79
+ Authorization:
80
+ - token <GITHUB_TOKEN>
81
+ Accept-Encoding:
82
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
83
+ response:
84
+ status:
85
+ code: 200
86
+ message: OK
87
+ headers:
88
+ Server:
89
+ - GitHub.com
90
+ Date:
91
+ - Fri, 09 Aug 2013 23:25:18 GMT
92
+ Content-Type:
93
+ - application/json; charset=utf-8
94
+ Transfer-Encoding:
95
+ - chunked
96
+ Status:
97
+ - 200 OK
98
+ X-Ratelimit-Limit:
99
+ - '5000'
100
+ X-Ratelimit-Remaining:
101
+ - '4990'
102
+ X-Ratelimit-Reset:
103
+ - '1376092779'
104
+ Cache-Control:
105
+ - private, max-age=60, s-maxage=60
106
+ Last-Modified:
107
+ - Fri, 09 Aug 2013 23:23:31 GMT
108
+ Etag:
109
+ - '"a21102f6f0240897682dd43d7ed249dc"'
110
+ X-Oauth-Scopes:
111
+ - user, public_repo, repo, gist
112
+ X-Accepted-Oauth-Scopes:
113
+ - repo, public_repo, repo:status, delete_repo, site_admin
114
+ Vary:
115
+ - Accept, Authorization, Cookie
116
+ - Accept-Encoding
117
+ X-Github-Media-Type:
118
+ - github.beta; format=json
119
+ X-Content-Type-Options:
120
+ - nosniff
121
+ Access-Control-Allow-Credentials:
122
+ - 'true'
123
+ Access-Control-Expose-Headers:
124
+ - ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes,
125
+ X-Accepted-OAuth-Scopes
126
+ Access-Control-Allow-Origin:
127
+ - '*'
128
+ body:
129
+ encoding: UTF-8
130
+ string: '{"sha":"cdddc3941866854cdb41c023d0f5240ed10df053","url":"https://api.github.com/repos/darkmirage/test/git/trees/cdddc3941866854cdb41c023d0f5240ed10df053","tree":[{"mode":"100644","type":"blob","sha":"398cd945a422cff4321d613a3c5aef57b0b27da2","path":"LICENSE","size":1078,"url":"https://api.github.com/repos/darkmirage/test/git/blobs/398cd945a422cff4321d613a3c5aef57b0b27da2"},{"mode":"100644","type":"blob","sha":"453312977f72f7e37d96bdc6c5b5e4c9c59072f1","path":"README.md","size":20,"url":"https://api.github.com/repos/darkmirage/test/git/blobs/453312977f72f7e37d96bdc6c5b5e4c9c59072f1"},{"mode":"100644","type":"blob","sha":"38a226454dab3931dbb694b3c3ae94e02d110dcf","path":"file1","size":18,"url":"https://api.github.com/repos/darkmirage/test/git/blobs/38a226454dab3931dbb694b3c3ae94e02d110dcf"},{"mode":"040000","type":"tree","sha":"ec677e6fb544f1f197f8f02bcbaaededaac23bb8","path":"folder1","url":"https://api.github.com/repos/darkmirage/test/git/trees/ec677e6fb544f1f197f8f02bcbaaededaac23bb8"},{"mode":"100644","type":"blob","sha":"b69c5ab7d022a2fc12f5a3395e337e4c227845c8","path":"folder1/test.txt","size":6,"url":"https://api.github.com/repos/darkmirage/test/git/blobs/b69c5ab7d022a2fc12f5a3395e337e4c227845c8"},{"mode":"040000","type":"tree","sha":"26a9ff72316b4b9af6481e28d3bb508c555d31a1","path":"folder2","url":"https://api.github.com/repos/darkmirage/test/git/trees/26a9ff72316b4b9af6481e28d3bb508c555d31a1"},{"mode":"100644","type":"blob","sha":"0d6c64027338c994e23ee2a254eb30229c2b474a","path":"folder2/lolcatsdotcomlikemyself.jpg","size":46054,"url":"https://api.github.com/repos/darkmirage/test/git/blobs/0d6c64027338c994e23ee2a254eb30229c2b474a"},{"mode":"040000","type":"tree","sha":"54051fb94eb639fb429e656b4c888bc3aba44742","path":"folder2/subfolder","url":"https://api.github.com/repos/darkmirage/test/git/trees/54051fb94eb639fb429e656b4c888bc3aba44742"},{"mode":"040000","type":"tree","sha":"14c178a91bd3eda9ac179b373c8ee35e8f3c53ad","path":"folder2/subfolder/test","url":"https://api.github.com/repos/darkmirage/test/git/trees/14c178a91bd3eda9ac179b373c8ee35e8f3c53ad"},{"mode":"100644","type":"blob","sha":"c50b9ab72268ccbaf75a53676696940cccb66b89","path":"folder2/subfolder/test/abc.txt","size":32,"url":"https://api.github.com/repos/darkmirage/test/git/blobs/c50b9ab72268ccbaf75a53676696940cccb66b89"},{"mode":"040000","type":"tree","sha":"d750655104da52a0f691c399528a29cf5fa594c2","path":"folder3","url":"https://api.github.com/repos/darkmirage/test/git/trees/d750655104da52a0f691c399528a29cf5fa594c2"},{"mode":"100644","type":"blob","sha":"131bbc4355114ce79bd3456abb10114bcc4b0ef8","path":"folder3/1000Hz-5sec.mp3","size":30440,"url":"https://api.github.com/repos/darkmirage/test/git/blobs/131bbc4355114ce79bd3456abb10114bcc4b0ef8"},{"mode":"100644","type":"blob","sha":"3904c0889abcfc104bed5970c6a53d81773ac515","path":"folder3/440Hz-5sec.mp3","size":30439,"url":"https://api.github.com/repos/darkmirage/test/git/blobs/3904c0889abcfc104bed5970c6a53d81773ac515"},{"mode":"100644","type":"blob","sha":"c45c70657ec69cd6482a4b189772d8b3aa8857be","path":"folder3/mp3tones.zip","size":32711,"url":"https://api.github.com/repos/darkmirage/test/git/blobs/c45c70657ec69cd6482a4b189772d8b3aa8857be"}]}'
131
+ http_version:
132
+ recorded_at: Fri, 09 Aug 2013 23:25:18 GMT
133
+ recorded_with: VCR 2.5.0