cloudapp 1.1.0 → 2.0.0.beta.1

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.
Files changed (87) hide show
  1. data/CHANGELOG.md +3 -0
  2. data/Gemfile.lock +18 -34
  3. data/README.md +2 -1
  4. data/Rakefile +5 -1
  5. data/cloudapp.gemspec +50 -41
  6. data/lib/cloudapp/account.rb +111 -0
  7. data/lib/cloudapp/authorized_representation.rb +17 -0
  8. data/lib/cloudapp/collection_json/item.rb +20 -0
  9. data/lib/cloudapp/collection_json/representation.rb +74 -0
  10. data/lib/cloudapp/collection_json/template.rb +17 -0
  11. data/lib/cloudapp/collection_json/tint.rb +11 -0
  12. data/lib/cloudapp/collection_json.rb +3 -0
  13. data/lib/cloudapp/drop.rb +22 -6
  14. data/lib/cloudapp/drop_collection.rb +22 -0
  15. data/lib/cloudapp/service.rb +172 -0
  16. data/lib/cloudapp/token.rb +27 -0
  17. data/lib/cloudapp.rb +5 -1
  18. data/man/cloudapp.1 +202 -45
  19. data/man/cloudapp.1.html +114 -42
  20. data/man/cloudapp.1.ronn +125 -45
  21. data/spec/cassettes/create_bookmark.yml +255 -0
  22. data/spec/cassettes/create_bookmark_with_name.yml +266 -0
  23. data/spec/cassettes/create_bookmark_with_privacy.yml +277 -0
  24. data/spec/cassettes/delete_drop.yml +383 -0
  25. data/spec/cassettes/list_drops.yml +139 -0
  26. data/spec/cassettes/list_drops_with_bad_token.yml +57 -0
  27. data/spec/cassettes/list_drops_with_filter.yml +209 -0
  28. data/spec/cassettes/list_drops_with_href.yml +287 -0
  29. data/spec/cassettes/list_drops_with_href_and_filter.yml +287 -0
  30. data/spec/cassettes/list_drops_with_href_and_limit.yml +287 -0
  31. data/spec/cassettes/list_drops_with_limit.yml +211 -0
  32. data/spec/cassettes/list_drops_with_nil_href.yml +139 -0
  33. data/spec/cassettes/purge_drops.yml +1103 -0
  34. data/spec/cassettes/recover_drop.yml +628 -0
  35. data/spec/cassettes/rename_drop.yml +367 -0
  36. data/spec/cassettes/setup_drops.yml +968 -0
  37. data/spec/cassettes/token_for_account.yml +127 -0
  38. data/spec/cassettes/token_for_account_with_bad_credentials.yml +115 -0
  39. data/spec/cassettes/trash_drop.yml +478 -0
  40. data/spec/cassettes/update_drop_bookmark_url.yml +379 -0
  41. data/spec/cassettes/update_file.yml +573 -0
  42. data/spec/cassettes/upload_file.yml +470 -0
  43. data/spec/cassettes/upload_file_with_name.yml +484 -0
  44. data/spec/cassettes/upload_file_with_privacy.yml +495 -0
  45. data/spec/cassettes/view_drop.yml +73 -0
  46. data/spec/cloudapp/account_spec.rb +166 -0
  47. data/spec/cloudapp/authorized_representation_spec.rb +32 -0
  48. data/spec/cloudapp/collection_json/item_spec.rb +45 -0
  49. data/spec/cloudapp/collection_json/representation_spec.rb +118 -0
  50. data/spec/cloudapp/collection_json/template_spec.rb +53 -0
  51. data/spec/cloudapp/drop_collection_spec.rb +63 -0
  52. data/spec/cloudapp/drop_spec.rb +81 -51
  53. data/spec/cloudapp/service_spec.rb +357 -0
  54. data/spec/cloudapp/token_spec.rb +33 -0
  55. data/spec/integration_spec.rb +100 -0
  56. data/spec/support/stub_class_or_module.rb +6 -3
  57. data/spec/support/vcr.rb +21 -5
  58. metadata +84 -106
  59. data/bin/cloudapp +0 -184
  60. data/lib/cloudapp/config.rb +0 -39
  61. data/lib/cloudapp/drop_content.rb +0 -34
  62. data/lib/cloudapp/drop_presenter.rb +0 -80
  63. data/lib/cloudapp/drop_service.rb +0 -255
  64. data/lib/cloudapp/identity.rb +0 -14
  65. data/spec/cassettes/DropContent/download.yml +0 -116
  66. data/spec/cassettes/DropService/create_bookmark.yml +0 -105
  67. data/spec/cassettes/DropService/create_bookmark_with_bad_credentials.yml +0 -39
  68. data/spec/cassettes/DropService/create_bookmark_with_name.yml +0 -105
  69. data/spec/cassettes/DropService/create_private_bookmark.yml +0 -105
  70. data/spec/cassettes/DropService/create_public_bookmark.yml +0 -105
  71. data/spec/cassettes/DropService/drop.yml +0 -81
  72. data/spec/cassettes/DropService/list_drops.yml +0 -135
  73. data/spec/cassettes/DropService/list_drops_with_bad_credentials.yml +0 -39
  74. data/spec/cassettes/DropService/list_drops_with_limit.yml +0 -117
  75. data/spec/cassettes/DropService/list_trash.yml +0 -111
  76. data/spec/cassettes/DropService/list_trash_with_bad_credentials.yml +0 -39
  77. data/spec/cassettes/DropService/retrieve_token.yml +0 -42
  78. data/spec/cassettes/DropService/retrieve_token_with_bad_credentials.yml +0 -43
  79. data/spec/cassettes/DropService/upload_file.yml +0 -291
  80. data/spec/cassettes/DropService/upload_public_file.yml +0 -293
  81. data/spec/cloudapp/config_spec.rb +0 -59
  82. data/spec/cloudapp/drop_content_spec.rb +0 -21
  83. data/spec/cloudapp/drop_presenter_spec.rb +0 -120
  84. data/spec/cloudapp/drop_service_spec.rb +0 -400
  85. data/spec/cloudapp/identity_spec.rb +0 -27
  86. data/spec/support/fakefs_rspec.rb +0 -5
  87. data/spec/support/vcr_rspec.rb +0 -9
@@ -0,0 +1,127 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.getcloudapp.com/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - application/json, text/x-yaml, application/xml, application/xhtml+xml, text/html,
12
+ text/plain
13
+ response:
14
+ status:
15
+ code: 401
16
+ message: !binary |-
17
+ VW5hdXRob3JpemVk
18
+ headers:
19
+ !binary "Q2FjaGUtQ29udHJvbA==":
20
+ - !binary |-
21
+ bm8tY2FjaGU=
22
+ !binary "Q29udGVudC1UeXBl":
23
+ - !binary |-
24
+ YXBwbGljYXRpb24vdm5kLmNvbGxlY3Rpb24ranNvbjsgY2hhcnNldD11dGYt
25
+ OA==
26
+ !binary "U2VydmVy":
27
+ - !binary |-
28
+ dGhpbiAxLjQuMSBjb2RlbmFtZSBDaHJvbWVv
29
+ !binary "V3d3LUF1dGhlbnRpY2F0ZQ==":
30
+ - !binary |-
31
+ VG9rZW4gcmVhbG09IkNsb3VkQXBwIg==
32
+ !binary "WC1SdW50aW1l":
33
+ - !binary |-
34
+ MC4wMDQyNDM=
35
+ !binary "WC1VYS1Db21wYXRpYmxl":
36
+ - !binary |-
37
+ SUU9RWRnZSxjaHJvbWU9MQ==
38
+ !binary "VHJhbnNmZXItRW5jb2Rpbmc=":
39
+ - !binary |-
40
+ Y2h1bmtlZA==
41
+ !binary "Q29ubmVjdGlvbg==":
42
+ - !binary |-
43
+ a2VlcC1hbGl2ZQ==
44
+ body:
45
+ encoding: ASCII-8BIT
46
+ string: !binary |-
47
+ eyJjb2xsZWN0aW9uIjp7InZlcnNpb24iOiIxLjAiLCJocmVmIjoiaHR0cHM6
48
+ Ly9hcGkuZ2V0Y2xvdWRhcHAuY29tL2FjY291bnQvdG9rZW4iLCJsaW5rcyI6
49
+ W3sicmVsIjoicm9vdCIsImhyZWYiOiJodHRwczovL2FwaS5nZXRjbG91ZGFw
50
+ cC5jb20vIn1dLCJ0ZW1wbGF0ZSI6eyJkYXRhIjpbeyJuYW1lIjoiZW1haWwi
51
+ LCJ2YWx1ZSI6bnVsbH0seyJuYW1lIjoicGFzc3dvcmQiLCJ2YWx1ZSI6bnVs
52
+ bH1dfX19
53
+ http_version:
54
+ recorded_at: Fri, 17 Aug 2012 18:12:01 GMT
55
+ - request:
56
+ method: post
57
+ uri: https://api.getcloudapp.com/account/token
58
+ body:
59
+ encoding: UTF-8
60
+ string: ! '{"email":"arthur@dent.com","password":"towel"}'
61
+ headers:
62
+ !binary "Q29udGVudC1UeXBl":
63
+ - application/json
64
+ Accept:
65
+ - application/json, text/x-yaml, application/xml, application/xhtml+xml, text/html,
66
+ text/plain
67
+ response:
68
+ status:
69
+ code: 201
70
+ message: !binary |-
71
+ Q3JlYXRlZA==
72
+ headers:
73
+ !binary "Q2FjaGUtQ29udHJvbA==":
74
+ - !binary |-
75
+ bWF4LWFnZT0wLCBwcml2YXRlLCBtdXN0LXJldmFsaWRhdGU=
76
+ !binary "Q29udGVudC1UeXBl":
77
+ - !binary |-
78
+ YXBwbGljYXRpb24vdm5kLmNvbGxlY3Rpb24ranNvbjsgY2hhcnNldD11dGYt
79
+ OA==
80
+ !binary "RXRhZw==":
81
+ - !binary |-
82
+ IjQ0MzhhM2Y0ZjcwM2EwMWMyNTFiN2VjYzFmZWFiNzcyIg==
83
+ !binary "U2VydmVy":
84
+ - !binary |-
85
+ dGhpbiAxLjQuMSBjb2RlbmFtZSBDaHJvbWVv
86
+ !binary "U2V0LUNvb2tpZQ==":
87
+ - !binary |-
88
+ X2VuZ2luZV9zZXNzaW9uPUJBaDdDRWtpRlhWelpYSmZZM0psWkdWdWRHbGhi
89
+ SE1HT2daRlJra2lBWUJoT0dVd05EQmtNRFkzWVdKa01URXlaR00xTlRKaE9U
90
+ bGtNall5Tm1VMU56VTBZMkZtWmpjM01ERXpaVGMwWkRVNU5URmpNVEkyTTJR
91
+ eFlURXlNR1F4TlRoalpqSTNaRGd6Tm1WbU4yUXlNbUV3WmpRek4yUmxNamcz
92
+ TkdFM09XUXdNV000TldWaU9XRm1ZVFZtTXpRMVpHRmpaalF5WkRBeE5qbGtN
93
+ VFk0TXdZN0FGUkpJaGgxYzJWeVgyTnlaV1JsYm5ScFlXeHpYMmxrQmpzQVJt
94
+ a0RwNEVCU1NJUGMyVnpjMmx2Ymw5cFpBWTdBRVpKSWlVd00yUTFaR0ZpTWpr
95
+ Mk1tVXdaR000Tm1ZMk9UWTRNMlk0WXpCbFlqRm1aQVk3QUZRJTNELS04Nzk0
96
+ NDAzZDdhNzMwNDRiY2QzMjEyZmViZjIxOWY1MGJkYWU5OGIxOyBwYXRoPS87
97
+ IEh0dHBPbmx5
98
+ - !binary |-
99
+ dXNlcl9jcmVkZW50aWFscz1hOGUwNDBkMDY3YWJkMTEyZGM1NTJhOTlkMjYy
100
+ NmU1NzU0Y2FmZjc3MDEzZTc0ZDU5NTFjMTI2M2QxYTEyMGQxNThjZjI3ZDgz
101
+ NmVmN2QyMmEwZjQzN2RlMjg3NGE3OWQwMWM4NWViOWFmYTVmMzQ1ZGFjZjQy
102
+ ZDAxNjlkMTY4MyUzQSUzQTk4NzI3OyBwYXRoPS87IGV4cGlyZXM9U2F0LCAx
103
+ Ny1Ob3YtMjAxMiAxODoxMjowMiBHTVQ=
104
+ !binary "WC1SdW50aW1l":
105
+ - !binary |-
106
+ MC4wMDk2ODE=
107
+ !binary "WC1VYS1Db21wYXRpYmxl":
108
+ - !binary |-
109
+ SUU9RWRnZSxjaHJvbWU9MQ==
110
+ !binary "Q29udGVudC1MZW5ndGg=":
111
+ - !binary |-
112
+ MjUy
113
+ !binary "Q29ubmVjdGlvbg==":
114
+ - !binary |-
115
+ a2VlcC1hbGl2ZQ==
116
+ body:
117
+ encoding: ASCII-8BIT
118
+ string: !binary |-
119
+ eyJjb2xsZWN0aW9uIjp7InZlcnNpb24iOiIxLjAiLCJocmVmIjoiaHR0cHM6
120
+ Ly9hcGkuZ2V0Y2xvdWRhcHAuY29tL2FjY291bnQvdG9rZW4iLCJsaW5rcyI6
121
+ W3sicmVsIjoicm9vdCIsImhyZWYiOiJodHRwczovL2FwaS5nZXRjbG91ZGFw
122
+ cC5jb20vIn1dLCJpdGVtcyI6W3siaHJlZiI6Imh0dHBzOi8vYXBpLmdldGNs
123
+ b3VkYXBwLmNvbS9hY2NvdW50L3Rva2VuIiwiZGF0YSI6W3sibmFtZSI6InRv
124
+ a2VuIiwidmFsdWUiOiJhYmMxMjMifV19XX19
125
+ http_version:
126
+ recorded_at: Fri, 17 Aug 2012 18:12:02 GMT
127
+ recorded_with: VCR 2.0.0
@@ -0,0 +1,115 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.getcloudapp.com/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - application/json, text/x-yaml, application/xml, application/xhtml+xml, text/html,
12
+ text/plain
13
+ response:
14
+ status:
15
+ code: 401
16
+ message: !binary |-
17
+ VW5hdXRob3JpemVk
18
+ headers:
19
+ !binary "Q2FjaGUtQ29udHJvbA==":
20
+ - !binary |-
21
+ bm8tY2FjaGU=
22
+ !binary "Q29udGVudC1UeXBl":
23
+ - !binary |-
24
+ YXBwbGljYXRpb24vdm5kLmNvbGxlY3Rpb24ranNvbjsgY2hhcnNldD11dGYt
25
+ OA==
26
+ !binary "U2VydmVy":
27
+ - !binary |-
28
+ dGhpbiAxLjQuMSBjb2RlbmFtZSBDaHJvbWVv
29
+ !binary "V3d3LUF1dGhlbnRpY2F0ZQ==":
30
+ - !binary |-
31
+ VG9rZW4gcmVhbG09IkNsb3VkQXBwIg==
32
+ !binary "WC1SdW50aW1l":
33
+ - !binary |-
34
+ MC4wMDI2Mjk=
35
+ !binary "WC1VYS1Db21wYXRpYmxl":
36
+ - !binary |-
37
+ SUU9RWRnZSxjaHJvbWU9MQ==
38
+ !binary "Q29udGVudC1MZW5ndGg=":
39
+ - !binary |-
40
+ MjMx
41
+ !binary "Q29ubmVjdGlvbg==":
42
+ - !binary |-
43
+ a2VlcC1hbGl2ZQ==
44
+ body:
45
+ encoding: ASCII-8BIT
46
+ string: !binary |-
47
+ eyJjb2xsZWN0aW9uIjp7InZlcnNpb24iOiIxLjAiLCJocmVmIjoiaHR0cHM6
48
+ Ly9hcGkuZ2V0Y2xvdWRhcHAuY29tL2FjY291bnQvdG9rZW4iLCJsaW5rcyI6
49
+ W3sicmVsIjoicm9vdCIsImhyZWYiOiJodHRwczovL2FwaS5nZXRjbG91ZGFw
50
+ cC5jb20vIn1dLCJ0ZW1wbGF0ZSI6eyJkYXRhIjpbeyJuYW1lIjoiZW1haWwi
51
+ LCJ2YWx1ZSI6bnVsbH0seyJuYW1lIjoicGFzc3dvcmQiLCJ2YWx1ZSI6bnVs
52
+ bH1dfX19
53
+ http_version:
54
+ recorded_at: Fri, 17 Aug 2012 18:12:02 GMT
55
+ - request:
56
+ method: post
57
+ uri: https://api.getcloudapp.com/account/token
58
+ body:
59
+ encoding: UTF-8
60
+ string: ! '{"email":"arthur@dent.com","password":"wrong"}'
61
+ headers:
62
+ !binary "Q29udGVudC1UeXBl":
63
+ - application/json
64
+ Accept:
65
+ - application/json, text/x-yaml, application/xml, application/xhtml+xml, text/html,
66
+ text/plain
67
+ response:
68
+ status:
69
+ code: 401
70
+ message: !binary |-
71
+ VW5hdXRob3JpemVk
72
+ headers:
73
+ !binary "Q2FjaGUtQ29udHJvbA==":
74
+ - !binary |-
75
+ bm8tY2FjaGU=
76
+ !binary "Q29udGVudC1UeXBl":
77
+ - !binary |-
78
+ YXBwbGljYXRpb24vdm5kLmNvbGxlY3Rpb24ranNvbjsgY2hhcnNldD11dGYt
79
+ OA==
80
+ !binary "U2VydmVy":
81
+ - !binary |-
82
+ dGhpbiAxLjQuMSBjb2RlbmFtZSBDaHJvbWVv
83
+ !binary "U2V0LUNvb2tpZQ==":
84
+ - !binary |-
85
+ X2VuZ2luZV9zZXNzaW9uPUJBaDdCa2tpRDNObGMzTnBiMjVmYVdRR09nWkZS
86
+ a2tpSlRCaE16STFZekZqTkRrME1tWTRPV1psT0RVNE9XRmtPV1ZsTlRneFl6
87
+ ZzFCanNBVkElM0QlM0QtLTcyOWZhNWVkNzUzN2NhYWE2YTFhOThiMDBiMDQ1
88
+ YzczOTJkYjg2MmM7IHBhdGg9LzsgSHR0cE9ubHk=
89
+ !binary "V3d3LUF1dGhlbnRpY2F0ZQ==":
90
+ - !binary |-
91
+ VG9rZW4gcmVhbG09IkNsb3VkQXBwIg==
92
+ !binary "WC1SdW50aW1l":
93
+ - !binary |-
94
+ MC4wMTI2MTE=
95
+ !binary "WC1VYS1Db21wYXRpYmxl":
96
+ - !binary |-
97
+ SUU9RWRnZSxjaHJvbWU9MQ==
98
+ !binary "Q29udGVudC1MZW5ndGg=":
99
+ - !binary |-
100
+ MjMx
101
+ !binary "Q29ubmVjdGlvbg==":
102
+ - !binary |-
103
+ a2VlcC1hbGl2ZQ==
104
+ body:
105
+ encoding: ASCII-8BIT
106
+ string: !binary |-
107
+ eyJjb2xsZWN0aW9uIjp7InZlcnNpb24iOiIxLjAiLCJocmVmIjoiaHR0cHM6
108
+ Ly9hcGkuZ2V0Y2xvdWRhcHAuY29tL2FjY291bnQvdG9rZW4iLCJsaW5rcyI6
109
+ W3sicmVsIjoicm9vdCIsImhyZWYiOiJodHRwczovL2FwaS5nZXRjbG91ZGFw
110
+ cC5jb20vIn1dLCJ0ZW1wbGF0ZSI6eyJkYXRhIjpbeyJuYW1lIjoiZW1haWwi
111
+ LCJ2YWx1ZSI6bnVsbH0seyJuYW1lIjoicGFzc3dvcmQiLCJ2YWx1ZSI6bnVs
112
+ bH1dfX19
113
+ http_version:
114
+ recorded_at: Fri, 17 Aug 2012 18:12:02 GMT
115
+ recorded_with: VCR 2.0.0