acfs 1.7.0 → 2.0.0

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 (237) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +144 -116
  3. data/README.md +19 -24
  4. data/acfs.gemspec +7 -10
  5. data/lib/acfs/collections/paginatable.rb +11 -11
  6. data/lib/acfs/configuration.rb +1 -1
  7. data/lib/acfs/errors.rb +6 -6
  8. data/lib/acfs/global.rb +2 -2
  9. data/lib/acfs/location.rb +1 -1
  10. data/lib/acfs/resource/attributes/uuid.rb +1 -1
  11. data/lib/acfs/resource/attributes.rb +1 -1
  12. data/lib/acfs/resource/dirty.rb +1 -1
  13. data/lib/acfs/resource/operational.rb +4 -4
  14. data/lib/acfs/resource/query_methods.rb +3 -3
  15. data/lib/acfs/response/status.rb +1 -1
  16. data/lib/acfs/service/middleware.rb +2 -2
  17. data/lib/acfs/singleton_resource.rb +2 -2
  18. data/lib/acfs/stub.rb +1 -1
  19. data/lib/acfs/version.rb +2 -2
  20. data/lib/acfs/yard.rb +1 -0
  21. data/spec/acfs/adapter/typhoeus_spec.rb +3 -3
  22. data/spec/acfs/configuration_spec.rb +1 -1
  23. data/spec/acfs/global_spec.rb +5 -5
  24. data/spec/acfs/location_spec.rb +1 -1
  25. data/spec/acfs/middleware/json_spec.rb +1 -1
  26. data/spec/acfs/middleware/message_pack_spec.rb +1 -1
  27. data/spec/acfs/operation_spec.rb +1 -1
  28. data/spec/acfs/resource/attributes/boolean_spec.rb +31 -31
  29. data/spec/acfs/resource/attributes/date_time_spec.rb +9 -9
  30. data/spec/acfs/resource/attributes/dict_spec.rb +10 -10
  31. data/spec/acfs/resource/attributes/float_spec.rb +11 -11
  32. data/spec/acfs/resource/attributes/integer_spec.rb +6 -6
  33. data/spec/acfs/resource/attributes/list_spec.rb +1 -1
  34. data/spec/acfs/resource/attributes/uuid_spec.rb +8 -8
  35. data/spec/acfs/resource/attributes_spec.rb +8 -8
  36. data/spec/acfs/resource/dirty_spec.rb +1 -1
  37. data/spec/acfs/resource/persistence_spec.rb +7 -7
  38. data/spec/acfs/resource/query_methods_spec.rb +1 -1
  39. data/spec/acfs/runner_spec.rb +12 -12
  40. data/spec/acfs/stub_spec.rb +13 -18
  41. data/spec/acfs_spec.rb +4 -4
  42. data/spec/spec_helper.rb +9 -5
  43. data/spec/support/hash.rb +1 -1
  44. data/vendor/bundle/ruby/3.4.0/bundler/gems/rubocop-config-67802c9d1826/LICENSE +21 -0
  45. data/vendor/bundle/ruby/3.4.0/bundler/gems/rubocop-config-67802c9d1826/README.md +23 -0
  46. data/vendor/bundle/ruby/3.4.0/bundler/gems/rubocop-config-67802c9d1826/rubocop-config.gemspec +31 -0
  47. data/vendor/bundle/ruby/3.4.0/gems/actionpack-8.0.1/CHANGELOG.md +205 -0
  48. data/vendor/bundle/ruby/3.4.0/gems/actionpack-8.0.1/MIT-LICENSE +21 -0
  49. data/vendor/bundle/ruby/3.4.0/gems/actionpack-8.0.1/README.rdoc +57 -0
  50. data/vendor/bundle/ruby/3.4.0/gems/actionview-8.0.1/CHANGELOG.md +67 -0
  51. data/vendor/bundle/ruby/3.4.0/gems/actionview-8.0.1/MIT-LICENSE +21 -0
  52. data/vendor/bundle/ruby/3.4.0/gems/actionview-8.0.1/README.rdoc +40 -0
  53. data/vendor/bundle/ruby/3.4.0/gems/activemodel-8.0.1/CHANGELOG.md +110 -0
  54. data/vendor/bundle/ruby/3.4.0/gems/activemodel-8.0.1/MIT-LICENSE +21 -0
  55. data/vendor/bundle/ruby/3.4.0/gems/activemodel-8.0.1/README.rdoc +266 -0
  56. data/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.1/CHANGELOG.md +157 -0
  57. data/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.1/MIT-LICENSE +20 -0
  58. data/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.1/README.rdoc +40 -0
  59. data/vendor/bundle/ruby/3.4.0/gems/addressable-2.8.7/CHANGELOG.md +301 -0
  60. data/vendor/bundle/ruby/3.4.0/gems/addressable-2.8.7/LICENSE.txt +202 -0
  61. data/vendor/bundle/ruby/3.4.0/gems/addressable-2.8.7/README.md +121 -0
  62. data/vendor/bundle/ruby/3.4.0/gems/addressable-2.8.7/addressable.gemspec +28 -0
  63. data/vendor/bundle/ruby/3.4.0/gems/appraisal-2.5.0/MIT-LICENSE +21 -0
  64. data/vendor/bundle/ruby/3.4.0/gems/appraisal-2.5.0/README.md +243 -0
  65. data/vendor/bundle/ruby/3.4.0/gems/appraisal-2.5.0/appraisal.gemspec +29 -0
  66. data/vendor/bundle/ruby/3.4.0/gems/base64-0.2.0/LICENSE.txt +22 -0
  67. data/vendor/bundle/ruby/3.4.0/gems/base64-0.2.0/README.md +48 -0
  68. data/vendor/bundle/ruby/3.4.0/gems/benchmark-0.4.0/README.md +138 -0
  69. data/vendor/bundle/ruby/3.4.0/gems/benchmark-0.4.0/benchmark.gemspec +32 -0
  70. data/vendor/bundle/ruby/3.4.0/gems/bigdecimal-3.1.9/LICENSE +56 -0
  71. data/vendor/bundle/ruby/3.4.0/gems/bigdecimal-3.1.9/bigdecimal.gemspec +57 -0
  72. data/vendor/bundle/ruby/3.4.0/gems/builder-3.3.0/MIT-LICENSE +20 -0
  73. data/vendor/bundle/ruby/3.4.0/gems/builder-3.3.0/README.md +258 -0
  74. data/vendor/bundle/ruby/3.4.0/gems/builder-3.3.0/builder.gemspec +49 -0
  75. data/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.5/CHANGELOG.md +603 -0
  76. data/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.5/LICENSE.txt +21 -0
  77. data/vendor/bundle/ruby/3.4.0/gems/concurrent-ruby-1.3.5/README.md +407 -0
  78. data/vendor/bundle/ruby/3.4.0/gems/connection_pool-2.5.0/LICENSE +20 -0
  79. data/vendor/bundle/ruby/3.4.0/gems/connection_pool-2.5.0/README.md +167 -0
  80. data/vendor/bundle/ruby/3.4.0/gems/connection_pool-2.5.0/connection_pool.gemspec +24 -0
  81. data/vendor/bundle/ruby/3.4.0/gems/crack-1.0.0/LICENSE +20 -0
  82. data/vendor/bundle/ruby/3.4.0/gems/crack-1.0.0/README.md +43 -0
  83. data/vendor/bundle/ruby/3.4.0/gems/crass-1.0.6/LICENSE +18 -0
  84. data/vendor/bundle/ruby/3.4.0/gems/crass-1.0.6/README.md +192 -0
  85. data/vendor/bundle/ruby/3.4.0/gems/crass-1.0.6/crass.gemspec +31 -0
  86. data/vendor/bundle/ruby/3.4.0/gems/diff-lcs-1.5.1/License.md +41 -0
  87. data/vendor/bundle/ruby/3.4.0/gems/diff-lcs-1.5.1/README.rdoc +84 -0
  88. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.1/LICENSE.txt +22 -0
  89. data/vendor/bundle/ruby/3.4.0/gems/drb-2.2.1/drb.gemspec +41 -0
  90. data/vendor/bundle/ruby/3.4.0/gems/erubi-1.13.1/CHANGELOG +111 -0
  91. data/vendor/bundle/ruby/3.4.0/gems/erubi-1.13.1/MIT-LICENSE +21 -0
  92. data/vendor/bundle/ruby/3.4.0/gems/erubi-1.13.1/README.rdoc +151 -0
  93. data/vendor/bundle/ruby/3.4.0/gems/ethon-0.16.0/CHANGELOG.md +375 -0
  94. data/vendor/bundle/ruby/3.4.0/gems/ethon-0.16.0/LICENSE +20 -0
  95. data/vendor/bundle/ruby/3.4.0/gems/ethon-0.16.0/README.md +118 -0
  96. data/vendor/bundle/ruby/3.4.0/gems/ethon-0.16.0/ethon.gemspec +26 -0
  97. data/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.1-x86_64-linux-gnu/CHANGELOG.md +465 -0
  98. data/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.1-x86_64-linux-gnu/LICENSE +24 -0
  99. data/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.1-x86_64-linux-gnu/LICENSE.SPECS +22 -0
  100. data/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.1-x86_64-linux-gnu/README.md +137 -0
  101. data/vendor/bundle/ruby/3.4.0/gems/ffi-1.17.1-x86_64-linux-gnu/ffi.gemspec +42 -0
  102. data/vendor/bundle/ruby/3.4.0/gems/hashdiff-1.1.2/LICENSE +19 -0
  103. data/vendor/bundle/ruby/3.4.0/gems/hashdiff-1.1.2/README.md +298 -0
  104. data/vendor/bundle/ruby/3.4.0/gems/hashdiff-1.1.2/changelog.md +119 -0
  105. data/vendor/bundle/ruby/3.4.0/gems/hashdiff-1.1.2/hashdiff.gemspec +39 -0
  106. data/vendor/bundle/ruby/3.4.0/gems/i18n-1.14.6/MIT-LICENSE +20 -0
  107. data/vendor/bundle/ruby/3.4.0/gems/i18n-1.14.6/README.md +127 -0
  108. data/vendor/bundle/ruby/3.4.0/gems/json-2.9.1/README.md +195 -0
  109. data/vendor/bundle/ruby/3.4.0/gems/json-2.9.1/json.gemspec +64 -0
  110. data/vendor/bundle/ruby/3.4.0/gems/logger-1.6.5/README.md +104 -0
  111. data/vendor/bundle/ruby/3.4.0/gems/logger-1.6.5/logger.gemspec +28 -0
  112. data/vendor/bundle/ruby/3.4.0/gems/loofah-2.24.0/CHANGELOG.md +591 -0
  113. data/vendor/bundle/ruby/3.4.0/gems/loofah-2.24.0/MIT-LICENSE.txt +23 -0
  114. data/vendor/bundle/ruby/3.4.0/gems/loofah-2.24.0/README.md +410 -0
  115. data/vendor/bundle/ruby/3.4.0/gems/minitest-5.25.4/README.rdoc +835 -0
  116. data/vendor/bundle/ruby/3.4.0/gems/multi_json-1.15.0/CHANGELOG.md +275 -0
  117. data/vendor/bundle/ruby/3.4.0/gems/multi_json-1.15.0/LICENSE.md +20 -0
  118. data/vendor/bundle/ruby/3.4.0/gems/multi_json-1.15.0/README.md +121 -0
  119. data/vendor/bundle/ruby/3.4.0/gems/nokogiri-1.18.1-x86_64-linux-gnu/LICENSE-DEPENDENCIES.md +2224 -0
  120. data/vendor/bundle/ruby/3.4.0/gems/nokogiri-1.18.1-x86_64-linux-gnu/LICENSE.md +9 -0
  121. data/vendor/bundle/ruby/3.4.0/gems/nokogiri-1.18.1-x86_64-linux-gnu/README.md +293 -0
  122. data/vendor/bundle/ruby/3.4.0/gems/public_suffix-6.0.1/CHANGELOG.md +491 -0
  123. data/vendor/bundle/ruby/3.4.0/gems/public_suffix-6.0.1/LICENSE.txt +22 -0
  124. data/vendor/bundle/ruby/3.4.0/gems/public_suffix-6.0.1/README.md +222 -0
  125. data/vendor/bundle/ruby/3.4.0/gems/racc-1.8.1/ChangeLog +846 -0
  126. data/vendor/bundle/ruby/3.4.0/gems/racc-1.8.1/README.ja.rdoc +58 -0
  127. data/vendor/bundle/ruby/3.4.0/gems/racc-1.8.1/README.rdoc +60 -0
  128. data/vendor/bundle/ruby/3.4.0/gems/rack-3.1.8/CHANGELOG.md +998 -0
  129. data/vendor/bundle/ruby/3.4.0/gems/rack-3.1.8/MIT-LICENSE +20 -0
  130. data/vendor/bundle/ruby/3.4.0/gems/rack-3.1.8/README.md +328 -0
  131. data/vendor/bundle/ruby/3.4.0/gems/rack-session-2.1.0/license.md +72 -0
  132. data/vendor/bundle/ruby/3.4.0/gems/rack-session-2.1.0/readme.md +47 -0
  133. data/vendor/bundle/ruby/3.4.0/gems/rack-test-2.2.0/MIT-LICENSE.txt +20 -0
  134. data/vendor/bundle/ruby/3.4.0/gems/rack-test-2.2.0/README.md +139 -0
  135. data/vendor/bundle/ruby/3.4.0/gems/rails-dom-testing-2.2.0/MIT-LICENSE +23 -0
  136. data/vendor/bundle/ruby/3.4.0/gems/rails-dom-testing-2.2.0/README.md +91 -0
  137. data/vendor/bundle/ruby/3.4.0/gems/rails-html-sanitizer-1.6.2/CHANGELOG.md +255 -0
  138. data/vendor/bundle/ruby/3.4.0/gems/rails-html-sanitizer-1.6.2/MIT-LICENSE +23 -0
  139. data/vendor/bundle/ruby/3.4.0/gems/rails-html-sanitizer-1.6.2/README.md +267 -0
  140. data/vendor/bundle/ruby/3.4.0/gems/rake-13.2.1/MIT-LICENSE +21 -0
  141. data/vendor/bundle/ruby/3.4.0/gems/rake-13.2.1/README.rdoc +155 -0
  142. data/vendor/bundle/ruby/3.4.0/gems/rake-13.2.1/rake.gemspec +101 -0
  143. data/vendor/bundle/ruby/3.4.0/gems/rake-release-1.3.0/LICENSE +21 -0
  144. data/vendor/bundle/ruby/3.4.0/gems/rake-release-1.3.0/README.md +107 -0
  145. data/vendor/bundle/ruby/3.4.0/gems/rake-release-1.3.0/rake-release.gemspec +23 -0
  146. data/vendor/bundle/ruby/3.4.0/gems/rexml-3.4.0/LICENSE.txt +22 -0
  147. data/vendor/bundle/ruby/3.4.0/gems/rexml-3.4.0/README.md +57 -0
  148. data/vendor/bundle/ruby/3.4.0/gems/rspec-3.13.0/LICENSE.md +27 -0
  149. data/vendor/bundle/ruby/3.4.0/gems/rspec-3.13.0/README.md +47 -0
  150. data/vendor/bundle/ruby/3.4.0/gems/rspec-collection_matchers-1.2.1/Changelog.md +68 -0
  151. data/vendor/bundle/ruby/3.4.0/gems/rspec-collection_matchers-1.2.1/LICENSE.txt +27 -0
  152. data/vendor/bundle/ruby/3.4.0/gems/rspec-collection_matchers-1.2.1/README.md +76 -0
  153. data/vendor/bundle/ruby/3.4.0/gems/rspec-collection_matchers-1.2.1/rspec-collection_matchers.gemspec +33 -0
  154. data/vendor/bundle/ruby/3.4.0/gems/rspec-core-3.13.2/Changelog.md +2415 -0
  155. data/vendor/bundle/ruby/3.4.0/gems/rspec-core-3.13.2/LICENSE.md +26 -0
  156. data/vendor/bundle/ruby/3.4.0/gems/rspec-core-3.13.2/README.md +389 -0
  157. data/vendor/bundle/ruby/3.4.0/gems/rspec-expectations-3.13.3/Changelog.md +1352 -0
  158. data/vendor/bundle/ruby/3.4.0/gems/rspec-expectations-3.13.3/LICENSE.md +25 -0
  159. data/vendor/bundle/ruby/3.4.0/gems/rspec-expectations-3.13.3/README.md +326 -0
  160. data/vendor/bundle/ruby/3.4.0/gems/rspec-its-2.0.0/Changelog.md +73 -0
  161. data/vendor/bundle/ruby/3.4.0/gems/rspec-its-2.0.0/LICENSE.txt +27 -0
  162. data/vendor/bundle/ruby/3.4.0/gems/rspec-its-2.0.0/README.md +104 -0
  163. data/vendor/bundle/ruby/3.4.0/gems/rspec-its-2.0.0/rspec-its.gemspec +31 -0
  164. data/vendor/bundle/ruby/3.4.0/gems/rspec-mocks-3.13.2/Changelog.md +1299 -0
  165. data/vendor/bundle/ruby/3.4.0/gems/rspec-mocks-3.13.2/LICENSE.md +25 -0
  166. data/vendor/bundle/ruby/3.4.0/gems/rspec-mocks-3.13.2/README.md +465 -0
  167. data/vendor/bundle/ruby/3.4.0/gems/rspec-support-3.13.2/Changelog.md +408 -0
  168. data/vendor/bundle/ruby/3.4.0/gems/rspec-support-3.13.2/LICENSE.md +23 -0
  169. data/vendor/bundle/ruby/3.4.0/gems/rspec-support-3.13.2/README.md +40 -0
  170. data/vendor/bundle/ruby/3.4.0/gems/securerandom-0.4.1/README.md +72 -0
  171. data/vendor/bundle/ruby/3.4.0/gems/thor-1.3.2/LICENSE.md +20 -0
  172. data/vendor/bundle/ruby/3.4.0/gems/thor-1.3.2/README.md +45 -0
  173. data/vendor/bundle/ruby/3.4.0/gems/thor-1.3.2/thor.gemspec +33 -0
  174. data/vendor/bundle/ruby/3.4.0/gems/typhoeus-1.4.1/CHANGELOG.md +410 -0
  175. data/vendor/bundle/ruby/3.4.0/gems/typhoeus-1.4.1/LICENSE +22 -0
  176. data/vendor/bundle/ruby/3.4.0/gems/typhoeus-1.4.1/README.md +588 -0
  177. data/vendor/bundle/ruby/3.4.0/gems/typhoeus-1.4.1/typhoeus.gemspec +25 -0
  178. data/vendor/bundle/ruby/3.4.0/gems/tzinfo-2.0.6/LICENSE +19 -0
  179. data/vendor/bundle/ruby/3.4.0/gems/tzinfo-2.0.6/README.md +406 -0
  180. data/vendor/bundle/ruby/3.4.0/gems/uri-1.0.2/README.md +55 -0
  181. data/vendor/bundle/ruby/3.4.0/gems/useragent-0.16.11/LICENSE +20 -0
  182. data/vendor/bundle/ruby/3.4.0/gems/useragent-0.16.11/README.md +42 -0
  183. data/vendor/bundle/ruby/3.4.0/gems/webmock-3.24.0/CHANGELOG.md +2104 -0
  184. data/vendor/bundle/ruby/3.4.0/gems/webmock-3.24.0/LICENSE +20 -0
  185. data/vendor/bundle/ruby/3.4.0/gems/webmock-3.24.0/README.md +1222 -0
  186. data/vendor/bundle/ruby/3.4.0/specifications/actionpack-8.0.1.gemspec +36 -0
  187. data/vendor/bundle/ruby/3.4.0/specifications/actionview-8.0.1.gemspec +33 -0
  188. data/vendor/bundle/ruby/3.4.0/specifications/activemodel-8.0.1.gemspec +26 -0
  189. data/vendor/bundle/ruby/3.4.0/specifications/activesupport-8.0.1.gemspec +38 -0
  190. data/vendor/bundle/ruby/3.4.0/specifications/addressable-2.8.7.gemspec +30 -0
  191. data/vendor/bundle/ruby/3.4.0/specifications/appraisal-2.5.0.gemspec +31 -0
  192. data/vendor/bundle/ruby/3.4.0/specifications/base64-0.2.0.gemspec +23 -0
  193. data/vendor/bundle/ruby/3.4.0/specifications/benchmark-0.4.0.gemspec +23 -0
  194. data/vendor/bundle/ruby/3.4.0/specifications/bigdecimal-3.1.9.gemspec +25 -0
  195. data/vendor/bundle/ruby/3.4.0/specifications/builder-3.3.0.gemspec +22 -0
  196. data/vendor/bundle/ruby/3.4.0/specifications/concurrent-ruby-1.3.5.gemspec +24 -0
  197. data/vendor/bundle/ruby/3.4.0/specifications/connection_pool-2.5.0.gemspec +28 -0
  198. data/vendor/bundle/ruby/3.4.0/specifications/crack-1.0.0.gemspec +27 -0
  199. data/vendor/bundle/ruby/3.4.0/specifications/crass-1.0.6.gemspec +27 -0
  200. data/vendor/bundle/ruby/3.4.0/specifications/diff-lcs-1.5.1.gemspec +37 -0
  201. data/vendor/bundle/ruby/3.4.0/specifications/drb-2.2.1.gemspec +22 -0
  202. data/vendor/bundle/ruby/3.4.0/specifications/erubi-1.13.1.gemspec +29 -0
  203. data/vendor/bundle/ruby/3.4.0/specifications/ethon-0.16.0.gemspec +24 -0
  204. data/vendor/bundle/ruby/3.4.0/specifications/ffi-1.17.1-x86_64-linux-gnu.gemspec +31 -0
  205. data/vendor/bundle/ruby/3.4.0/specifications/hashdiff-1.1.2.gemspec +30 -0
  206. data/vendor/bundle/ruby/3.4.0/specifications/i18n-1.14.6.gemspec +27 -0
  207. data/vendor/bundle/ruby/3.4.0/specifications/json-2.9.1.gemspec +0 -0
  208. data/vendor/bundle/ruby/3.4.0/specifications/logger-1.6.5.gemspec +22 -0
  209. data/vendor/bundle/ruby/3.4.0/specifications/loofah-2.24.0.gemspec +27 -0
  210. data/vendor/bundle/ruby/3.4.0/specifications/minitest-5.25.4.gemspec +31 -0
  211. data/vendor/bundle/ruby/3.4.0/specifications/multi_json-1.15.0.gemspec +26 -0
  212. data/vendor/bundle/ruby/3.4.0/specifications/nokogiri-1.18.1-x86_64-linux-gnu.gemspec +31 -0
  213. data/vendor/bundle/ruby/3.4.0/specifications/public_suffix-6.0.1.gemspec +24 -0
  214. data/vendor/bundle/ruby/3.4.0/specifications/racc-1.8.1.gemspec +28 -0
  215. data/vendor/bundle/ruby/3.4.0/specifications/rack-3.1.8.gemspec +31 -0
  216. data/vendor/bundle/ruby/3.4.0/specifications/rack-session-2.1.0.gemspec +30 -0
  217. data/vendor/bundle/ruby/3.4.0/specifications/rack-test-2.2.0.gemspec +29 -0
  218. data/vendor/bundle/ruby/3.4.0/specifications/rails-dom-testing-2.2.0.gemspec +28 -0
  219. data/vendor/bundle/ruby/3.4.0/specifications/rails-html-sanitizer-1.6.2.gemspec +27 -0
  220. data/vendor/bundle/ruby/3.4.0/specifications/rake-13.2.1.gemspec +26 -0
  221. data/vendor/bundle/ruby/3.4.0/specifications/rake-release-1.3.0.gemspec +26 -0
  222. data/vendor/bundle/ruby/3.4.0/specifications/rexml-3.4.0.gemspec +25 -0
  223. data/vendor/bundle/ruby/3.4.0/specifications/rspec-3.13.0.gemspec +31 -0
  224. data/vendor/bundle/ruby/3.4.0/specifications/rspec-collection_matchers-1.2.1.gemspec +27 -0
  225. data/vendor/bundle/ruby/3.4.0/specifications/rspec-core-3.13.2.gemspec +39 -0
  226. data/vendor/bundle/ruby/3.4.0/specifications/rspec-expectations-3.13.3.gemspec +33 -0
  227. data/vendor/bundle/ruby/3.4.0/specifications/rspec-its-2.0.0.gemspec +27 -0
  228. data/vendor/bundle/ruby/3.4.0/specifications/rspec-mocks-3.13.2.gemspec +33 -0
  229. data/vendor/bundle/ruby/3.4.0/specifications/rspec-support-3.13.2.gemspec +29 -0
  230. data/vendor/bundle/ruby/3.4.0/specifications/securerandom-0.4.1.gemspec +23 -0
  231. data/vendor/bundle/ruby/3.4.0/specifications/thor-1.3.2.gemspec +28 -0
  232. data/vendor/bundle/ruby/3.4.0/specifications/typhoeus-1.4.1.gemspec +24 -0
  233. data/vendor/bundle/ruby/3.4.0/specifications/tzinfo-2.0.6.gemspec +30 -0
  234. data/vendor/bundle/ruby/3.4.0/specifications/uri-1.0.2.gemspec +23 -0
  235. data/vendor/bundle/ruby/3.4.0/specifications/useragent-0.16.11.gemspec +25 -0
  236. data/vendor/bundle/ruby/3.4.0/specifications/webmock-3.24.0.gemspec +45 -0
  237. metadata +204 -67
@@ -6,36 +6,36 @@ describe Acfs::Resource::Attributes::Integer do
6
6
  let(:type) { Acfs::Resource::Attributes::Integer.new }
7
7
 
8
8
  describe '#cast' do
9
- subject(:cast) { -> { type.cast value } }
9
+ subject(:cast) { type.cast value }
10
10
 
11
11
  context 'with nil' do
12
12
  let(:value) { nil }
13
13
 
14
- it { expect(cast.call).to eq nil }
14
+ it { expect(cast).to be_nil }
15
15
  end
16
16
 
17
17
  context 'with empty string' do
18
18
  let(:value) { '' }
19
19
 
20
- it { expect(cast.call).to eq 0 }
20
+ it { expect(cast).to eq 0 }
21
21
  end
22
22
 
23
23
  context 'with blank string' do
24
24
  let(:value) { " \t" }
25
25
 
26
- it { expect(cast.call).to eq 0 }
26
+ it { expect(cast).to eq 0 }
27
27
  end
28
28
 
29
29
  context 'with string' do
30
30
  let(:value) { '123' }
31
31
 
32
- it { expect(cast.call).to eq 123 }
32
+ it { expect(cast).to eq 123 }
33
33
  end
34
34
 
35
35
  context 'with invalid string' do
36
36
  let(:value) { '123a' }
37
37
 
38
- it { is_expected.to raise_error ArgumentError }
38
+ it { expect { cast }.to raise_error ArgumentError }
39
39
  end
40
40
  end
41
41
  end
@@ -11,7 +11,7 @@ describe Acfs::Resource::Attributes::List do
11
11
  context 'with nil' do
12
12
  let(:value) { nil }
13
13
 
14
- it { expect(cast.call).to eq nil }
14
+ it { expect(cast.call).to be_nil }
15
15
  end
16
16
 
17
17
  context 'with blank string (I)' do
@@ -6,43 +6,43 @@ describe Acfs::Resource::Attributes::UUID do
6
6
  let(:type) { Acfs::Resource::Attributes::UUID.new }
7
7
 
8
8
  describe '#cast' do
9
- subject(:cast) { -> { type.cast(value) } }
9
+ subject(:cast) { type.cast(value) }
10
10
 
11
11
  context 'with nil' do
12
12
  let(:value) { nil }
13
13
 
14
- it { expect(cast.call).to eq nil }
14
+ it { expect(cast).to be_nil }
15
15
  end
16
16
 
17
17
  context 'with empty string' do
18
18
  let(:value) { '' }
19
19
 
20
- it { expect(cast.call).to eq nil }
20
+ it { expect(cast).to be_nil }
21
21
  end
22
22
 
23
23
  context 'with blank string' do
24
24
  let(:value) { " \t" }
25
25
 
26
- it { expect(cast.call).to eq nil }
26
+ it { expect(cast).to be_nil }
27
27
  end
28
28
 
29
29
  context 'with string UUID' do
30
30
  let(:value) { '450b7a40-94ad-11e3-baa8-0800200c9a66' }
31
31
 
32
- it { expect(cast.call).to be_a String }
33
- it { expect(cast.call).to eq value }
32
+ it { expect(cast).to be_a String }
33
+ it { expect(cast).to eq value }
34
34
  end
35
35
 
36
36
  context 'with invalid string' do
37
37
  let(:value) { 'invalid string' }
38
38
 
39
- it { is_expected.to raise_error TypeError, /invalid UUID/i }
39
+ it { expect { cast }.to raise_error TypeError, /invalid UUID/i }
40
40
  end
41
41
 
42
42
  context 'with invalid UUID' do
43
43
  let(:value) { 'xxxxxxxx-yyyy-11e3-baa8-0800200c9a66' }
44
44
 
45
- it { is_expected.to raise_error TypeError, /invalid UUID/i }
45
+ it { expect { cast }.to raise_error TypeError, /invalid UUID/i }
46
46
  end
47
47
  end
48
48
  end
@@ -41,7 +41,7 @@ describe Acfs::Resource::Attributes do
41
41
  end
42
42
 
43
43
  describe '#write_attributes' do
44
- subject(:action) { -> { m.write_attributes(params, **opts) } }
44
+ subject(:action) { m.write_attributes(params, **opts) }
45
45
 
46
46
  before do
47
47
  model.attribute :name, :string, default: 'John'
@@ -56,7 +56,7 @@ describe Acfs::Resource::Attributes do
56
56
  let(:m) { model.new }
57
57
 
58
58
  it 'updates attributes' do
59
- expect(action).to change(m, :attributes)
59
+ expect { action }.to change(m, :attributes)
60
60
  .from(name: 'The Great John', age: 25)
61
61
  .to(name: 'The Great James', age: 25)
62
62
  end
@@ -64,17 +64,17 @@ describe Acfs::Resource::Attributes do
64
64
  context 'without non-hash params' do
65
65
  let(:params) { 'James' }
66
66
 
67
- it { expect(action).not_to change(m, :attributes) }
68
- it { expect(action.call).to eq false }
67
+ it { expect { action }.not_to change(m, :attributes) }
68
+ it { expect(action).to be false }
69
69
  end
70
70
 
71
71
  context 'with unknown attributes' do
72
72
  let(:params) { {name: 'James', born_at: 'today'} }
73
73
 
74
- it { expect(action).not_to raise_error }
74
+ it { expect { action }.not_to raise_error }
75
75
 
76
76
  it 'updates known attributes and store unknown' do
77
- expect(action).to change(m, :attributes)
77
+ expect { action }.to change(m, :attributes)
78
78
  .from(name: 'The Great John', age: 25)
79
79
  .to(name: 'The Great James', age: 25, born_at: 'today')
80
80
  end
@@ -82,11 +82,11 @@ describe Acfs::Resource::Attributes do
82
82
  context 'with unknown: :raise option' do
83
83
  let(:opts) { {unknown: :raise} }
84
84
 
85
- it { expect(action).to raise_error(ArgumentError, /unknown attribute/i) }
85
+ it { expect { action }.to raise_error(ArgumentError, /unknown attribute/i) }
86
86
 
87
87
  it do
88
88
  expect do
89
- action.call
89
+ action
90
90
  rescue StandardError
91
91
  true
92
92
  end.not_to change(m, :attributes)
@@ -13,7 +13,7 @@ describe Acfs::Resource::Dirty do
13
13
  end
14
14
 
15
15
  it 'includes ActiveModel::Dirty' do
16
- model.is_a? ActiveModel::Dirty
16
+ expect(model).to be_a ActiveModel::Dirty
17
17
  end
18
18
 
19
19
  describe '#changed?' do
@@ -275,7 +275,7 @@ describe Acfs::Resource::Persistence do
275
275
  rescue StandardError
276
276
  nil
277
277
  end
278
- expect(model.errors.to_hash).to be == {name: %w[required]}
278
+ expect(model.errors.to_hash).to eq({name: %w[required]})
279
279
  end
280
280
  end
281
281
  end
@@ -286,8 +286,8 @@ describe Acfs::Resource::Persistence do
286
286
 
287
287
  it 'creates new resource' do
288
288
  model = model_class.create! data
289
- expect(model.name).to be == 'Idefix'
290
- expect(model.age).to be == 12
289
+ expect(model.name).to eq 'Idefix'
290
+ expect(model.age).to eq 12
291
291
  end
292
292
 
293
293
  it 'is persisted' do
@@ -301,8 +301,8 @@ describe Acfs::Resource::Persistence do
301
301
 
302
302
  it 'raises an error' do
303
303
  expect { model_class.create! data }.to \
304
- raise_error(::Acfs::InvalidResource) do |error|
305
- expect(error.errors).to be == {'name' => %w[required]}
304
+ raise_error(Acfs::InvalidResource) do |error|
305
+ expect(error.errors).to eq({'name' => %w[required]})
306
306
  end
307
307
  end
308
308
  end
@@ -315,8 +315,8 @@ describe Acfs::Resource::Persistence do
315
315
  let(:data) { {name: 'Idefix', age: 12} }
316
316
 
317
317
  it 'creates new resource' do
318
- expect(model.name).to be == 'Idefix'
319
- expect(model.age).to be == 12
318
+ expect(model.name).to eq 'Idefix'
319
+ expect(model.age).to eq 12
320
320
  end
321
321
 
322
322
  it 'is persisted' do
@@ -333,7 +333,7 @@ describe Acfs::Resource::QueryMethods do
333
333
  let(:model) { Single }
334
334
 
335
335
  it '.find_by should not be defined' do
336
- expect { model.find_by }.to raise_error ::Acfs::UnsupportedOperation
336
+ expect { model.find_by }.to raise_error Acfs::UnsupportedOperation
337
337
  end
338
338
  end
339
339
  end
@@ -30,26 +30,26 @@ class NotificationCollector
30
30
  end
31
31
  end
32
32
 
33
- describe ::Acfs::Runner do
34
- let(:adapter) { ::NullAdapter.new }
35
- let(:runner) { ::Acfs::Runner.new adapter }
33
+ describe Acfs::Runner do
34
+ let(:adapter) { NullAdapter.new }
35
+ let(:runner) { Acfs::Runner.new adapter }
36
36
  let(:collector) { NotificationCollector.new }
37
37
  let(:collector2) { NotificationCollector.new }
38
38
 
39
39
  after do
40
- ::ActiveSupport::Notifications.notifier = \
41
- ::ActiveSupport::Notifications::Fanout.new
40
+ ActiveSupport::Notifications.notifier =
41
+ ActiveSupport::Notifications::Fanout.new
42
42
  end
43
43
 
44
44
  describe '#instrumentation' do
45
45
  before do
46
- ::ActiveSupport::Notifications.subscribe(/^acfs\.runner/, collector)
47
- ::ActiveSupport::Notifications.subscribe(/^acfs\.operation/, collector2)
46
+ ActiveSupport::Notifications.subscribe(/^acfs\.runner/, collector)
47
+ ActiveSupport::Notifications.subscribe(/^acfs\.operation/, collector2)
48
48
  end
49
49
 
50
50
  describe '#process' do
51
51
  it 'triggers event' do
52
- runner.process ::Acfs::Operation.new MyUser, :read, params: {id: 0}
52
+ runner.process Acfs::Operation.new MyUser, :read, params: {id: 0}
53
53
  expect(collector.events).to have(1).items
54
54
  expect(collector2.events).to have(1).items
55
55
  end
@@ -57,7 +57,7 @@ describe ::Acfs::Runner do
57
57
 
58
58
  describe '#run' do
59
59
  it 'triggers event' do
60
- runner.run ::Acfs::Operation.new MyUser, :read, params: {id: 0}
60
+ runner.run Acfs::Operation.new MyUser, :read, params: {id: 0}
61
61
  expect(collector.events).to have(1).items
62
62
  expect(collector2.events).to have(0).items
63
63
  end
@@ -65,7 +65,7 @@ describe ::Acfs::Runner do
65
65
 
66
66
  describe '#enqueue' do
67
67
  it 'triggers event' do
68
- runner.enqueue ::Acfs::Operation.new MyUser, :read, params: {id: 0}
68
+ runner.enqueue Acfs::Operation.new MyUser, :read, params: {id: 0}
69
69
  expect(collector.events).to have(1).items
70
70
  expect(collector2.events).to have(0).items
71
71
  end
@@ -79,7 +79,7 @@ describe ::Acfs::Runner do
79
79
 
80
80
  it 'does not do requests when a middleware aborted' do
81
81
  expect(adapter).not_to receive :run
82
- runner.run ::Acfs::Operation.new MyUser, :read, params: {id: 0}
82
+ runner.run Acfs::Operation.new MyUser, :read, params: {id: 0}
83
83
  end
84
84
  end
85
85
 
@@ -90,7 +90,7 @@ describe ::Acfs::Runner do
90
90
 
91
91
  it 'does not do requests when a middleware aborted' do
92
92
  expect(adapter).not_to receive(:queue)
93
- runner.enqueue ::Acfs::Operation.new MyUser, :read, params: {id: 0}
93
+ runner.enqueue Acfs::Operation.new MyUser, :read, params: {id: 0}
94
94
  runner.start
95
95
  end
96
96
  end
@@ -126,7 +126,7 @@ describe Acfs::Stub do
126
126
  it 'allows to raise error' do
127
127
  expect do
128
128
  Session.create! ident: 'john@exmaple.org', password: 'wrong'
129
- end.to raise_error(::Acfs::InvalidResource)
129
+ end.to raise_error(Acfs::InvalidResource)
130
130
  end
131
131
  end
132
132
 
@@ -204,7 +204,7 @@ describe Acfs::Stub do
204
204
  let!(:update_stub) do
205
205
  Acfs::Stub.resource MyUser, :update,
206
206
  with: {id: 1, name: 'Jane Smith'},
207
- return: ->(op) { op.data.map {|k, v| [k, v.to_s.upcase] }.to_h }
207
+ return: ->(op) { op.data.to_h {|k, v| [k, v.to_s.upcase] } }
208
208
  end
209
209
 
210
210
  it 'allows stub resource update' do
@@ -226,7 +226,7 @@ describe Acfs::Stub do
226
226
 
227
227
  expect do
228
228
  user.save!
229
- end.to raise_error(::Acfs::InvalidResource)
229
+ end.to raise_error(Acfs::InvalidResource)
230
230
  end
231
231
 
232
232
  it 'matches partial :with' do
@@ -283,9 +283,8 @@ describe Acfs::Stub do
283
283
 
284
284
  context 'with a match in params' do
285
285
  let(:op) do
286
- instance_double('Acfs::Operation').tap do |op|
287
- allow(op).to receive(:full_params).and_return(id: 1337, blub: 'abc')
288
- allow(op).to receive(:data).and_return({})
286
+ instance_double(Acfs::Operation).tap do |op|
287
+ allow(op).to receive_messages(full_params: {id: 1337, blub: 'abc'}, data: {})
289
288
  end
290
289
  end
291
290
 
@@ -296,9 +295,8 @@ describe Acfs::Stub do
296
295
 
297
296
  context 'with a match in data' do
298
297
  let(:op) do
299
- instance_double('Acfs::Operation').tap do |op|
300
- allow(op).to receive(:full_params).and_return({})
301
- allow(op).to receive(:data).and_return(id: 1337, blub: 'abc')
298
+ instance_double(Acfs::Operation).tap do |op|
299
+ allow(op).to receive_messages(full_params: {}, data: {id: 1337, blub: 'abc'})
302
300
  end
303
301
  end
304
302
 
@@ -309,9 +307,8 @@ describe Acfs::Stub do
309
307
 
310
308
  context 'with no match in params nor data' do
311
309
  let(:op) do
312
- instance_double('Acfs::Operation').tap do |op|
313
- allow(op).to receive(:full_params).and_return(id: 1337)
314
- allow(op).to receive(:data).and_return({})
310
+ instance_double(Acfs::Operation).tap do |op|
311
+ allow(op).to receive_messages(full_params: {id: 1337}, data: {})
315
312
  end
316
313
  end
317
314
 
@@ -322,9 +319,8 @@ describe Acfs::Stub do
322
319
 
323
320
  context 'with a wrong match' do
324
321
  let(:op) do
325
- instance_double('Acfs::Operation').tap do |op|
326
- allow(op).to receive(:full_params).and_return(id: 1337, blub: 'abc')
327
- allow(op).to receive(:data).and_return({})
322
+ instance_double(Acfs::Operation).tap do |op|
323
+ allow(op).to receive_messages(full_params: {id: 1337, blub: 'abc'}, data: {})
328
324
  end
329
325
  end
330
326
 
@@ -335,9 +331,8 @@ describe Acfs::Stub do
335
331
 
336
332
  context 'with a missing match' do
337
333
  let(:op) do
338
- instance_double('Acfs::Operation').tap do |op|
339
- allow(op).to receive(:full_params).and_return(id: 1337, blub: 'abc')
340
- allow(op).to receive(:data).and_return({})
334
+ instance_double(Acfs::Operation).tap do |op|
335
+ allow(op).to receive_messages(full_params: {id: 1337, blub: 'abc'}, data: {})
341
336
  end
342
337
  end
343
338
 
data/spec/acfs_spec.rb CHANGED
@@ -77,12 +77,12 @@ describe 'Acfs' do
77
77
  stub = stub_request(:post, 'http://users.example.org/singles').to_return response(score: 250, user_id: 5)
78
78
 
79
79
  single = Single.new user_id: 5, score: 250
80
- expect(single.new?).to eq true
80
+ expect(single.new?).to be true
81
81
 
82
82
  single.save
83
83
  expect(stub).to have_been_requested
84
84
 
85
- expect(single.new?).to eq false
85
+ expect(single.new?).to be false
86
86
  expect(single.user_id).to eq 5
87
87
  expect(single.score).to eq 250
88
88
  end
@@ -126,7 +126,7 @@ describe 'Acfs' do
126
126
  single = Single.find user_id: 5
127
127
  Acfs.run
128
128
 
129
- expect(single.new?).to eq false
129
+ expect(single.new?).to be false
130
130
 
131
131
  single.delete
132
132
 
@@ -134,7 +134,7 @@ describe 'Acfs' do
134
134
  end
135
135
 
136
136
  it 'raises error when calling .all' do
137
- expect { Single.all }.to raise_error ::Acfs::UnsupportedOperation
137
+ expect { Single.all }.to raise_error Acfs::UnsupportedOperation
138
138
  end
139
139
  end
140
140
 
data/spec/spec_helper.rb CHANGED
@@ -4,21 +4,23 @@ require 'rspec'
4
4
  require 'webmock/rspec'
5
5
 
6
6
  require 'simplecov'
7
+ require 'simplecov-cobertura'
8
+
7
9
  SimpleCov.start do
8
10
  add_filter 'spec'
9
11
  end
10
12
 
11
- if ENV['CI']
12
- require 'codecov'
13
- SimpleCov.formatter = SimpleCov::Formatter::Codecov
14
- end
13
+ SimpleCov.formatters = [
14
+ SimpleCov::Formatter::HTMLFormatter,
15
+ SimpleCov::Formatter::CoberturaFormatter,
16
+ ]
15
17
 
16
18
  require 'bundler'
17
19
  Bundler.require(:default, :test)
18
20
 
19
21
  require 'acfs'
20
22
 
21
- Dir[File.expand_path('spec/support/**/*.rb')].sort.each {|f| require f }
23
+ Dir[File.expand_path('spec/support/**/*.rb')].each {|f| require f }
22
24
 
23
25
  RSpec.configure do |config|
24
26
  # ## Mock Framework
@@ -35,6 +37,8 @@ RSpec.configure do |config|
35
37
  # --seed 1234
36
38
  config.order = 'random'
37
39
 
40
+ config.raise_errors_for_deprecations!
41
+
38
42
  config.before do
39
43
  Acfs.runner.clear
40
44
  Acfs::Stub.clear
data/spec/support/hash.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  class ActiveSupport::HashWithIndifferentAccess
4
4
  def ==(other)
5
5
  if other.respond_to? :with_indifferent_access
6
- super other.with_indifferent_access
6
+ super(other.with_indifferent_access)
7
7
  else
8
8
  super
9
9
  end
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2020 Jan Graichen
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,23 @@
1
+ # Shared Rubocop Configuration
2
+
3
+ Shared rubocop configuration and defaults for my libraries and projects.
4
+
5
+ ## Usage
6
+
7
+ ```ruby
8
+ # Gemfile
9
+
10
+ gem 'rubocop-config', github: 'jgraichen/rubocop-config', ref: 'v11', require: false
11
+ ```
12
+
13
+ ```yaml
14
+ # .rubocop.yml
15
+
16
+ inherit_gem:
17
+ rubocop-config: default.yml
18
+
19
+ AllCops:
20
+ TargetRubyVersion: 2.7
21
+ SuggestExtensions: False
22
+ NewCops: enable
23
+ ```
@@ -0,0 +1,31 @@
1
+ # -*- encoding: utf-8 -*-
2
+ # stub: rubocop-config 13.0.0 ruby lib
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "rubocop-config".freeze
6
+ s.version = "13.0.0".freeze
7
+
8
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
+ s.metadata = { "allowed_push_host" => ".", "rubygems_mfa_required" => "true" } if s.respond_to? :metadata=
10
+ s.require_paths = ["lib".freeze]
11
+ s.authors = ["Jan Graichen".freeze]
12
+ s.date = "2025-01-17"
13
+ s.email = ["jgraichen@altimos.de".freeze]
14
+ s.files = ["LICENSE".freeze, "README.md".freeze, "default.yml".freeze]
15
+ s.homepage = "https://github.com/jgraichen/rubocop-config".freeze
16
+ s.licenses = ["MIT".freeze]
17
+ s.required_ruby_version = Gem::Requirement.new(">= 2.7.0".freeze)
18
+ s.rubygems_version = "3.6.2".freeze
19
+ s.summary = "Shared rubocop config".freeze
20
+
21
+ s.installed_by_version = "3.6.2".freeze
22
+
23
+ s.specification_version = 4
24
+
25
+ s.add_runtime_dependency(%q<rubocop>.freeze, ["~> 1.70.0".freeze])
26
+ s.add_runtime_dependency(%q<rubocop-capybara>.freeze, ["~> 2.21.0".freeze])
27
+ s.add_runtime_dependency(%q<rubocop-factory_bot>.freeze, ["~> 2.26.1".freeze])
28
+ s.add_runtime_dependency(%q<rubocop-performance>.freeze, ["~> 1.23.0".freeze])
29
+ s.add_runtime_dependency(%q<rubocop-rspec>.freeze, ["~> 3.3.0".freeze])
30
+ s.add_runtime_dependency(%q<rubocop-rspec_rails>.freeze, ["~> 2.30.0".freeze])
31
+ end