transifex-interface-ruby 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. checksums.yaml +6 -14
  2. data/.gitignore +17 -17
  3. data/.rspec +2 -0
  4. data/Gemfile +4 -4
  5. data/LICENSE.txt +22 -22
  6. data/README.md +517 -513
  7. data/Rakefile +1 -1
  8. data/lib/transifex.rb +84 -87
  9. data/lib/transifex/crud_requests.rb +43 -33
  10. data/lib/transifex/errors.rb +4 -4
  11. data/lib/transifex/project_components/language.rb +1 -1
  12. data/lib/transifex/project_components/language_components/coordinators.rb +4 -6
  13. data/lib/transifex/project_components/language_components/reviewers.rb +5 -8
  14. data/lib/transifex/project_components/language_components/translators.rb +6 -9
  15. data/lib/transifex/project_components/languages.rb +1 -1
  16. data/lib/transifex/resource.rb +1 -1
  17. data/lib/transifex/resource_components/content.rb +1 -1
  18. data/lib/transifex/resource_components/source.rb +1 -1
  19. data/lib/transifex/resource_components/stats.rb +1 -1
  20. data/lib/transifex/resource_components/translation.rb +1 -1
  21. data/lib/transifex/resource_components/translation_components/string.rb +1 -1
  22. data/lib/transifex/resource_components/translation_components/strings.rb +1 -1
  23. data/lib/transifex/resources.rb +1 -1
  24. data/lib/transifex/version.rb +3 -3
  25. data/spec/cassettes/fetch_formats.yml +121 -0
  26. data/spec/cassettes/language/fetch_language_info.yml +58 -0
  27. data/spec/cassettes/language/fetch_languages_info.yml +58 -0
  28. data/spec/cassettes/project/components/create_language.yml +95 -0
  29. data/spec/cassettes/project/components/create_language_non_existing_coordinator.yml +48 -0
  30. data/spec/cassettes/project/components/create_language_without_coordinator.yml +48 -0
  31. data/spec/cassettes/project/components/fetch_languages.yml +53 -0
  32. data/spec/cassettes/project/delete_project.yml +108 -0
  33. data/spec/cassettes/project/fetch_private_project_info.yml +59 -0
  34. data/spec/cassettes/project/fetch_with_details_private_project_info.yml +66 -0
  35. data/spec/cassettes/project/language/delete_language.yml +140 -0
  36. data/spec/cassettes/project/language/fetch_coordinators.yml +56 -0
  37. data/spec/cassettes/project/language/fetch_language_info.yml +52 -0
  38. data/spec/cassettes/project/language/fetch_reviewers.yml +56 -0
  39. data/spec/cassettes/project/language/fetch_translators.yml +54 -0
  40. data/spec/cassettes/project/language/fetch_with_details_language_info.yml +54 -0
  41. data/spec/cassettes/project/language/update_coordinators.yml +104 -0
  42. data/spec/cassettes/project/language/update_language.yml +100 -0
  43. data/spec/cassettes/project/language/update_non_existing_coordinator.yml +48 -0
  44. data/spec/cassettes/project/language/update_non_existing_language.yml +49 -0
  45. data/spec/cassettes/project/language/update_non_existing_reviewer.yml +101 -0
  46. data/spec/cassettes/project/language/update_non_existing_translator.yml +101 -0
  47. data/spec/cassettes/project/language/update_reviewers.yml +157 -0
  48. data/spec/cassettes/project/language/update_translators.yml +157 -0
  49. data/spec/cassettes/project/update_non_existing_attribute_private_project.yml +54 -0
  50. data/spec/cassettes/project/update_private_project.yml +120 -0
  51. data/spec/cassettes/project/update_with_missing_params_private_project.yml +54 -0
  52. data/spec/cassettes/projects/create_private_project.yml +111 -0
  53. data/spec/cassettes/projects/create_public_project.yml +111 -0
  54. data/spec/cassettes/projects/create_used_slug_project.yml +55 -0
  55. data/spec/cassettes/projects/fetch_projects.yml +61 -0
  56. data/spec/cassettes/resource/delete_not_existing_resource.yml +55 -0
  57. data/spec/cassettes/resource/delete_resource.yml +160 -0
  58. data/spec/cassettes/resource/fetch_all_languages_stats.yml +66 -0
  59. data/spec/cassettes/resource/fetch_content_as_file.yml +56 -0
  60. data/spec/cassettes/resource/fetch_content_as_hash.yml +58 -0
  61. data/spec/cassettes/resource/fetch_language_stats.yml +61 -0
  62. data/spec/cassettes/resource/fetch_not_existing_resource.yml +55 -0
  63. data/spec/cassettes/resource/fetch_resource_info.yml +59 -0
  64. data/spec/cassettes/resource/fetch_source_string_metadata.yml +52 -0
  65. data/spec/cassettes/resource/fetch_translations.yml +57 -0
  66. data/spec/cassettes/resource/fetch_updated_resource_info.yml +60 -0
  67. data/spec/cassettes/resource/fetch_updated_source_string_metadata.yml +52 -0
  68. data/spec/cassettes/resource/fetch_with_details_resource_info.yml +65 -0
  69. data/spec/cassettes/resource/fetch_with_file_and_mode_translations.yml +56 -0
  70. data/spec/cassettes/resource/fetch_with_file_translations.yml +56 -0
  71. data/spec/cassettes/resource/update_content_json.yml +115 -0
  72. data/spec/cassettes/resource/update_content_with_wrong_mimetype.yml +59 -0
  73. data/spec/cassettes/resource/update_content_yml.yml +114 -0
  74. data/spec/cassettes/resource/update_not_existing_resource.yml +55 -0
  75. data/spec/cassettes/resource/update_resource_info.yml +114 -0
  76. data/spec/cassettes/resource/update_source_language.yml +54 -0
  77. data/spec/cassettes/resource/update_source_string_metadata.yml +100 -0
  78. data/spec/cassettes/resource/update_translation_for_language.yml +62 -0
  79. data/spec/cassettes/resources/create_from_file.yml +55 -0
  80. data/spec/cassettes/resources/create_from_string.yml +54 -0
  81. data/spec/cassettes/resources/fetch_as_array.yml +62 -0
  82. data/spec/cassettes/resources/non_existing_project.yml +55 -0
  83. data/spec/cassettes/translation/fetch_string.yml +55 -0
  84. data/spec/cassettes/translation/fetch_strings.yml +54 -0
  85. data/spec/cassettes/translation/fetch_with_details_and_context_strings.yml +51 -0
  86. data/spec/cassettes/translation/fetch_with_details_and_key_strings.yml +56 -0
  87. data/spec/cassettes/translation/fetch_with_details_strings.yml +56 -0
  88. data/spec/cassettes/translation/update_multiple_translation_strings.yml +107 -0
  89. data/spec/cassettes/translation/update_single_translation_strings.yml +104 -0
  90. data/spec/cassettes/translation/update_string.yml +104 -0
  91. data/spec/lib/transifex/coordinators_spec.rb +22 -16
  92. data/spec/lib/transifex/formats_spec.rb +8 -8
  93. data/spec/lib/transifex/language_spec.rb +9 -10
  94. data/spec/lib/transifex/languages_spec.rb +8 -8
  95. data/spec/lib/transifex/project_language_spec.rb +41 -28
  96. data/spec/lib/transifex/project_languages_spec.rb +34 -18
  97. data/spec/lib/transifex/project_spec.rb +46 -73
  98. data/spec/lib/transifex/projects_spec.rb +72 -37
  99. data/spec/lib/transifex/resource_content_spec.rb +41 -24
  100. data/spec/lib/transifex/resource_source_spec.rb +21 -19
  101. data/spec/lib/transifex/resource_spec.rb +69 -41
  102. data/spec/lib/transifex/resources_spec.rb +42 -34
  103. data/spec/lib/transifex/reviewers_spec.rb +23 -17
  104. data/spec/lib/transifex/stats_spec.rb +20 -24
  105. data/spec/lib/transifex/translation_spec.rb +60 -38
  106. data/spec/lib/transifex/translation_string_spec.rb +26 -20
  107. data/spec/lib/transifex/translation_strings_spec.rb +65 -43
  108. data/spec/lib/transifex/translators_spec.rb +23 -17
  109. data/spec/lib/transifex_spec.rb +15 -0
  110. data/spec/lib/yaml/eo.yml +3 -0
  111. data/spec/spec_helper.rb +19 -83
  112. data/spec/support/client_helper.rb +8 -0
  113. data/spec/support/content_helper.rb +346 -0
  114. data/transifex-interface-ruby.gemspec +28 -25
  115. metadata +198 -21
  116. data/spec/lib/transifex/configuration_spec.rb +0 -17
  117. data/spec/lib/yaml/resource_translation_default_content_test.yml +0 -4
  118. data/spec/lib/yaml/resource_translation_reviewed_content_test.yml +0 -9
@@ -0,0 +1,48 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://www.transifex.com/api/2/project/ruby-client/languages
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"language_code":"fr","coordinators":[]}'
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ Accept:
13
+ - application/json
14
+ User-Agent:
15
+ - Transifex-interface-ruby/0.0.1
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Authorization:
19
+ - Basic bS5naWFtYml0dG9AZnJlZWdvd2ViLml0Om1vbGxpXzAx
20
+ response:
21
+ status:
22
+ code: 400
23
+ message: BAD REQUEST
24
+ headers:
25
+ Server:
26
+ - nginx
27
+ Vary:
28
+ - Authorization, Host, Accept-Language, Cookie
29
+ Content-Type:
30
+ - text/plain
31
+ Date:
32
+ - Wed, 03 May 2017 12:45:57 GMT
33
+ Transfer-Encoding:
34
+ - chunked
35
+ Content-Language:
36
+ - en
37
+ Connection:
38
+ - close
39
+ Set-Cookie:
40
+ - X-Mapping-fjhppofk=978A30C321AEE9D0F95E25198189AC99; path=/
41
+ X-Frame-Options:
42
+ - SAMEORIGIN
43
+ body:
44
+ encoding: UTF-8
45
+ string: There must be a coordinator set for a language.
46
+ http_version:
47
+ recorded_at: Wed, 03 May 2017 12:45:57 GMT
48
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,53 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://www.transifex.com/api/2/project/ruby-client/languages
6
+ body:
7
+ encoding: UTF-8
8
+ string: "{}"
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ Accept:
13
+ - application/json
14
+ User-Agent:
15
+ - Transifex-interface-ruby/0.0.1
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Authorization:
19
+ - Basic bS5naWFtYml0dG9AZnJlZWdvd2ViLml0Om1vbGxpXzAx
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Server:
26
+ - nginx
27
+ Vary:
28
+ - Accept-Encoding
29
+ - Authorization, Host, Accept-Language, Cookie
30
+ Content-Type:
31
+ - application/json; charset=utf-8
32
+ Date:
33
+ - Wed, 03 May 2017 12:28:37 GMT
34
+ Transfer-Encoding:
35
+ - chunked
36
+ Content-Language:
37
+ - en
38
+ X-Content-Type-Options:
39
+ - nosniff
40
+ Connection:
41
+ - keep-alive
42
+ Set-Cookie:
43
+ - X-Mapping-fjhppofk=371E5B112B2394FA3017E8BE0809059C; path=/
44
+ X-Frame-Options:
45
+ - SAMEORIGIN
46
+ body:
47
+ encoding: ASCII-8BIT
48
+ string: "[\n {\n \"coordinators\": [\n \"nirnaeth\"\n ],
49
+ \n \"language_code\": \"en\", \n \"translators\": [], \n \"reviewers\":
50
+ [\n \"wirido\"\n ]\n }\n]"
51
+ http_version:
52
+ recorded_at: Wed, 03 May 2017 12:28:37 GMT
53
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,108 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: delete
5
+ uri: http://www.transifex.com/api/2/project/private-ruby-client
6
+ body:
7
+ encoding: UTF-8
8
+ string: "{}"
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ Accept:
13
+ - application/json
14
+ User-Agent:
15
+ - Transifex-interface-ruby/0.0.1
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Authorization:
19
+ - Basic bS5naWFtYml0dG9AZnJlZWdvd2ViLml0Om1vbGxpXzAx
20
+ response:
21
+ status:
22
+ code: 204
23
+ message: NO CONTENT
24
+ headers:
25
+ Server:
26
+ - nginx
27
+ Vary:
28
+ - Authorization, Host, Accept-Language, Cookie
29
+ Cache-Control:
30
+ - max-age=0
31
+ Content-Type:
32
+ - text/plain
33
+ Date:
34
+ - Wed, 03 May 2017 14:10:12 GMT
35
+ Expires:
36
+ - Wed, 03 May 2017 14:10:12 GMT
37
+ Content-Language:
38
+ - en
39
+ X-Content-Type-Options:
40
+ - nosniff
41
+ Connection:
42
+ - keep-alive
43
+ Set-Cookie:
44
+ - X-Mapping-fjhppofk=2F71BA404CBE394603A72279804CAC7D; path=/
45
+ Last-Modified:
46
+ - Wed, 03 May 2017 14:10:12 GMT
47
+ X-Frame-Options:
48
+ - SAMEORIGIN
49
+ Content-Length:
50
+ - '0'
51
+ body:
52
+ encoding: UTF-8
53
+ string: ''
54
+ http_version:
55
+ recorded_at: Wed, 03 May 2017 14:10:12 GMT
56
+ - request:
57
+ method: get
58
+ uri: http://www.transifex.com/api/2/project/private-ruby-client
59
+ body:
60
+ encoding: UTF-8
61
+ string: "{}"
62
+ headers:
63
+ Content-Type:
64
+ - application/json
65
+ Accept:
66
+ - application/json
67
+ User-Agent:
68
+ - Transifex-interface-ruby/0.0.1
69
+ Accept-Encoding:
70
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
71
+ Authorization:
72
+ - Basic bS5naWFtYml0dG9AZnJlZWdvd2ViLml0Om1vbGxpXzAx
73
+ response:
74
+ status:
75
+ code: 404
76
+ message: NOT FOUND
77
+ headers:
78
+ Server:
79
+ - nginx
80
+ Vary:
81
+ - Accept-Encoding
82
+ - Authorization, Host, Accept-Language, Cookie
83
+ Cache-Control:
84
+ - max-age=0
85
+ Content-Type:
86
+ - text/plain
87
+ Date:
88
+ - Wed, 03 May 2017 14:10:12 GMT
89
+ Expires:
90
+ - Wed, 03 May 2017 14:10:12 GMT
91
+ Transfer-Encoding:
92
+ - chunked
93
+ Content-Language:
94
+ - en
95
+ Connection:
96
+ - keep-alive
97
+ Set-Cookie:
98
+ - X-Mapping-fjhppofk=A44BEC4CD0B51682CDC2AA3E9CCFDDF4; path=/
99
+ Last-Modified:
100
+ - Wed, 03 May 2017 14:10:12 GMT
101
+ X-Frame-Options:
102
+ - SAMEORIGIN
103
+ body:
104
+ encoding: ASCII-8BIT
105
+ string: Not Found
106
+ http_version:
107
+ recorded_at: Wed, 03 May 2017 14:10:12 GMT
108
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,59 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://www.transifex.com/api/2/project/private-ruby-client
6
+ body:
7
+ encoding: UTF-8
8
+ string: "{}"
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ Accept:
13
+ - application/json
14
+ User-Agent:
15
+ - Transifex-interface-ruby/0.0.1
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Authorization:
19
+ - Basic bS5naWFtYml0dG9AZnJlZWdvd2ViLml0Om1vbGxpXzAx
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Server:
26
+ - nginx
27
+ Vary:
28
+ - Accept-Encoding
29
+ - Authorization, Host, Accept-Language, Cookie
30
+ Cache-Control:
31
+ - max-age=0
32
+ Content-Type:
33
+ - application/json; charset=utf-8
34
+ Date:
35
+ - Wed, 03 May 2017 12:57:41 GMT
36
+ Expires:
37
+ - Wed, 03 May 2017 12:57:41 GMT
38
+ Transfer-Encoding:
39
+ - chunked
40
+ Content-Language:
41
+ - en
42
+ X-Content-Type-Options:
43
+ - nosniff
44
+ Connection:
45
+ - keep-alive
46
+ Set-Cookie:
47
+ - X-Mapping-fjhppofk=371E5B112B2394FA3017E8BE0809059C; path=/
48
+ Last-Modified:
49
+ - Wed, 03 May 2017 12:57:41 GMT
50
+ X-Frame-Options:
51
+ - SAMEORIGIN
52
+ body:
53
+ encoding: ASCII-8BIT
54
+ string: "{\n \"description\": \"Private Ruby Client\", \n \"source_language_code\":
55
+ \"eo\", \n \"slug\": \"private-ruby-client\", \n \"name\": \"Private
56
+ Ruby Client\"\n}"
57
+ http_version:
58
+ recorded_at: Wed, 03 May 2017 12:57:41 GMT
59
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,66 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://www.transifex.com/api/2/project/private-ruby-client?details=true
6
+ body:
7
+ encoding: UTF-8
8
+ string: "{}"
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ Accept:
13
+ - application/json
14
+ User-Agent:
15
+ - Transifex-interface-ruby/0.0.1
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Authorization:
19
+ - Basic bS5naWFtYml0dG9AZnJlZWdvd2ViLml0Om1vbGxpXzAx
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Server:
26
+ - nginx
27
+ Vary:
28
+ - Accept-Encoding
29
+ - Authorization, Host, Accept-Language, Cookie
30
+ Cache-Control:
31
+ - max-age=0
32
+ Content-Type:
33
+ - application/json; charset=utf-8
34
+ Date:
35
+ - Wed, 03 May 2017 13:18:18 GMT
36
+ Expires:
37
+ - Wed, 03 May 2017 13:18:18 GMT
38
+ Transfer-Encoding:
39
+ - chunked
40
+ Content-Language:
41
+ - en
42
+ X-Content-Type-Options:
43
+ - nosniff
44
+ Connection:
45
+ - keep-alive
46
+ Set-Cookie:
47
+ - X-Mapping-fjhppofk=100E7CB61F7D5C274279F09EADF920A3; path=/
48
+ Last-Modified:
49
+ - Wed, 03 May 2017 13:18:18 GMT
50
+ X-Frame-Options:
51
+ - SAMEORIGIN
52
+ body:
53
+ encoding: ASCII-8BIT
54
+ string: "{\n \"archived\": false, \n \"last_updated\": null, \n \"description\":
55
+ \"Private Ruby Client\", \n \"tags\": \"\", \n \"trans_instructions\":
56
+ \"\", \n \"private\": true, \n \"slug\": \"private-ruby-client\", \n
57
+ \ \"source_language_code\": \"eo\", \n \"auto_join\": false, \n \"maintainers\":
58
+ [\n {\n \"username\": \"nirnaeth\"\n }\n ], \n
59
+ \ \"fill_up_resources\": false, \n \"team\": {\n \"id\": 74153,
60
+ \n \"name\": \"Ruby Client team\"\n }, \n \"organization\": {\n
61
+ \ \"slug\": \"freego\"\n }, \n \"teams\": [\n \"en\", \n
62
+ \ \"de\"\n ], \n \"homepage\": \"\", \n \"long_description\":
63
+ \"\", \n \"resources\": [], \n \"name\": \"Private Ruby Client\"\n}"
64
+ http_version:
65
+ recorded_at: Wed, 03 May 2017 13:18:18 GMT
66
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,140 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://www.transifex.com/api/2/project/ruby-client/languages
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"language_code":"it","coordinators":["wirido"]}'
9
+ headers:
10
+ Content-Type:
11
+ - application/json
12
+ Accept:
13
+ - application/json
14
+ User-Agent:
15
+ - Transifex-interface-ruby/0.0.1
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Authorization:
19
+ - Basic bS5naWFtYml0dG9AZnJlZWdvd2ViLml0Om1vbGxpXzAx
20
+ response:
21
+ status:
22
+ code: 201
23
+ message: CREATED
24
+ headers:
25
+ Server:
26
+ - nginx
27
+ Vary:
28
+ - Authorization, Host, Accept-Language, Cookie
29
+ Content-Type:
30
+ - text/plain
31
+ Date:
32
+ - Wed, 03 May 2017 11:07:26 GMT
33
+ Transfer-Encoding:
34
+ - chunked
35
+ Content-Language:
36
+ - en
37
+ Connection:
38
+ - keep-alive
39
+ Set-Cookie:
40
+ - X-Mapping-fjhppofk=371E5B112B2394FA3017E8BE0809059C; path=/
41
+ X-Frame-Options:
42
+ - SAMEORIGIN
43
+ body:
44
+ encoding: UTF-8
45
+ string: Created
46
+ http_version:
47
+ recorded_at: Wed, 03 May 2017 11:07:26 GMT
48
+ - request:
49
+ method: delete
50
+ uri: http://www.transifex.com/api/2/project/ruby-client/language/it
51
+ body:
52
+ encoding: UTF-8
53
+ string: "{}"
54
+ headers:
55
+ Content-Type:
56
+ - application/json
57
+ Accept:
58
+ - application/json
59
+ User-Agent:
60
+ - Transifex-interface-ruby/0.0.1
61
+ Accept-Encoding:
62
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
63
+ Authorization:
64
+ - Basic bS5naWFtYml0dG9AZnJlZWdvd2ViLml0Om1vbGxpXzAx
65
+ response:
66
+ status:
67
+ code: 204
68
+ message: NO CONTENT
69
+ headers:
70
+ Server:
71
+ - nginx
72
+ Vary:
73
+ - Authorization, Host, Accept-Language, Cookie
74
+ Content-Type:
75
+ - text/plain
76
+ Date:
77
+ - Wed, 03 May 2017 11:07:26 GMT
78
+ Content-Language:
79
+ - en
80
+ X-Content-Type-Options:
81
+ - nosniff
82
+ Connection:
83
+ - keep-alive
84
+ Set-Cookie:
85
+ - X-Mapping-fjhppofk=371E5B112B2394FA3017E8BE0809059C; path=/
86
+ X-Frame-Options:
87
+ - SAMEORIGIN
88
+ Content-Length:
89
+ - '0'
90
+ body:
91
+ encoding: UTF-8
92
+ string: ''
93
+ http_version:
94
+ recorded_at: Wed, 03 May 2017 11:07:26 GMT
95
+ - request:
96
+ method: get
97
+ uri: http://www.transifex.com/api/2/project/ruby-client/language/it
98
+ body:
99
+ encoding: UTF-8
100
+ string: "{}"
101
+ headers:
102
+ Content-Type:
103
+ - application/json
104
+ Accept:
105
+ - application/json
106
+ User-Agent:
107
+ - Transifex-interface-ruby/0.0.1
108
+ Accept-Encoding:
109
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
110
+ Authorization:
111
+ - Basic bS5naWFtYml0dG9AZnJlZWdvd2ViLml0Om1vbGxpXzAx
112
+ response:
113
+ status:
114
+ code: 401
115
+ message: UNAUTHORIZED
116
+ headers:
117
+ Server:
118
+ - nginx
119
+ Vary:
120
+ - Authorization, Host, Accept-Language, Cookie
121
+ Content-Type:
122
+ - text/plain
123
+ Date:
124
+ - Wed, 03 May 2017 11:07:27 GMT
125
+ Transfer-Encoding:
126
+ - chunked
127
+ Content-Language:
128
+ - en
129
+ Connection:
130
+ - keep-alive
131
+ Set-Cookie:
132
+ - X-Mapping-fjhppofk=300CA58EE011BC6BC0E393EE4F2B31F6; path=/
133
+ X-Frame-Options:
134
+ - SAMEORIGIN
135
+ body:
136
+ encoding: UTF-8
137
+ string: Forbidden
138
+ http_version:
139
+ recorded_at: Wed, 03 May 2017 11:07:27 GMT
140
+ recorded_with: VCR 3.0.3