reqcord 0.1.1 → 0.1.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 (223) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/Gemfile +5 -0
  4. data/README.md +13 -0
  5. data/gemfiles/rails_7.1.gemfile +13 -0
  6. data/gemfiles/rails_7.2.gemfile +13 -0
  7. data/gemfiles/rails_8.0.gemfile +13 -0
  8. data/gemfiles/rails_8.1.gemfile +13 -0
  9. data/lib/reqcord/version.rb +1 -1
  10. data/reqcord.gemspec +18 -4
  11. metadata +65 -217
  12. data/.gitignore +0 -8
  13. data/Gemfile.lock +0 -171
  14. data/examples/complex-spec-app/.rspec +0 -1
  15. data/examples/complex-spec-app/README.md +0 -21
  16. data/examples/complex-spec-app/app.rb +0 -363
  17. data/examples/complex-spec-app/docs/api/README.md +0 -104
  18. data/examples/complex-spec-app/docs/api/api/v1/admin/products/create.md +0 -117
  19. data/examples/complex-spec-app/docs/api/api/v1/admin/products/destroy.md +0 -51
  20. data/examples/complex-spec-app/docs/api/api/v1/admin/products/index.md +0 -11
  21. data/examples/complex-spec-app/docs/api/api/v1/admin/products/list.md +0 -106
  22. data/examples/complex-spec-app/docs/api/api/v1/auth/index.md +0 -9
  23. data/examples/complex-spec-app/docs/api/api/v1/auth/login.md +0 -76
  24. data/examples/complex-spec-app/docs/api/api/v1/cart-items/create.md +0 -91
  25. data/examples/complex-spec-app/docs/api/api/v1/cart-items/destroy.md +0 -51
  26. data/examples/complex-spec-app/docs/api/api/v1/cart-items/index.md +0 -10
  27. data/examples/complex-spec-app/docs/api/api/v1/carts/checkout.md +0 -102
  28. data/examples/complex-spec-app/docs/api/api/v1/carts/index.md +0 -10
  29. data/examples/complex-spec-app/docs/api/api/v1/carts/show.md +0 -73
  30. data/examples/complex-spec-app/docs/api/api/v1/home/index.md +0 -9
  31. data/examples/complex-spec-app/docs/api/api/v1/home/list.md +0 -47
  32. data/examples/complex-spec-app/docs/api/api/v1/notes/create.md +0 -94
  33. data/examples/complex-spec-app/docs/api/api/v1/notes/index.md +0 -10
  34. data/examples/complex-spec-app/docs/api/api/v1/notes/list.md +0 -61
  35. data/examples/complex-spec-app/docs/api/api/v1/orders/cancel.md +0 -69
  36. data/examples/complex-spec-app/docs/api/api/v1/orders/create.md +0 -150
  37. data/examples/complex-spec-app/docs/api/api/v1/orders/destroy.md +0 -37
  38. data/examples/complex-spec-app/docs/api/api/v1/orders/index.md +0 -13
  39. data/examples/complex-spec-app/docs/api/api/v1/orders/list.md +0 -78
  40. data/examples/complex-spec-app/docs/api/api/v1/orders/show.md +0 -83
  41. data/examples/complex-spec-app/docs/api/api/v1/products/index.md +0 -11
  42. data/examples/complex-spec-app/docs/api/api/v1/products/list.md +0 -83
  43. data/examples/complex-spec-app/docs/api/api/v1/products/search.md +0 -88
  44. data/examples/complex-spec-app/docs/api/api/v1/products/show.md +0 -71
  45. data/examples/complex-spec-app/docs/api/api/v1/profiles/index.md +0 -10
  46. data/examples/complex-spec-app/docs/api/api/v1/profiles/show.md +0 -61
  47. data/examples/complex-spec-app/docs/api/api/v1/profiles/update.md +0 -91
  48. data/examples/complex-spec-app/docs/api/api/v2/products/index.md +0 -9
  49. data/examples/complex-spec-app/docs/api/api/v2/products/list.md +0 -77
  50. data/examples/complex-spec-app/docs/api/curl/api/v1/admin/products/create.sh +0 -18
  51. data/examples/complex-spec-app/docs/api/curl/api/v1/admin/products/destroy.sh +0 -9
  52. data/examples/complex-spec-app/docs/api/curl/api/v1/admin/products/list.sh +0 -9
  53. data/examples/complex-spec-app/docs/api/curl/api/v1/auth/login.sh +0 -9
  54. data/examples/complex-spec-app/docs/api/curl/api/v1/cart-items/create.sh +0 -16
  55. data/examples/complex-spec-app/docs/api/curl/api/v1/cart-items/destroy.sh +0 -9
  56. data/examples/complex-spec-app/docs/api/curl/api/v1/carts/checkout.sh +0 -13
  57. data/examples/complex-spec-app/docs/api/curl/api/v1/carts/show.sh +0 -9
  58. data/examples/complex-spec-app/docs/api/curl/api/v1/home/list.sh +0 -8
  59. data/examples/complex-spec-app/docs/api/curl/api/v1/notes/create.sh +0 -15
  60. data/examples/complex-spec-app/docs/api/curl/api/v1/notes/list.sh +0 -9
  61. data/examples/complex-spec-app/docs/api/curl/api/v1/orders/cancel.sh +0 -9
  62. data/examples/complex-spec-app/docs/api/curl/api/v1/orders/create.sh +0 -29
  63. data/examples/complex-spec-app/docs/api/curl/api/v1/orders/destroy.sh +0 -9
  64. data/examples/complex-spec-app/docs/api/curl/api/v1/orders/list.sh +0 -9
  65. data/examples/complex-spec-app/docs/api/curl/api/v1/orders/show.sh +0 -9
  66. data/examples/complex-spec-app/docs/api/curl/api/v1/products/list.sh +0 -8
  67. data/examples/complex-spec-app/docs/api/curl/api/v1/products/search.sh +0 -8
  68. data/examples/complex-spec-app/docs/api/curl/api/v1/products/show.sh +0 -8
  69. data/examples/complex-spec-app/docs/api/curl/api/v1/profiles/show.sh +0 -9
  70. data/examples/complex-spec-app/docs/api/curl/api/v1/profiles/update.sh +0 -16
  71. data/examples/complex-spec-app/docs/api/curl/api/v2/products/list.sh +0 -8
  72. data/examples/complex-spec-app/docs/api/dataset.json +0 -5116
  73. data/examples/complex-spec-app/docs/api/postman/collection.json +0 -2519
  74. data/examples/complex-spec-app/generate.rb +0 -14
  75. data/examples/complex-spec-app/reqcord.yml +0 -28
  76. data/examples/complex-spec-app/spec/requests/admin_spec.rb +0 -67
  77. data/examples/complex-spec-app/spec/requests/cart_spec.rb +0 -61
  78. data/examples/complex-spec-app/spec/requests/home_and_auth_spec.rb +0 -49
  79. data/examples/complex-spec-app/spec/requests/orders_spec.rb +0 -124
  80. data/examples/complex-spec-app/spec/requests/products_spec.rb +0 -65
  81. data/examples/complex-spec-app/spec/spec_helper.rb +0 -17
  82. data/examples/complex-test-app/README.md +0 -40
  83. data/examples/complex-test-app/app.rb +0 -384
  84. data/examples/complex-test-app/docs/api/README.md +0 -104
  85. data/examples/complex-test-app/docs/api/api/v1/admin/products/create.md +0 -117
  86. data/examples/complex-test-app/docs/api/api/v1/admin/products/destroy.md +0 -51
  87. data/examples/complex-test-app/docs/api/api/v1/admin/products/index.md +0 -11
  88. data/examples/complex-test-app/docs/api/api/v1/admin/products/list.md +0 -106
  89. data/examples/complex-test-app/docs/api/api/v1/auth/index.md +0 -9
  90. data/examples/complex-test-app/docs/api/api/v1/auth/login.md +0 -76
  91. data/examples/complex-test-app/docs/api/api/v1/cart-items/create.md +0 -91
  92. data/examples/complex-test-app/docs/api/api/v1/cart-items/destroy.md +0 -51
  93. data/examples/complex-test-app/docs/api/api/v1/cart-items/index.md +0 -10
  94. data/examples/complex-test-app/docs/api/api/v1/carts/checkout.md +0 -102
  95. data/examples/complex-test-app/docs/api/api/v1/carts/index.md +0 -10
  96. data/examples/complex-test-app/docs/api/api/v1/carts/show.md +0 -73
  97. data/examples/complex-test-app/docs/api/api/v1/home/index.md +0 -9
  98. data/examples/complex-test-app/docs/api/api/v1/home/list.md +0 -47
  99. data/examples/complex-test-app/docs/api/api/v1/notes/create.md +0 -94
  100. data/examples/complex-test-app/docs/api/api/v1/notes/index.md +0 -10
  101. data/examples/complex-test-app/docs/api/api/v1/notes/list.md +0 -61
  102. data/examples/complex-test-app/docs/api/api/v1/orders/cancel.md +0 -69
  103. data/examples/complex-test-app/docs/api/api/v1/orders/create.md +0 -150
  104. data/examples/complex-test-app/docs/api/api/v1/orders/destroy.md +0 -37
  105. data/examples/complex-test-app/docs/api/api/v1/orders/index.md +0 -13
  106. data/examples/complex-test-app/docs/api/api/v1/orders/list.md +0 -71
  107. data/examples/complex-test-app/docs/api/api/v1/orders/show.md +0 -83
  108. data/examples/complex-test-app/docs/api/api/v1/products/index.md +0 -11
  109. data/examples/complex-test-app/docs/api/api/v1/products/list.md +0 -83
  110. data/examples/complex-test-app/docs/api/api/v1/products/search.md +0 -88
  111. data/examples/complex-test-app/docs/api/api/v1/products/show.md +0 -71
  112. data/examples/complex-test-app/docs/api/api/v1/profiles/index.md +0 -10
  113. data/examples/complex-test-app/docs/api/api/v1/profiles/show.md +0 -61
  114. data/examples/complex-test-app/docs/api/api/v1/profiles/update.md +0 -91
  115. data/examples/complex-test-app/docs/api/api/v2/products/index.md +0 -9
  116. data/examples/complex-test-app/docs/api/api/v2/products/list.md +0 -77
  117. data/examples/complex-test-app/docs/api/curl/api/v1/admin/products/create.sh +0 -18
  118. data/examples/complex-test-app/docs/api/curl/api/v1/admin/products/destroy.sh +0 -9
  119. data/examples/complex-test-app/docs/api/curl/api/v1/admin/products/list.sh +0 -9
  120. data/examples/complex-test-app/docs/api/curl/api/v1/auth/login.sh +0 -9
  121. data/examples/complex-test-app/docs/api/curl/api/v1/cart-items/create.sh +0 -16
  122. data/examples/complex-test-app/docs/api/curl/api/v1/cart-items/destroy.sh +0 -9
  123. data/examples/complex-test-app/docs/api/curl/api/v1/carts/checkout.sh +0 -13
  124. data/examples/complex-test-app/docs/api/curl/api/v1/carts/show.sh +0 -9
  125. data/examples/complex-test-app/docs/api/curl/api/v1/home/list.sh +0 -8
  126. data/examples/complex-test-app/docs/api/curl/api/v1/notes/create.sh +0 -15
  127. data/examples/complex-test-app/docs/api/curl/api/v1/notes/list.sh +0 -9
  128. data/examples/complex-test-app/docs/api/curl/api/v1/orders/cancel.sh +0 -9
  129. data/examples/complex-test-app/docs/api/curl/api/v1/orders/create.sh +0 -29
  130. data/examples/complex-test-app/docs/api/curl/api/v1/orders/destroy.sh +0 -9
  131. data/examples/complex-test-app/docs/api/curl/api/v1/orders/list.sh +0 -9
  132. data/examples/complex-test-app/docs/api/curl/api/v1/orders/show.sh +0 -9
  133. data/examples/complex-test-app/docs/api/curl/api/v1/products/list.sh +0 -8
  134. data/examples/complex-test-app/docs/api/curl/api/v1/products/search.sh +0 -8
  135. data/examples/complex-test-app/docs/api/curl/api/v1/products/show.sh +0 -8
  136. data/examples/complex-test-app/docs/api/curl/api/v1/profiles/show.sh +0 -9
  137. data/examples/complex-test-app/docs/api/curl/api/v1/profiles/update.sh +0 -16
  138. data/examples/complex-test-app/docs/api/curl/api/v2/products/list.sh +0 -8
  139. data/examples/complex-test-app/docs/api/dataset.json +0 -5109
  140. data/examples/complex-test-app/docs/api/postman/collection.json +0 -2568
  141. data/examples/complex-test-app/generate.rb +0 -14
  142. data/examples/complex-test-app/reqcord.yml +0 -28
  143. data/examples/complex-test-app/test/integration/admin_test.rb +0 -70
  144. data/examples/complex-test-app/test/integration/cart_test.rb +0 -64
  145. data/examples/complex-test-app/test/integration/home_and_auth_test.rb +0 -53
  146. data/examples/complex-test-app/test/integration/orders_test.rb +0 -127
  147. data/examples/complex-test-app/test/integration/products_test.rb +0 -66
  148. data/examples/spec-app/.rspec +0 -1
  149. data/examples/spec-app/README.md +0 -36
  150. data/examples/spec-app/app.rb +0 -209
  151. data/examples/spec-app/docs/api/README.md +0 -45
  152. data/examples/spec-app/docs/api/api/v1/customers/create.md +0 -95
  153. data/examples/spec-app/docs/api/api/v1/customers/index.md +0 -11
  154. data/examples/spec-app/docs/api/api/v1/customers/list.md +0 -67
  155. data/examples/spec-app/docs/api/api/v1/customers/show.md +0 -65
  156. data/examples/spec-app/docs/api/api/v1/tasks/complete.md +0 -51
  157. data/examples/spec-app/docs/api/api/v1/tasks/create.md +0 -90
  158. data/examples/spec-app/docs/api/api/v1/tasks/destroy.md +0 -35
  159. data/examples/spec-app/docs/api/api/v1/tasks/index.md +0 -14
  160. data/examples/spec-app/docs/api/api/v1/tasks/list.md +0 -65
  161. data/examples/spec-app/docs/api/api/v1/tasks/show.md +0 -65
  162. data/examples/spec-app/docs/api/api/v1/tasks/update.md +0 -74
  163. data/examples/spec-app/docs/api/api/v1/users/create.md +0 -95
  164. data/examples/spec-app/docs/api/api/v1/users/index.md +0 -11
  165. data/examples/spec-app/docs/api/api/v1/users/list.md +0 -67
  166. data/examples/spec-app/docs/api/api/v1/users/show.md +0 -65
  167. data/examples/spec-app/docs/api/curl/api/v1/customers/create.sh +0 -17
  168. data/examples/spec-app/docs/api/curl/api/v1/customers/list.sh +0 -9
  169. data/examples/spec-app/docs/api/curl/api/v1/customers/show.sh +0 -9
  170. data/examples/spec-app/docs/api/curl/api/v1/tasks/complete.sh +0 -8
  171. data/examples/spec-app/docs/api/curl/api/v1/tasks/create.sh +0 -15
  172. data/examples/spec-app/docs/api/curl/api/v1/tasks/destroy.sh +0 -8
  173. data/examples/spec-app/docs/api/curl/api/v1/tasks/list.sh +0 -8
  174. data/examples/spec-app/docs/api/curl/api/v1/tasks/show.sh +0 -8
  175. data/examples/spec-app/docs/api/curl/api/v1/tasks/update.sh +0 -14
  176. data/examples/spec-app/docs/api/curl/api/v1/users/create.sh +0 -17
  177. data/examples/spec-app/docs/api/curl/api/v1/users/list.sh +0 -9
  178. data/examples/spec-app/docs/api/curl/api/v1/users/show.sh +0 -9
  179. data/examples/spec-app/docs/api/dataset.json +0 -2402
  180. data/examples/spec-app/docs/api/postman/collection.json +0 -1290
  181. data/examples/spec-app/generate.rb +0 -14
  182. data/examples/spec-app/reqcord.yml +0 -27
  183. data/examples/spec-app/spec/requests/customers_spec.rb +0 -71
  184. data/examples/spec-app/spec/requests/tasks_spec.rb +0 -78
  185. data/examples/spec-app/spec/requests/users_spec.rb +0 -68
  186. data/examples/spec-app/spec/spec_helper.rb +0 -17
  187. data/examples/test-app/README.md +0 -57
  188. data/examples/test-app/app.rb +0 -212
  189. data/examples/test-app/docs/api/README.md +0 -45
  190. data/examples/test-app/docs/api/api/v1/customers/create.md +0 -95
  191. data/examples/test-app/docs/api/api/v1/customers/index.md +0 -11
  192. data/examples/test-app/docs/api/api/v1/customers/list.md +0 -67
  193. data/examples/test-app/docs/api/api/v1/customers/show.md +0 -65
  194. data/examples/test-app/docs/api/api/v1/tasks/complete.md +0 -51
  195. data/examples/test-app/docs/api/api/v1/tasks/create.md +0 -90
  196. data/examples/test-app/docs/api/api/v1/tasks/destroy.md +0 -35
  197. data/examples/test-app/docs/api/api/v1/tasks/index.md +0 -14
  198. data/examples/test-app/docs/api/api/v1/tasks/list.md +0 -65
  199. data/examples/test-app/docs/api/api/v1/tasks/show.md +0 -65
  200. data/examples/test-app/docs/api/api/v1/tasks/update.md +0 -74
  201. data/examples/test-app/docs/api/api/v1/users/create.md +0 -95
  202. data/examples/test-app/docs/api/api/v1/users/index.md +0 -11
  203. data/examples/test-app/docs/api/api/v1/users/list.md +0 -67
  204. data/examples/test-app/docs/api/api/v1/users/show.md +0 -65
  205. data/examples/test-app/docs/api/curl/api/v1/customers/create.sh +0 -17
  206. data/examples/test-app/docs/api/curl/api/v1/customers/list.sh +0 -9
  207. data/examples/test-app/docs/api/curl/api/v1/customers/show.sh +0 -9
  208. data/examples/test-app/docs/api/curl/api/v1/tasks/complete.sh +0 -8
  209. data/examples/test-app/docs/api/curl/api/v1/tasks/create.sh +0 -15
  210. data/examples/test-app/docs/api/curl/api/v1/tasks/destroy.sh +0 -8
  211. data/examples/test-app/docs/api/curl/api/v1/tasks/list.sh +0 -8
  212. data/examples/test-app/docs/api/curl/api/v1/tasks/show.sh +0 -8
  213. data/examples/test-app/docs/api/curl/api/v1/tasks/update.sh +0 -14
  214. data/examples/test-app/docs/api/curl/api/v1/users/create.sh +0 -17
  215. data/examples/test-app/docs/api/curl/api/v1/users/list.sh +0 -9
  216. data/examples/test-app/docs/api/curl/api/v1/users/show.sh +0 -9
  217. data/examples/test-app/docs/api/dataset.json +0 -2402
  218. data/examples/test-app/docs/api/postman/collection.json +0 -1290
  219. data/examples/test-app/generate.rb +0 -14
  220. data/examples/test-app/reqcord.yml +0 -28
  221. data/examples/test-app/test/integration/customers_test.rb +0 -72
  222. data/examples/test-app/test/integration/tasks_test.rb +0 -80
  223. data/examples/test-app/test/integration/users_test.rb +0 -72
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2203f5a2f9ca4548874caf3a40a93c8fbe5a73e6f9d916f6162cbd843fec4341
4
- data.tar.gz: 05b67df4290c1e6aeba3e5a29416df3f5e779c2d5fcf3eef6cfd76e4a8fabdb8
3
+ metadata.gz: 71c23f11e62a357bbc63bc7479cd77d65da3245062b9c0594e4b3d3dc0421fd2
4
+ data.tar.gz: d20cfd0db3a617adc966f2641da79c155be232baad7fb94b47db235820da3a2d
5
5
  SHA512:
6
- metadata.gz: 11602f1a318f214c92cec4f68723d47ba8b237fa8fb4d7a46e2fe2628168441e9ab3ec8f1f8cf73922f2b3bc5ac0954876e2904e03f9454fd8c99faa7648141f
7
- data.tar.gz: a273eb86d0b0939215a3375054239c2361d1520c0bf2c8faa8429ae15a9db8c1d923cf005731bd8690da67529496217c807d75abb760f2d963588109273f9e9e
6
+ metadata.gz: a5c2d1ebe2463d5c3647e843d4f70b04114fe3d225a8059b5e6e09d9461945305203c5bbfe4189039a8b48edc713cf39a3d0e5cafadefb6648f62f70aaff4595
7
+ data.tar.gz: 98406f42d54d21b3d7854a4b36960be53cfe0293be738ca1d1e64194215920b4194c30649a730662e078d4b9558298c1ec9a13d15096207bb4a99257733d4b1f
data/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.2] - Unreleased
4
+
5
+ ### Added
6
+
7
+ * Rails 7.1 and 7.2 are supported alongside 8.x (Ruby 3.2+); CI runs every
8
+ supported Ruby × Rails pair through `gemfiles/`.
9
+
10
+ ### Fixed
11
+
12
+ * CI resolves the bundle per Ruby (no committed `Gemfile.lock`) and pins
13
+ `json < 3` for development: activesupport 8.1 calls `JSON.parse(json,
14
+ options)`, a signature json 3.0 dropped.
15
+
3
16
  ## [0.1.1] - 2026-09-15
4
17
 
5
18
  ### Added
data/Gemfile CHANGED
@@ -3,3 +3,8 @@
3
3
  source "https://rubygems.org"
4
4
 
5
5
  gemspec
6
+
7
+ # activesupport 8.1.3.1 calls JSON.parse(json, options), a signature json 3.0
8
+ # dropped, so every JSON request body fails to parse with a 400. Development
9
+ # only: the gemspec leaves json to the host application and to Rails.
10
+ gem "json", "< 3"
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Reqcord
2
2
 
3
+ [![CI](https://github.com/ahmetsaridogan/reqcord/actions/workflows/ci.yml/badge.svg)](https://github.com/ahmetsaridogan/reqcord/actions/workflows/ci.yml)
4
+
3
5
  **Turn your Rails integration tests into living API documentation.**
4
6
 
5
7
  Reqcord observes real HTTP requests and responses executed by your Rails test suite and converts them into static, readable API documentation.
@@ -212,6 +214,17 @@ The internal dataset is framework-independent and output-independent.
212
214
 
213
215
  This allows Reqcord to support additional test frameworks and documentation formats without coupling them together.
214
216
 
217
+ ## Supported versions
218
+
219
+ | | |
220
+ | --- | --- |
221
+ | Ruby | 3.2, 3.3, 3.4 |
222
+ | Rails | 7.1, 7.2, 8.0, 8.1 |
223
+ | Test frameworks | Minitest integration tests, RSpec request specs |
224
+
225
+ Every Ruby × Rails pair that Rails itself supports runs in CI
226
+ (`gemfiles/rails_*.gemfile`).
227
+
215
228
  ## Installation
216
229
 
217
230
  Add Reqcord to the development and test groups:
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ # CI: BUNDLE_GEMFILE=gemfiles/rails_7.1.gemfile bundle exec rake test
4
+
5
+ source "https://rubygems.org"
6
+
7
+ gemspec path: ".."
8
+
9
+ gem "railties", "~> 7.1.0"
10
+ gem "actionpack", "~> 7.1.0"
11
+
12
+ # activesupport calls JSON.parse(json, options); json 3.0 dropped that signature.
13
+ gem "json", "< 3"
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ # CI: BUNDLE_GEMFILE=gemfiles/rails_7.2.gemfile bundle exec rake test
4
+
5
+ source "https://rubygems.org"
6
+
7
+ gemspec path: ".."
8
+
9
+ gem "railties", "~> 7.2.0"
10
+ gem "actionpack", "~> 7.2.0"
11
+
12
+ # activesupport calls JSON.parse(json, options); json 3.0 dropped that signature.
13
+ gem "json", "< 3"
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ # CI: BUNDLE_GEMFILE=gemfiles/rails_8.0.gemfile bundle exec rake test
4
+
5
+ source "https://rubygems.org"
6
+
7
+ gemspec path: ".."
8
+
9
+ gem "railties", "~> 8.0.0"
10
+ gem "actionpack", "~> 8.0.0"
11
+
12
+ # activesupport calls JSON.parse(json, options); json 3.0 dropped that signature.
13
+ gem "json", "< 3"
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ # CI: BUNDLE_GEMFILE=gemfiles/rails_8.1.gemfile bundle exec rake test
4
+
5
+ source "https://rubygems.org"
6
+
7
+ gemspec path: ".."
8
+
9
+ gem "railties", "~> 8.1.0"
10
+ gem "actionpack", "~> 8.1.0"
11
+
12
+ # activesupport calls JSON.parse(json, options); json 3.0 dropped that signature.
13
+ gem "json", "< 3"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Reqcord
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.2"
5
5
  end
data/reqcord.gemspec CHANGED
@@ -24,23 +24,37 @@ Gem::Specification.new do |spec|
24
24
  spec.metadata["source_code_uri"] = spec.homepage
25
25
  spec.metadata["rubygems_mfa_required"] = "true"
26
26
 
27
+ # What ships: lib/, the rake task, the docs and the annotated config. Tests,
28
+ # CI files and the example apps (with their generated output) stay on
29
+ # GitHub — `git ls-files` runs against the checkout, so `gem build` must be
30
+ # run from the repository root.
27
31
  spec.files = Dir.chdir(__dir__) do
28
32
  `git ls-files -z`.split("\x0").reject do |file|
29
33
  file.start_with?(
30
34
  "test/",
31
35
  "spec/",
32
36
  "features/",
33
- ".git/",
37
+ "examples/",
38
+ ".git",
34
39
  ".github/"
35
40
  ) || file.end_with?(".gem")
36
- end
41
+ end + ["examples/reqcord.yml"]
37
42
  end
38
43
 
39
44
  spec.require_paths = ["lib"]
40
45
 
41
- spec.add_dependency "railties", ">= 8.0", "< 9.0"
42
- spec.add_dependency "actionpack", ">= 8.0", "< 9.0"
46
+ # Rails 7.1 through 8.x; every version is exercised in CI (see gemfiles/).
47
+ spec.add_dependency "railties", ">= 7.1", "< 9.0"
48
+ spec.add_dependency "actionpack", ">= 7.1", "< 9.0"
43
49
 
44
50
  spec.add_development_dependency "minitest"
45
51
  spec.add_development_dependency "rake"
52
+
53
+ # The test suite serves the dummy app over HTTP to replay the generated
54
+ # cURL and Postman collection, validates the collection against the
55
+ # Postman schema, and runs the RSpec example apps.
56
+ spec.add_development_dependency "puma"
57
+ spec.add_development_dependency "json-schema"
58
+ spec.add_development_dependency "rspec-core"
59
+ spec.add_development_dependency "rspec-expectations"
46
60
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reqcord
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ahmet Saridogan
@@ -15,7 +15,7 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: '8.0'
18
+ version: '7.1'
19
19
  - - "<"
20
20
  - !ruby/object:Gem::Version
21
21
  version: '9.0'
@@ -25,7 +25,7 @@ dependencies:
25
25
  requirements:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
- version: '8.0'
28
+ version: '7.1'
29
29
  - - "<"
30
30
  - !ruby/object:Gem::Version
31
31
  version: '9.0'
@@ -35,7 +35,7 @@ dependencies:
35
35
  requirements:
36
36
  - - ">="
37
37
  - !ruby/object:Gem::Version
38
- version: '8.0'
38
+ version: '7.1'
39
39
  - - "<"
40
40
  - !ruby/object:Gem::Version
41
41
  version: '9.0'
@@ -45,7 +45,7 @@ dependencies:
45
45
  requirements:
46
46
  - - ">="
47
47
  - !ruby/object:Gem::Version
48
- version: '8.0'
48
+ version: '7.1'
49
49
  - - "<"
50
50
  - !ruby/object:Gem::Version
51
51
  version: '9.0'
@@ -77,6 +77,62 @@ dependencies:
77
77
  - - ">="
78
78
  - !ruby/object:Gem::Version
79
79
  version: '0'
80
+ - !ruby/object:Gem::Dependency
81
+ name: puma
82
+ requirement: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: json-schema
96
+ requirement: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
101
+ type: :development
102
+ prerelease: false
103
+ version_requirements: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ - !ruby/object:Gem::Dependency
109
+ name: rspec-core
110
+ requirement: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ type: :development
116
+ prerelease: false
117
+ version_requirements: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ - !ruby/object:Gem::Dependency
123
+ name: rspec-expectations
124
+ requirement: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ type: :development
130
+ prerelease: false
131
+ version_requirements: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: '0'
80
136
  description: |
81
137
  Reqcord captures HTTP requests and responses from Rails integration tests
82
138
  and generates static API documentation with executable cURL examples.
@@ -84,225 +140,17 @@ executables: []
84
140
  extensions: []
85
141
  extra_rdoc_files: []
86
142
  files:
87
- - ".gitignore"
88
143
  - CHANGELOG.md
89
144
  - Gemfile
90
- - Gemfile.lock
91
145
  - LICENSE.txt
92
146
  - README.md
93
147
  - Rakefile
94
148
  - docs/configuration.md
95
- - examples/complex-spec-app/.rspec
96
- - examples/complex-spec-app/README.md
97
- - examples/complex-spec-app/app.rb
98
- - examples/complex-spec-app/docs/api/README.md
99
- - examples/complex-spec-app/docs/api/api/v1/admin/products/create.md
100
- - examples/complex-spec-app/docs/api/api/v1/admin/products/destroy.md
101
- - examples/complex-spec-app/docs/api/api/v1/admin/products/index.md
102
- - examples/complex-spec-app/docs/api/api/v1/admin/products/list.md
103
- - examples/complex-spec-app/docs/api/api/v1/auth/index.md
104
- - examples/complex-spec-app/docs/api/api/v1/auth/login.md
105
- - examples/complex-spec-app/docs/api/api/v1/cart-items/create.md
106
- - examples/complex-spec-app/docs/api/api/v1/cart-items/destroy.md
107
- - examples/complex-spec-app/docs/api/api/v1/cart-items/index.md
108
- - examples/complex-spec-app/docs/api/api/v1/carts/checkout.md
109
- - examples/complex-spec-app/docs/api/api/v1/carts/index.md
110
- - examples/complex-spec-app/docs/api/api/v1/carts/show.md
111
- - examples/complex-spec-app/docs/api/api/v1/home/index.md
112
- - examples/complex-spec-app/docs/api/api/v1/home/list.md
113
- - examples/complex-spec-app/docs/api/api/v1/notes/create.md
114
- - examples/complex-spec-app/docs/api/api/v1/notes/index.md
115
- - examples/complex-spec-app/docs/api/api/v1/notes/list.md
116
- - examples/complex-spec-app/docs/api/api/v1/orders/cancel.md
117
- - examples/complex-spec-app/docs/api/api/v1/orders/create.md
118
- - examples/complex-spec-app/docs/api/api/v1/orders/destroy.md
119
- - examples/complex-spec-app/docs/api/api/v1/orders/index.md
120
- - examples/complex-spec-app/docs/api/api/v1/orders/list.md
121
- - examples/complex-spec-app/docs/api/api/v1/orders/show.md
122
- - examples/complex-spec-app/docs/api/api/v1/products/index.md
123
- - examples/complex-spec-app/docs/api/api/v1/products/list.md
124
- - examples/complex-spec-app/docs/api/api/v1/products/search.md
125
- - examples/complex-spec-app/docs/api/api/v1/products/show.md
126
- - examples/complex-spec-app/docs/api/api/v1/profiles/index.md
127
- - examples/complex-spec-app/docs/api/api/v1/profiles/show.md
128
- - examples/complex-spec-app/docs/api/api/v1/profiles/update.md
129
- - examples/complex-spec-app/docs/api/api/v2/products/index.md
130
- - examples/complex-spec-app/docs/api/api/v2/products/list.md
131
- - examples/complex-spec-app/docs/api/curl/api/v1/admin/products/create.sh
132
- - examples/complex-spec-app/docs/api/curl/api/v1/admin/products/destroy.sh
133
- - examples/complex-spec-app/docs/api/curl/api/v1/admin/products/list.sh
134
- - examples/complex-spec-app/docs/api/curl/api/v1/auth/login.sh
135
- - examples/complex-spec-app/docs/api/curl/api/v1/cart-items/create.sh
136
- - examples/complex-spec-app/docs/api/curl/api/v1/cart-items/destroy.sh
137
- - examples/complex-spec-app/docs/api/curl/api/v1/carts/checkout.sh
138
- - examples/complex-spec-app/docs/api/curl/api/v1/carts/show.sh
139
- - examples/complex-spec-app/docs/api/curl/api/v1/home/list.sh
140
- - examples/complex-spec-app/docs/api/curl/api/v1/notes/create.sh
141
- - examples/complex-spec-app/docs/api/curl/api/v1/notes/list.sh
142
- - examples/complex-spec-app/docs/api/curl/api/v1/orders/cancel.sh
143
- - examples/complex-spec-app/docs/api/curl/api/v1/orders/create.sh
144
- - examples/complex-spec-app/docs/api/curl/api/v1/orders/destroy.sh
145
- - examples/complex-spec-app/docs/api/curl/api/v1/orders/list.sh
146
- - examples/complex-spec-app/docs/api/curl/api/v1/orders/show.sh
147
- - examples/complex-spec-app/docs/api/curl/api/v1/products/list.sh
148
- - examples/complex-spec-app/docs/api/curl/api/v1/products/search.sh
149
- - examples/complex-spec-app/docs/api/curl/api/v1/products/show.sh
150
- - examples/complex-spec-app/docs/api/curl/api/v1/profiles/show.sh
151
- - examples/complex-spec-app/docs/api/curl/api/v1/profiles/update.sh
152
- - examples/complex-spec-app/docs/api/curl/api/v2/products/list.sh
153
- - examples/complex-spec-app/docs/api/dataset.json
154
- - examples/complex-spec-app/docs/api/postman/collection.json
155
- - examples/complex-spec-app/generate.rb
156
- - examples/complex-spec-app/reqcord.yml
157
- - examples/complex-spec-app/spec/requests/admin_spec.rb
158
- - examples/complex-spec-app/spec/requests/cart_spec.rb
159
- - examples/complex-spec-app/spec/requests/home_and_auth_spec.rb
160
- - examples/complex-spec-app/spec/requests/orders_spec.rb
161
- - examples/complex-spec-app/spec/requests/products_spec.rb
162
- - examples/complex-spec-app/spec/spec_helper.rb
163
- - examples/complex-test-app/README.md
164
- - examples/complex-test-app/app.rb
165
- - examples/complex-test-app/docs/api/README.md
166
- - examples/complex-test-app/docs/api/api/v1/admin/products/create.md
167
- - examples/complex-test-app/docs/api/api/v1/admin/products/destroy.md
168
- - examples/complex-test-app/docs/api/api/v1/admin/products/index.md
169
- - examples/complex-test-app/docs/api/api/v1/admin/products/list.md
170
- - examples/complex-test-app/docs/api/api/v1/auth/index.md
171
- - examples/complex-test-app/docs/api/api/v1/auth/login.md
172
- - examples/complex-test-app/docs/api/api/v1/cart-items/create.md
173
- - examples/complex-test-app/docs/api/api/v1/cart-items/destroy.md
174
- - examples/complex-test-app/docs/api/api/v1/cart-items/index.md
175
- - examples/complex-test-app/docs/api/api/v1/carts/checkout.md
176
- - examples/complex-test-app/docs/api/api/v1/carts/index.md
177
- - examples/complex-test-app/docs/api/api/v1/carts/show.md
178
- - examples/complex-test-app/docs/api/api/v1/home/index.md
179
- - examples/complex-test-app/docs/api/api/v1/home/list.md
180
- - examples/complex-test-app/docs/api/api/v1/notes/create.md
181
- - examples/complex-test-app/docs/api/api/v1/notes/index.md
182
- - examples/complex-test-app/docs/api/api/v1/notes/list.md
183
- - examples/complex-test-app/docs/api/api/v1/orders/cancel.md
184
- - examples/complex-test-app/docs/api/api/v1/orders/create.md
185
- - examples/complex-test-app/docs/api/api/v1/orders/destroy.md
186
- - examples/complex-test-app/docs/api/api/v1/orders/index.md
187
- - examples/complex-test-app/docs/api/api/v1/orders/list.md
188
- - examples/complex-test-app/docs/api/api/v1/orders/show.md
189
- - examples/complex-test-app/docs/api/api/v1/products/index.md
190
- - examples/complex-test-app/docs/api/api/v1/products/list.md
191
- - examples/complex-test-app/docs/api/api/v1/products/search.md
192
- - examples/complex-test-app/docs/api/api/v1/products/show.md
193
- - examples/complex-test-app/docs/api/api/v1/profiles/index.md
194
- - examples/complex-test-app/docs/api/api/v1/profiles/show.md
195
- - examples/complex-test-app/docs/api/api/v1/profiles/update.md
196
- - examples/complex-test-app/docs/api/api/v2/products/index.md
197
- - examples/complex-test-app/docs/api/api/v2/products/list.md
198
- - examples/complex-test-app/docs/api/curl/api/v1/admin/products/create.sh
199
- - examples/complex-test-app/docs/api/curl/api/v1/admin/products/destroy.sh
200
- - examples/complex-test-app/docs/api/curl/api/v1/admin/products/list.sh
201
- - examples/complex-test-app/docs/api/curl/api/v1/auth/login.sh
202
- - examples/complex-test-app/docs/api/curl/api/v1/cart-items/create.sh
203
- - examples/complex-test-app/docs/api/curl/api/v1/cart-items/destroy.sh
204
- - examples/complex-test-app/docs/api/curl/api/v1/carts/checkout.sh
205
- - examples/complex-test-app/docs/api/curl/api/v1/carts/show.sh
206
- - examples/complex-test-app/docs/api/curl/api/v1/home/list.sh
207
- - examples/complex-test-app/docs/api/curl/api/v1/notes/create.sh
208
- - examples/complex-test-app/docs/api/curl/api/v1/notes/list.sh
209
- - examples/complex-test-app/docs/api/curl/api/v1/orders/cancel.sh
210
- - examples/complex-test-app/docs/api/curl/api/v1/orders/create.sh
211
- - examples/complex-test-app/docs/api/curl/api/v1/orders/destroy.sh
212
- - examples/complex-test-app/docs/api/curl/api/v1/orders/list.sh
213
- - examples/complex-test-app/docs/api/curl/api/v1/orders/show.sh
214
- - examples/complex-test-app/docs/api/curl/api/v1/products/list.sh
215
- - examples/complex-test-app/docs/api/curl/api/v1/products/search.sh
216
- - examples/complex-test-app/docs/api/curl/api/v1/products/show.sh
217
- - examples/complex-test-app/docs/api/curl/api/v1/profiles/show.sh
218
- - examples/complex-test-app/docs/api/curl/api/v1/profiles/update.sh
219
- - examples/complex-test-app/docs/api/curl/api/v2/products/list.sh
220
- - examples/complex-test-app/docs/api/dataset.json
221
- - examples/complex-test-app/docs/api/postman/collection.json
222
- - examples/complex-test-app/generate.rb
223
- - examples/complex-test-app/reqcord.yml
224
- - examples/complex-test-app/test/integration/admin_test.rb
225
- - examples/complex-test-app/test/integration/cart_test.rb
226
- - examples/complex-test-app/test/integration/home_and_auth_test.rb
227
- - examples/complex-test-app/test/integration/orders_test.rb
228
- - examples/complex-test-app/test/integration/products_test.rb
229
149
  - examples/reqcord.yml
230
- - examples/spec-app/.rspec
231
- - examples/spec-app/README.md
232
- - examples/spec-app/app.rb
233
- - examples/spec-app/docs/api/README.md
234
- - examples/spec-app/docs/api/api/v1/customers/create.md
235
- - examples/spec-app/docs/api/api/v1/customers/index.md
236
- - examples/spec-app/docs/api/api/v1/customers/list.md
237
- - examples/spec-app/docs/api/api/v1/customers/show.md
238
- - examples/spec-app/docs/api/api/v1/tasks/complete.md
239
- - examples/spec-app/docs/api/api/v1/tasks/create.md
240
- - examples/spec-app/docs/api/api/v1/tasks/destroy.md
241
- - examples/spec-app/docs/api/api/v1/tasks/index.md
242
- - examples/spec-app/docs/api/api/v1/tasks/list.md
243
- - examples/spec-app/docs/api/api/v1/tasks/show.md
244
- - examples/spec-app/docs/api/api/v1/tasks/update.md
245
- - examples/spec-app/docs/api/api/v1/users/create.md
246
- - examples/spec-app/docs/api/api/v1/users/index.md
247
- - examples/spec-app/docs/api/api/v1/users/list.md
248
- - examples/spec-app/docs/api/api/v1/users/show.md
249
- - examples/spec-app/docs/api/curl/api/v1/customers/create.sh
250
- - examples/spec-app/docs/api/curl/api/v1/customers/list.sh
251
- - examples/spec-app/docs/api/curl/api/v1/customers/show.sh
252
- - examples/spec-app/docs/api/curl/api/v1/tasks/complete.sh
253
- - examples/spec-app/docs/api/curl/api/v1/tasks/create.sh
254
- - examples/spec-app/docs/api/curl/api/v1/tasks/destroy.sh
255
- - examples/spec-app/docs/api/curl/api/v1/tasks/list.sh
256
- - examples/spec-app/docs/api/curl/api/v1/tasks/show.sh
257
- - examples/spec-app/docs/api/curl/api/v1/tasks/update.sh
258
- - examples/spec-app/docs/api/curl/api/v1/users/create.sh
259
- - examples/spec-app/docs/api/curl/api/v1/users/list.sh
260
- - examples/spec-app/docs/api/curl/api/v1/users/show.sh
261
- - examples/spec-app/docs/api/dataset.json
262
- - examples/spec-app/docs/api/postman/collection.json
263
- - examples/spec-app/generate.rb
264
- - examples/spec-app/reqcord.yml
265
- - examples/spec-app/spec/requests/customers_spec.rb
266
- - examples/spec-app/spec/requests/tasks_spec.rb
267
- - examples/spec-app/spec/requests/users_spec.rb
268
- - examples/spec-app/spec/spec_helper.rb
269
- - examples/test-app/README.md
270
- - examples/test-app/app.rb
271
- - examples/test-app/docs/api/README.md
272
- - examples/test-app/docs/api/api/v1/customers/create.md
273
- - examples/test-app/docs/api/api/v1/customers/index.md
274
- - examples/test-app/docs/api/api/v1/customers/list.md
275
- - examples/test-app/docs/api/api/v1/customers/show.md
276
- - examples/test-app/docs/api/api/v1/tasks/complete.md
277
- - examples/test-app/docs/api/api/v1/tasks/create.md
278
- - examples/test-app/docs/api/api/v1/tasks/destroy.md
279
- - examples/test-app/docs/api/api/v1/tasks/index.md
280
- - examples/test-app/docs/api/api/v1/tasks/list.md
281
- - examples/test-app/docs/api/api/v1/tasks/show.md
282
- - examples/test-app/docs/api/api/v1/tasks/update.md
283
- - examples/test-app/docs/api/api/v1/users/create.md
284
- - examples/test-app/docs/api/api/v1/users/index.md
285
- - examples/test-app/docs/api/api/v1/users/list.md
286
- - examples/test-app/docs/api/api/v1/users/show.md
287
- - examples/test-app/docs/api/curl/api/v1/customers/create.sh
288
- - examples/test-app/docs/api/curl/api/v1/customers/list.sh
289
- - examples/test-app/docs/api/curl/api/v1/customers/show.sh
290
- - examples/test-app/docs/api/curl/api/v1/tasks/complete.sh
291
- - examples/test-app/docs/api/curl/api/v1/tasks/create.sh
292
- - examples/test-app/docs/api/curl/api/v1/tasks/destroy.sh
293
- - examples/test-app/docs/api/curl/api/v1/tasks/list.sh
294
- - examples/test-app/docs/api/curl/api/v1/tasks/show.sh
295
- - examples/test-app/docs/api/curl/api/v1/tasks/update.sh
296
- - examples/test-app/docs/api/curl/api/v1/users/create.sh
297
- - examples/test-app/docs/api/curl/api/v1/users/list.sh
298
- - examples/test-app/docs/api/curl/api/v1/users/show.sh
299
- - examples/test-app/docs/api/dataset.json
300
- - examples/test-app/docs/api/postman/collection.json
301
- - examples/test-app/generate.rb
302
- - examples/test-app/reqcord.yml
303
- - examples/test-app/test/integration/customers_test.rb
304
- - examples/test-app/test/integration/tasks_test.rb
305
- - examples/test-app/test/integration/users_test.rb
150
+ - gemfiles/rails_7.1.gemfile
151
+ - gemfiles/rails_7.2.gemfile
152
+ - gemfiles/rails_8.0.gemfile
153
+ - gemfiles/rails_8.1.gemfile
306
154
  - lib/reqcord.rb
307
155
  - lib/reqcord/capture.rb
308
156
  - lib/reqcord/capture/collector.rb
data/.gitignore DELETED
@@ -1,8 +0,0 @@
1
- /.bundle/
2
- /pkg/
3
- /tmp/
4
- *.gem
5
- /test/dummy/tmp/
6
- /test/dummy/docs/
7
- /test/dummy/log/
8
- .DS_Store