serrano-vk 0.1.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 (588) hide show
  1. checksums.yaml +7 -0
  2. data/EXAMPLES.md +271 -0
  3. data/README.md +170 -0
  4. data/bin/serrano +6 -0
  5. data/examples/demo_crud/Gemfile +9 -0
  6. data/examples/demo_crud/Gemfile.lock +31 -0
  7. data/examples/demo_crud/app/controllers/articles_controller.rb +92 -0
  8. data/examples/demo_crud/app/controllers/categories_controller.rb +92 -0
  9. data/examples/demo_crud/app/entities/article.rb +17 -0
  10. data/examples/demo_crud/app/entities/category.rb +17 -0
  11. data/examples/demo_crud/app/entities/concerns/validatable.rb +136 -0
  12. data/examples/demo_crud/app/repositories/article_repository.rb +42 -0
  13. data/examples/demo_crud/app/repositories/category_repository.rb +42 -0
  14. data/examples/demo_crud/app/services/articles/create.rb +29 -0
  15. data/examples/demo_crud/app/services/articles/destroy.rb +20 -0
  16. data/examples/demo_crud/app/services/articles/index.rb +17 -0
  17. data/examples/demo_crud/app/services/articles/show.rb +20 -0
  18. data/examples/demo_crud/app/services/articles/update.rb +26 -0
  19. data/examples/demo_crud/app/services/categories/create.rb +27 -0
  20. data/examples/demo_crud/app/services/categories/destroy.rb +20 -0
  21. data/examples/demo_crud/app/services/categories/index.rb +17 -0
  22. data/examples/demo_crud/app/services/categories/show.rb +20 -0
  23. data/examples/demo_crud/app/services/categories/update.rb +26 -0
  24. data/examples/demo_crud/config/db.rb +3 -0
  25. data/examples/demo_crud/config.ru +19 -0
  26. data/examples/demo_crud/db/development.sqlite3 +0 -0
  27. data/examples/demo_crud/db/migrations/20260307212844_create_articles.rb +14 -0
  28. data/examples/demo_crud/db/migrations/20260307212845_create_categories.rb +12 -0
  29. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/bin/rackup +29 -0
  30. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/bin/rackup.bat +2 -0
  31. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/bin/sequel +29 -0
  32. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/bin/sequel.bat +2 -0
  33. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/bin/serrano +29 -0
  34. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/bin/serrano.bat +2 -0
  35. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/cache/bigdecimal-4.0.1.gem +0 -0
  36. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/cache/rack-3.2.5.gem +0 -0
  37. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/cache/rackup-2.3.1.gem +0 -0
  38. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/cache/sequel-5.102.0.gem +0 -0
  39. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/cache/sqlite3-2.9.1-x64-mingw-ucrt.gem +0 -0
  40. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/cache/webrick-1.9.2.gem +0 -0
  41. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/extensions/x64-mingw-ucrt/3.4.0/bigdecimal-4.0.1/bigdecimal.so +0 -0
  42. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/extensions/x64-mingw-ucrt/3.4.0/bigdecimal-4.0.1/gem.build_complete +0 -0
  43. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/extensions/x64-mingw-ucrt/3.4.0/bigdecimal-4.0.1/gem_make.out +43 -0
  44. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/extensions/x64-mingw-ucrt/3.4.0/bigdecimal-4.0.1/mkmf.log +669 -0
  45. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/LICENSE +56 -0
  46. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/bigdecimal.gemspec +57 -0
  47. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/ext/bigdecimal/Makefile +278 -0
  48. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/ext/bigdecimal/bigdecimal.c +6206 -0
  49. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/ext/bigdecimal/bigdecimal.h +292 -0
  50. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/ext/bigdecimal/bits.h +144 -0
  51. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/ext/bigdecimal/extconf.rb +60 -0
  52. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/ext/bigdecimal/feature.h +68 -0
  53. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/ext/bigdecimal/missing/dtoa.c +3462 -0
  54. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/ext/bigdecimal/missing.c +28 -0
  55. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/ext/bigdecimal/missing.h +104 -0
  56. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/ext/bigdecimal/static_assert.h +54 -0
  57. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/lib/bigdecimal/jacobian.rb +92 -0
  58. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/lib/bigdecimal/ludcmp.rb +91 -0
  59. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/lib/bigdecimal/math.rb +948 -0
  60. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/lib/bigdecimal/newton.rb +82 -0
  61. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/lib/bigdecimal/util.rb +186 -0
  62. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/lib/bigdecimal.rb +360 -0
  63. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/lib/bigdecimal.so +0 -0
  64. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/sample/linear.rb +74 -0
  65. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/sample/nlsolve.rb +40 -0
  66. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/bigdecimal-4.0.1/sample/pi.rb +21 -0
  67. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/CHANGELOG.md +1314 -0
  68. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/CONTRIBUTING.md +144 -0
  69. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/MIT-LICENSE +20 -0
  70. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/README.md +384 -0
  71. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/SPEC.rdoc +258 -0
  72. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/auth/abstract/handler.rb +41 -0
  73. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/auth/abstract/request.rb +51 -0
  74. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/auth/basic.rb +58 -0
  75. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/bad_request.rb +8 -0
  76. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/body_proxy.rb +63 -0
  77. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/builder.rb +296 -0
  78. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/cascade.rb +67 -0
  79. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/common_logger.rb +89 -0
  80. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/conditional_get.rb +87 -0
  81. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/config.rb +22 -0
  82. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/constants.rb +68 -0
  83. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/content_length.rb +34 -0
  84. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/content_type.rb +33 -0
  85. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/deflater.rb +158 -0
  86. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/directory.rb +208 -0
  87. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/etag.rb +71 -0
  88. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/events.rb +172 -0
  89. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/files.rb +216 -0
  90. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/head.rb +25 -0
  91. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/headers.rb +238 -0
  92. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/lint.rb +964 -0
  93. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/lock.rb +29 -0
  94. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/media_type.rb +52 -0
  95. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/method_override.rb +56 -0
  96. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/mime.rb +694 -0
  97. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/mock.rb +3 -0
  98. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/mock_request.rb +161 -0
  99. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/mock_response.rb +156 -0
  100. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/multipart/generator.rb +99 -0
  101. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/multipart/parser.rb +580 -0
  102. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/multipart/uploaded_file.rb +82 -0
  103. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/multipart.rb +77 -0
  104. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/null_logger.rb +48 -0
  105. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/query_parser.rb +261 -0
  106. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/recursive.rb +66 -0
  107. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/reloader.rb +112 -0
  108. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/request.rb +790 -0
  109. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/response.rb +403 -0
  110. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/rewindable_input.rb +116 -0
  111. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/runtime.rb +35 -0
  112. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/sendfile.rb +197 -0
  113. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/show_exceptions.rb +409 -0
  114. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/show_status.rb +121 -0
  115. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/static.rb +188 -0
  116. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/tempfile_reaper.rb +33 -0
  117. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/urlmap.rb +99 -0
  118. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/utils.rb +622 -0
  119. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack/version.rb +17 -0
  120. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rack-3.2.5/lib/rack.rb +64 -0
  121. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rackup-2.3.1/bin/rackup +5 -0
  122. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rackup-2.3.1/lib/rackup/handler/cgi.rb +61 -0
  123. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rackup-2.3.1/lib/rackup/handler/webrick.rb +196 -0
  124. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rackup-2.3.1/lib/rackup/handler.rb +113 -0
  125. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rackup-2.3.1/lib/rackup/lobster.rb +81 -0
  126. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rackup-2.3.1/lib/rackup/server.rb +462 -0
  127. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rackup-2.3.1/lib/rackup/stream.rb +199 -0
  128. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rackup-2.3.1/lib/rackup/version.rb +8 -0
  129. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rackup-2.3.1/lib/rackup.rb +21 -0
  130. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rackup-2.3.1/license.md +80 -0
  131. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rackup-2.3.1/readme.md +82 -0
  132. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rackup-2.3.1/releases.md +28 -0
  133. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/rackup-2.3.1/security.md +3 -0
  134. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/MIT-LICENSE +19 -0
  135. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/bin/sequel +280 -0
  136. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/ado/access.rb +335 -0
  137. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/ado/mssql.rb +62 -0
  138. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/ado.rb +283 -0
  139. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/amalgalite.rb +184 -0
  140. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/ibmdb.rb +423 -0
  141. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/jdbc/db2.rb +83 -0
  142. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/jdbc/derby.rb +318 -0
  143. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/jdbc/h2.rb +290 -0
  144. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/jdbc/hsqldb.rb +228 -0
  145. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/jdbc/jtds.rb +39 -0
  146. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/jdbc/mssql.rb +30 -0
  147. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/jdbc/mysql.rb +89 -0
  148. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/jdbc/oracle.rb +146 -0
  149. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/jdbc/postgresql.rb +239 -0
  150. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/jdbc/sqlanywhere.rb +87 -0
  151. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/jdbc/sqlite.rb +133 -0
  152. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/jdbc/sqlserver.rb +92 -0
  153. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/jdbc/transactions.rb +95 -0
  154. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/jdbc.rb +850 -0
  155. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/mock.rb +381 -0
  156. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/mysql.rb +380 -0
  157. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/mysql2.rb +307 -0
  158. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/odbc/db2.rb +11 -0
  159. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/odbc/mssql.rb +57 -0
  160. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/odbc/oracle.rb +11 -0
  161. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/odbc.rb +150 -0
  162. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/oracle.rb +427 -0
  163. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/postgres.rb +863 -0
  164. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/postgresql.rb +3 -0
  165. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/shared/access.rb +301 -0
  166. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/shared/db2.rb +509 -0
  167. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/shared/mssql.rb +1238 -0
  168. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/shared/mysql.rb +1175 -0
  169. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/shared/oracle.rb +732 -0
  170. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/shared/postgres.rb +3022 -0
  171. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/shared/sqlanywhere.rb +470 -0
  172. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/shared/sqlite.rb +1073 -0
  173. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/sqlanywhere.rb +192 -0
  174. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/sqlite.rb +475 -0
  175. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/tinytds.rb +259 -0
  176. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/trilogy.rb +116 -0
  177. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/utils/columns_limit_1.rb +22 -0
  178. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/utils/emulate_offset_with_reverse_and_count.rb +74 -0
  179. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/utils/emulate_offset_with_row_number.rb +93 -0
  180. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/utils/mysql_mysql2.rb +87 -0
  181. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/utils/mysql_prepared_statements.rb +56 -0
  182. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/utils/replace.rb +35 -0
  183. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/utils/split_alter_table.rb +46 -0
  184. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/utils/stored_procedures.rb +61 -0
  185. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/adapters/utils/unmodified_identifiers.rb +28 -0
  186. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/ast_transformer.rb +132 -0
  187. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/connection_pool/sharded_single.rb +113 -0
  188. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/connection_pool/sharded_threaded.rb +392 -0
  189. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/connection_pool/sharded_timed_queue.rb +399 -0
  190. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/connection_pool/single.rb +57 -0
  191. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/connection_pool/threaded.rb +307 -0
  192. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/connection_pool/timed_queue.rb +288 -0
  193. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/connection_pool.rb +175 -0
  194. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/core.rb +476 -0
  195. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/database/connecting.rb +349 -0
  196. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/database/dataset.rb +89 -0
  197. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/database/dataset_defaults.rb +93 -0
  198. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/database/features.rb +150 -0
  199. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/database/logging.rb +91 -0
  200. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/database/misc.rb +663 -0
  201. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/database/query.rb +436 -0
  202. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/database/schema_generator.rb +720 -0
  203. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/database/schema_methods.rb +1157 -0
  204. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/database/transactions.rb +552 -0
  205. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/database.rb +37 -0
  206. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/dataset/actions.rb +1412 -0
  207. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/dataset/dataset_module.rb +46 -0
  208. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/dataset/deprecated_singleton_class_methods.rb +42 -0
  209. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/dataset/features.rb +284 -0
  210. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/dataset/graph.rb +297 -0
  211. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/dataset/misc.rb +381 -0
  212. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/dataset/placeholder_literalizer.rb +230 -0
  213. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/dataset/prepared_statements.rb +474 -0
  214. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/dataset/query.rb +1571 -0
  215. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/dataset/sql.rb +1863 -0
  216. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/dataset.rb +60 -0
  217. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/deprecated.rb +70 -0
  218. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/exceptions.rb +130 -0
  219. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/_model_constraint_validations.rb +16 -0
  220. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/_model_pg_row.rb +31 -0
  221. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/_pretty_table.rb +85 -0
  222. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/any_not_empty.rb +45 -0
  223. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/arbitrary_servers.rb +114 -0
  224. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/async_thread_pool.rb +446 -0
  225. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/auto_cast_date_and_time.rb +94 -0
  226. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/auto_literal_strings.rb +74 -0
  227. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/blank.rb +57 -0
  228. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/caller_logging.rb +80 -0
  229. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/columns_introspection.rb +88 -0
  230. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/connection_checkout_event_callback.rb +151 -0
  231. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/connection_expiration.rb +105 -0
  232. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/connection_validator.rb +133 -0
  233. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/constant_sql_override.rb +65 -0
  234. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/constraint_validations.rb +510 -0
  235. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/core_extensions.rb +222 -0
  236. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/core_refinements.rb +244 -0
  237. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/current_datetime_timestamp.rb +59 -0
  238. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/dataset_run.rb +41 -0
  239. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/dataset_source_alias.rb +95 -0
  240. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/date_arithmetic.rb +254 -0
  241. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/date_parse_input_handler.rb +67 -0
  242. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/datetime_parse_to_time.rb +41 -0
  243. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/duplicate_columns_handler.rb +95 -0
  244. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/empty_array_consider_nulls.rb +46 -0
  245. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/error_sql.rb +76 -0
  246. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/escaped_like.rb +100 -0
  247. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/eval_inspect.rb +185 -0
  248. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/exclude_or_null.rb +68 -0
  249. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/fiber_concurrency.rb +24 -0
  250. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/freeze_datasets.rb +3 -0
  251. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/from_block.rb +3 -0
  252. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/graph_each.rb +88 -0
  253. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/identifier_mangling.rb +180 -0
  254. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/implicit_subquery.rb +48 -0
  255. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/index_caching.rb +113 -0
  256. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/inflector.rb +258 -0
  257. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/integer64.rb +32 -0
  258. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/is_distinct_from.rb +141 -0
  259. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/looser_typecasting.rb +50 -0
  260. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/migration.rb +867 -0
  261. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/mssql_emulate_lateral_with_apply.rb +84 -0
  262. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/named_timezones.rb +184 -0
  263. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/no_auto_literal_strings.rb +4 -0
  264. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/null_dataset.rb +109 -0
  265. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pagination.rb +140 -0
  266. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_array.rb +556 -0
  267. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_array_ops.rb +377 -0
  268. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_auto_parameterize.rb +516 -0
  269. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_auto_parameterize_duplicate_query_detection.rb +191 -0
  270. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_auto_parameterize_in_array.rb +194 -0
  271. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_enum.rb +199 -0
  272. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_extended_date_support.rb +261 -0
  273. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_extended_integer_support.rb +116 -0
  274. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_hstore.rb +353 -0
  275. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_hstore_ops.rb +418 -0
  276. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_inet.rb +136 -0
  277. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_inet_ops.rb +204 -0
  278. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_interval.rb +224 -0
  279. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_json.rb +644 -0
  280. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_json_ops.rb +1460 -0
  281. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_loose_count.rb +39 -0
  282. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_multirange.rb +367 -0
  283. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_range.rb +572 -0
  284. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_range_ops.rb +195 -0
  285. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_row.rb +585 -0
  286. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_row_ops.rb +217 -0
  287. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_schema_caching.rb +90 -0
  288. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_static_cache_updater.rb +144 -0
  289. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pg_timestamptz.rb +52 -0
  290. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/pretty_table.rb +40 -0
  291. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/provenance.rb +108 -0
  292. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/query.rb +85 -0
  293. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/query_blocker.rb +172 -0
  294. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/round_timestamps.rb +49 -0
  295. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/run_transaction_hooks.rb +72 -0
  296. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/s.rb +60 -0
  297. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/schema_caching.rb +103 -0
  298. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/schema_dumper.rb +550 -0
  299. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/select_remove.rb +52 -0
  300. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/sequel_4_dataset_methods.rb +85 -0
  301. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/server_block.rb +179 -0
  302. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/server_logging.rb +61 -0
  303. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/set_literalizer.rb +39 -0
  304. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/split_array_nil.rb +80 -0
  305. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/sql_comments.rb +203 -0
  306. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/sql_expr.rb +23 -0
  307. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/sql_log_normalizer.rb +108 -0
  308. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/sqlite_json_ops.rb +313 -0
  309. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/stdio_logger.rb +48 -0
  310. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/string_agg.rb +194 -0
  311. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/string_date_time.rb +48 -0
  312. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/symbol_aref.rb +55 -0
  313. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/symbol_aref_refinement.rb +43 -0
  314. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/symbol_as.rb +23 -0
  315. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/symbol_as_refinement.rb +37 -0
  316. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/synchronize_sql.rb +45 -0
  317. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/temporarily_release_connection.rb +178 -0
  318. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/thread_local_timezones.rb +59 -0
  319. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/to_dot.rb +169 -0
  320. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/transaction_connection_validator.rb +78 -0
  321. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/extensions/virtual_row_method_block.rb +45 -0
  322. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/model/associations.rb +4066 -0
  323. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/model/base.rb +2360 -0
  324. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/model/dataset_module.rb +36 -0
  325. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/model/default_inflections.rb +47 -0
  326. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/model/errors.rb +67 -0
  327. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/model/exceptions.rb +67 -0
  328. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/model/inflections.rb +151 -0
  329. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/model/plugins.rb +165 -0
  330. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/model.rb +85 -0
  331. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/accessed_columns.rb +63 -0
  332. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/active_model.rb +124 -0
  333. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/after_initialize.rb +39 -0
  334. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/association_dependencies.rb +106 -0
  335. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/association_lazy_eager_option.rb +66 -0
  336. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/association_multi_add_remove.rb +85 -0
  337. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/association_pks.rb +316 -0
  338. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/association_proxies.rb +131 -0
  339. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/async_thread_pool.rb +39 -0
  340. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/auto_restrict_eager_graph.rb +62 -0
  341. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/auto_validations.rb +302 -0
  342. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/auto_validations_constraint_validations_presence_message.rb +68 -0
  343. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/before_after_save.rb +8 -0
  344. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/blacklist_security.rb +104 -0
  345. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/boolean_readers.rb +59 -0
  346. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/boolean_subsets.rb +64 -0
  347. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/caching.rb +164 -0
  348. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/class_table_inheritance.rb +439 -0
  349. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/class_table_inheritance_constraint_validations.rb +82 -0
  350. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/column_conflicts.rb +108 -0
  351. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/column_encryption.rb +749 -0
  352. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/column_select.rb +61 -0
  353. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/columns_updated.rb +42 -0
  354. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/composition.rb +205 -0
  355. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/concurrent_eager_loading.rb +174 -0
  356. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/constraint_validations.rb +259 -0
  357. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/csv_serializer.rb +196 -0
  358. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/dataset_associations.rb +152 -0
  359. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/def_dataset_method.rb +90 -0
  360. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/defaults_setter.rb +158 -0
  361. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/delay_add_association.rb +53 -0
  362. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/deprecated_associations.rb +151 -0
  363. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/detect_unnecessary_association_options.rb +164 -0
  364. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/dirty.rb +276 -0
  365. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/eager_each.rb +88 -0
  366. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/eager_graph_eager.rb +139 -0
  367. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/empty_failure_backtraces.rb +38 -0
  368. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/enum.rb +124 -0
  369. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/error_splitter.rb +61 -0
  370. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/finder.rb +248 -0
  371. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/forbid_lazy_load.rb +229 -0
  372. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/force_encoding.rb +78 -0
  373. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/hook_class_methods.rb +110 -0
  374. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/input_transformer.rb +89 -0
  375. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/insert_conflict.rb +76 -0
  376. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/insert_returning_select.rb +81 -0
  377. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/inspect_pk.rb +44 -0
  378. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/instance_filters.rb +138 -0
  379. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/instance_hooks.rb +115 -0
  380. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/instance_specific_default.rb +113 -0
  381. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/inverted_subsets.rb +60 -0
  382. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/json_serializer.rb +445 -0
  383. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/lazy_attributes.rb +126 -0
  384. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/list.rb +208 -0
  385. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/many_through_many.rb +437 -0
  386. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/modification_detection.rb +102 -0
  387. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/mssql_optimistic_locking.rb +65 -0
  388. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/nested_attributes.rb +340 -0
  389. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/optimistic_locking.rb +54 -0
  390. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/optimistic_locking_base.rb +55 -0
  391. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/paged_operations.rb +184 -0
  392. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/pg_array_associations.rb +580 -0
  393. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/pg_auto_constraint_validations.rb +361 -0
  394. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/pg_auto_validate_enums.rb +88 -0
  395. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/pg_eager_any_typed_array.rb +95 -0
  396. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/pg_row.rb +79 -0
  397. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/pg_xmin_optimistic_locking.rb +109 -0
  398. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/prepared_statements.rb +196 -0
  399. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/prepared_statements_safe.rb +82 -0
  400. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/primary_key_lookup_check_values.rb +154 -0
  401. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/rcte_tree.rb +343 -0
  402. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/require_valid_schema.rb +67 -0
  403. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/serialization.rb +242 -0
  404. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/serialization_modification_detection.rb +87 -0
  405. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/sharding.rb +126 -0
  406. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/single_statement_dataset_destroy.rb +49 -0
  407. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/single_table_inheritance.rb +271 -0
  408. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/singular_table_names.rb +33 -0
  409. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/skip_create_refresh.rb +37 -0
  410. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/skip_saving_columns.rb +108 -0
  411. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/split_values.rb +81 -0
  412. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/sql_comments.rb +194 -0
  413. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/static_cache.rb +315 -0
  414. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/static_cache_cache.rb +94 -0
  415. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/string_stripper.rb +59 -0
  416. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/subclasses.rb +96 -0
  417. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/subset_conditions.rb +128 -0
  418. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/subset_static_cache.rb +278 -0
  419. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/table_select.rb +50 -0
  420. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/tactical_eager_loading.rb +216 -0
  421. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/throw_failures.rb +110 -0
  422. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/timestamps.rb +109 -0
  423. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/touch.rb +153 -0
  424. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/tree.rb +188 -0
  425. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/typecast_on_load.rb +90 -0
  426. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/unlimited_update.rb +27 -0
  427. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/unused_associations.rb +529 -0
  428. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/update_or_create.rb +64 -0
  429. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/update_primary_key.rb +72 -0
  430. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/update_refresh.rb +88 -0
  431. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/uuid.rb +70 -0
  432. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/validate_associated.rb +85 -0
  433. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/validation_class_methods.rb +460 -0
  434. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/validation_contexts.rb +49 -0
  435. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/validation_helpers.rb +351 -0
  436. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/validation_helpers_generic_type_messages.rb +73 -0
  437. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/whitelist_security.rb +122 -0
  438. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/plugins/xml_serializer.rb +411 -0
  439. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/sql.rb +2061 -0
  440. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/timezones.rb +254 -0
  441. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel/version.rb +25 -0
  442. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sequel-5.102.0/lib/sequel.rb +3 -0
  443. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/CHANGELOG.md +1014 -0
  444. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/CONTRIBUTING.md +60 -0
  445. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/FAQ.md +399 -0
  446. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/INSTALLATION.md +267 -0
  447. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/LICENSE +23 -0
  448. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/README.md +198 -0
  449. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/dependencies.yml +13 -0
  450. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/ext/sqlite3/aggregator.c +270 -0
  451. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/ext/sqlite3/aggregator.h +10 -0
  452. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/ext/sqlite3/backup.c +190 -0
  453. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/ext/sqlite3/backup.h +15 -0
  454. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/ext/sqlite3/database.c +1006 -0
  455. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/ext/sqlite3/database.h +28 -0
  456. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/ext/sqlite3/exception.c +122 -0
  457. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/ext/sqlite3/exception.h +12 -0
  458. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/ext/sqlite3/extconf.rb +297 -0
  459. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/ext/sqlite3/sqlite3.c +225 -0
  460. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/ext/sqlite3/sqlite3_ruby.h +48 -0
  461. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/ext/sqlite3/statement.c +739 -0
  462. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/ext/sqlite3/statement.h +17 -0
  463. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/ext/sqlite3/timespec.h +20 -0
  464. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/lib/sqlite3/3.2/sqlite3_native.so +0 -0
  465. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/lib/sqlite3/3.3/sqlite3_native.so +0 -0
  466. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/lib/sqlite3/3.4/sqlite3_native.so +0 -0
  467. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/lib/sqlite3/4.0/sqlite3_native.so +0 -0
  468. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/lib/sqlite3/constants.rb +198 -0
  469. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/lib/sqlite3/database.rb +798 -0
  470. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/lib/sqlite3/errors.rb +88 -0
  471. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/lib/sqlite3/fork_safety.rb +66 -0
  472. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/lib/sqlite3/pragmas.rb +648 -0
  473. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/lib/sqlite3/resultset.rb +96 -0
  474. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/lib/sqlite3/statement.rb +190 -0
  475. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/lib/sqlite3/value.rb +54 -0
  476. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/lib/sqlite3/version.rb +4 -0
  477. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/lib/sqlite3/version_info.rb +17 -0
  478. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/sqlite3-2.9.1-x64-mingw-ucrt/lib/sqlite3.rb +19 -0
  479. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/Gemfile +10 -0
  480. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/LICENSE.txt +22 -0
  481. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/README.md +63 -0
  482. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/Rakefile +10 -0
  483. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/accesslog.rb +157 -0
  484. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/cgi.rb +313 -0
  485. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/compat.rb +36 -0
  486. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/config.rb +158 -0
  487. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/cookie.rb +172 -0
  488. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/htmlutils.rb +30 -0
  489. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httpauth/authenticator.rb +117 -0
  490. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httpauth/basicauth.rb +116 -0
  491. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httpauth/digestauth.rb +395 -0
  492. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httpauth/htdigest.rb +132 -0
  493. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httpauth/htgroup.rb +97 -0
  494. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httpauth/htpasswd.rb +158 -0
  495. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httpauth/userdb.rb +53 -0
  496. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httpauth.rb +96 -0
  497. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httpproxy.rb +354 -0
  498. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httprequest.rb +668 -0
  499. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httpresponse.rb +588 -0
  500. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/https.rb +152 -0
  501. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httpserver.rb +294 -0
  502. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httpservlet/abstract.rb +152 -0
  503. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httpservlet/cgi_runner.rb +47 -0
  504. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httpservlet/cgihandler.rb +126 -0
  505. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httpservlet/erbhandler.rb +88 -0
  506. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httpservlet/filehandler.rb +552 -0
  507. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httpservlet/prochandler.rb +48 -0
  508. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httpservlet.rb +23 -0
  509. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httpstatus.rb +194 -0
  510. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httputils.rb +543 -0
  511. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/httpversion.rb +76 -0
  512. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/log.rb +156 -0
  513. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/server.rb +380 -0
  514. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/ssl.rb +219 -0
  515. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/utils.rb +265 -0
  516. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick/version.rb +18 -0
  517. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/lib/webrick.rb +232 -0
  518. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/accesslog.rbs +24 -0
  519. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/cgi.rbs +92 -0
  520. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/compat.rbs +18 -0
  521. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/config.rbs +17 -0
  522. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/cookie.rbs +37 -0
  523. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/htmlutils.rbs +5 -0
  524. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httpauth/authenticator.rbs +55 -0
  525. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httpauth/basicauth.rbs +29 -0
  526. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httpauth/digestauth.rbs +85 -0
  527. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httpauth/htdigest.rbs +31 -0
  528. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httpauth/htgroup.rbs +21 -0
  529. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httpauth/htpasswd.rbs +31 -0
  530. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httpauth/userdb.rbs +13 -0
  531. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httpauth.rbs +13 -0
  532. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httpproxy.rbs +61 -0
  533. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httprequest.rbs +167 -0
  534. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httpresponse.rbs +117 -0
  535. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/https.rbs +49 -0
  536. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httpserver.rbs +71 -0
  537. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httpservlet/abstract.rbs +36 -0
  538. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httpservlet/cgi_runner.rbs +3 -0
  539. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httpservlet/cgihandler.rbs +23 -0
  540. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httpservlet/erbhandler.rbs +17 -0
  541. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httpservlet/filehandler.rbs +76 -0
  542. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httpservlet/prochandler.rbs +21 -0
  543. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httpservlet.rbs +4 -0
  544. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httpstatus.rbs +255 -0
  545. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httputils.rbs +116 -0
  546. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/httpversion.rbs +17 -0
  547. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/log.rbs +93 -0
  548. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/manifest.yaml +8 -0
  549. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/server.rbs +57 -0
  550. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/ssl.rbs +19 -0
  551. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/utils.rbs +122 -0
  552. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/sig/version.rbs +3 -0
  553. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/gems/webrick-1.9.2/webrick.gemspec +105 -0
  554. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/specifications/bigdecimal-4.0.1.gemspec +25 -0
  555. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/specifications/rack-3.2.5.gemspec +31 -0
  556. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/specifications/rackup-2.3.1.gemspec +26 -0
  557. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/specifications/sequel-5.102.0.gemspec +36 -0
  558. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/specifications/sqlite3-2.9.1-x64-mingw-ucrt.gemspec +25 -0
  559. data/examples/demo_crud/vendor/bundle/ruby/3.4.0/specifications/webrick-1.9.2.gemspec +22 -0
  560. data/lib/serrano/application.rb +36 -0
  561. data/lib/serrano/cli/base.rb +92 -0
  562. data/lib/serrano/cli/generate.rb +285 -0
  563. data/lib/serrano/cli/templates/controller.rb.tt +92 -0
  564. data/lib/serrano/cli/templates/entity.rb.tt +43 -0
  565. data/lib/serrano/cli/templates/entity_validatable.rb.tt +136 -0
  566. data/lib/serrano/cli/templates/migration.rb.tt +19 -0
  567. data/lib/serrano/cli/templates/new_default_config.ru.tt +6 -0
  568. data/lib/serrano/cli/templates/new_default_db.rb.tt +3 -0
  569. data/lib/serrano/cli/templates/new_default_gemfile.tt +6 -0
  570. data/lib/serrano/cli/templates/new_minimal_config.ru.tt +5 -0
  571. data/lib/serrano/cli/templates/new_minimal_gemfile.tt +4 -0
  572. data/lib/serrano/cli/templates/new_project_config.ru.tt +8 -0
  573. data/lib/serrano/cli/templates/new_project_db.rb.tt +3 -0
  574. data/lib/serrano/cli/templates/new_project_gemfile.tt +8 -0
  575. data/lib/serrano/cli/templates/repository.rb.tt +42 -0
  576. data/lib/serrano/cli/templates/service_create.rb.tt +40 -0
  577. data/lib/serrano/cli/templates/service_destroy.rb.tt +20 -0
  578. data/lib/serrano/cli/templates/service_generic.rb.tt +15 -0
  579. data/lib/serrano/cli/templates/service_index.rb.tt +17 -0
  580. data/lib/serrano/cli/templates/service_show.rb.tt +20 -0
  581. data/lib/serrano/cli/templates/service_update.rb.tt +41 -0
  582. data/lib/serrano/dispatcher.rb +53 -0
  583. data/lib/serrano/request.rb +78 -0
  584. data/lib/serrano/response.rb +33 -0
  585. data/lib/serrano/router.rb +80 -0
  586. data/lib/serrano/version.rb +5 -0
  587. data/lib/serrano.rb +11 -0
  588. metadata +768 -0
@@ -0,0 +1,228 @@
1
+ # frozen-string-literal: true
2
+
3
+ Sequel::JDBC.load_driver('Java::OrgHsqldb::jdbcDriver', :HSQLDB)
4
+ require_relative 'transactions'
5
+ require_relative '../../extensions/auto_cast_date_and_time'
6
+
7
+ module Sequel
8
+ module JDBC
9
+ Sequel.synchronize do
10
+ DATABASE_SETUP[:hsqldb] = proc do |db|
11
+ db.extend(Sequel::JDBC::HSQLDB::DatabaseMethods)
12
+ db.dataset_class = Sequel::JDBC::HSQLDB::Dataset
13
+ Java::OrgHsqldb::jdbcDriver
14
+ end
15
+ end
16
+
17
+ module HSQLDB
18
+ module DatabaseMethods
19
+ include AutoCastDateAndTime
20
+ include ::Sequel::JDBC::Transactions
21
+
22
+ def database_type
23
+ :hsqldb
24
+ end
25
+
26
+ def freeze
27
+ db_version
28
+ super
29
+ end
30
+
31
+ # HSQLDB uses an IDENTITY sequence as the default value for primary
32
+ # key columns.
33
+ def serial_primary_key_options
34
+ {:primary_key => true, :type => :integer, :identity=>true, :start_with=>1}
35
+ end
36
+
37
+ # The version of the database, as an integer (e.g 2.2.5 -> 20205)
38
+ def db_version
39
+ return @db_version if defined?(@db_version)
40
+ v = get(Sequel.function(:DATABASE_VERSION))
41
+ @db_version = if v =~ /(\d+)\.(\d+)\.(\d+)/
42
+ $1.to_i * 10000 + $2.to_i * 100 + $3.to_i
43
+ end
44
+ end
45
+
46
+ # HSQLDB supports DROP TABLE IF EXISTS
47
+ def supports_drop_table_if_exists?
48
+ true
49
+ end
50
+
51
+ private
52
+
53
+ def alter_table_sql(table, op)
54
+ case op[:op]
55
+ when :add_column
56
+ if op[:table]
57
+ [super(table, op.merge(:table=>nil)),
58
+ alter_table_sql(table, op.merge(:op=>:add_constraint, :type=>:foreign_key, :name=>op[:foreign_key_constraint_name], :columns=>[op[:name]], :table=>op[:table]))]
59
+ else
60
+ super
61
+ end
62
+ when :rename_column
63
+ "ALTER TABLE #{quote_schema_table(table)} ALTER COLUMN #{quote_identifier(op[:name])} RENAME TO #{quote_identifier(op[:new_name])}"
64
+ when :set_column_type
65
+ "ALTER TABLE #{quote_schema_table(table)} ALTER COLUMN #{quote_identifier(op[:name])} SET DATA TYPE #{type_literal(op)}"
66
+ when :set_column_null
67
+ "ALTER TABLE #{quote_schema_table(table)} ALTER COLUMN #{quote_identifier(op[:name])} SET #{op[:null] ? 'NULL' : 'NOT NULL'}"
68
+ else
69
+ super
70
+ end
71
+ end
72
+
73
+ # HSQLDB requires parens around the SELECT, and the WITH DATA syntax.
74
+ def create_table_as_sql(name, sql, options)
75
+ "#{create_table_prefix_sql(name, options)} AS (#{sql}) WITH DATA"
76
+ end
77
+
78
+ DATABASE_ERROR_REGEXPS = {
79
+ /integrity constraint violation: unique constraint or index violation/ => UniqueConstraintViolation,
80
+ /integrity constraint violation: foreign key/ => ForeignKeyConstraintViolation,
81
+ /integrity constraint violation: check constraint/ => CheckConstraintViolation,
82
+ /integrity constraint violation: NOT NULL check constraint/ => NotNullConstraintViolation,
83
+ /serialization failure/ => SerializationFailure,
84
+ }.freeze
85
+ def database_error_regexps
86
+ DATABASE_ERROR_REGEXPS
87
+ end
88
+
89
+ # IF EXISTS comes after table name on HSQLDB
90
+ def drop_table_sql(name, options)
91
+ "DROP TABLE #{quote_schema_table(name)}#{' IF EXISTS' if options[:if_exists]}#{' CASCADE' if options[:cascade]}"
92
+ end
93
+
94
+ # IF EXISTS comes after view name on HSQLDB
95
+ def drop_view_sql(name, options)
96
+ "DROP VIEW #{quote_schema_table(name)}#{' IF EXISTS' if options[:if_exists]}#{' CASCADE' if options[:cascade]}"
97
+ end
98
+
99
+ # Use IDENTITY() to get the last inserted id.
100
+ def last_insert_id(conn, opts=OPTS)
101
+ statement(conn) do |stmt|
102
+ sql = 'CALL IDENTITY()'
103
+ rs = log_connection_yield(sql, conn){stmt.executeQuery(sql)}
104
+ rs.next
105
+ rs.getLong(1)
106
+ end
107
+ end
108
+
109
+ # Primary key indexes appear to start with sys_idx_sys_pk_ on HSQLDB
110
+ def primary_key_index_re
111
+ /\Asys_idx_sys_pk_/i
112
+ end
113
+
114
+ # If an :identity option is present in the column, add the necessary IDENTITY SQL.
115
+ # It's possible to use an IDENTITY type, but that defaults the sequence to start
116
+ # at 0 instead of 1, and we don't want that.
117
+ def type_literal(column)
118
+ if column[:identity]
119
+ sql = "#{super} GENERATED BY DEFAULT AS IDENTITY"
120
+ if sw = column[:start_with]
121
+ sql += " (START WITH #{sw.to_i}"
122
+ sql << " INCREMENT BY #{column[:increment_by].to_i}" if column[:increment_by]
123
+ sql << ")"
124
+ end
125
+ sql
126
+ else
127
+ super
128
+ end
129
+ end
130
+
131
+ # HSQLDB uses clob for text types.
132
+ def uses_clob_for_text?
133
+ true
134
+ end
135
+
136
+ # HSQLDB supports views with check option.
137
+ def view_with_check_option_support
138
+ :local
139
+ end
140
+ end
141
+
142
+ class Dataset < JDBC::Dataset
143
+ # Handle HSQLDB specific case insensitive LIKE and bitwise operator support.
144
+ def complex_expression_sql_append(sql, op, args)
145
+ case op
146
+ when :ILIKE, :"NOT ILIKE"
147
+ super(sql, (op == :ILIKE ? :LIKE : :"NOT LIKE"), args.map{|v| SQL::Function.new(:ucase, v)})
148
+ when :&, :|, :^, :%, :<<, :>>, :'B~'
149
+ complex_expression_emulate_append(sql, op, args)
150
+ else
151
+ super
152
+ end
153
+ end
154
+
155
+ # HSQLDB requires recursive CTEs to have column aliases.
156
+ def recursive_cte_requires_column_aliases?
157
+ true
158
+ end
159
+
160
+ # HSQLDB requires SQL standard datetimes in some places.
161
+ def requires_sql_standard_datetimes?
162
+ true
163
+ end
164
+
165
+ # HSQLDB does support common table expressions, but the support is broken.
166
+ # CTEs operate more like temprorary tables or views, lasting longer than the duration of the expression.
167
+ # CTEs in earlier queries might take precedence over CTEs with the same name in later queries.
168
+ # Also, if any CTE is recursive, all CTEs must be recursive.
169
+ # If you want to use CTEs with HSQLDB, you'll have to manually modify the dataset to allow it.
170
+ def supports_cte?(type=:select)
171
+ false
172
+ end
173
+
174
+ # HSQLDB does not support IS TRUE.
175
+ def supports_is_true?
176
+ false
177
+ end
178
+
179
+ # HSQLDB supports lateral subqueries.
180
+ def supports_lateral_subqueries?
181
+ true
182
+ end
183
+
184
+ # HSQLDB 2.3.4+ supports MERGE. Older versions also support MERGE, but not all
185
+ # features that are in Sequel's tests.
186
+ def supports_merge?
187
+ db.db_version >= 20304
188
+ end
189
+
190
+ private
191
+
192
+ def empty_from_sql
193
+ " FROM (VALUES (0))"
194
+ end
195
+
196
+ # Use string in hex format for blob data.
197
+ def literal_blob_append(sql, v)
198
+ sql << "X'" << v.unpack("H*").first << "'"
199
+ end
200
+
201
+ # HSQLDB uses FALSE for false values.
202
+ def literal_false
203
+ 'FALSE'
204
+ end
205
+
206
+ # HSQLDB handles fractional seconds in timestamps, but not in times
207
+ def literal_sqltime(v)
208
+ v.strftime("'%H:%M:%S'")
209
+ end
210
+
211
+ # HSQLDB uses TRUE for true values.
212
+ def literal_true
213
+ 'TRUE'
214
+ end
215
+
216
+ # HSQLDB supports multiple rows in INSERT.
217
+ def multi_insert_sql_strategy
218
+ :values
219
+ end
220
+
221
+ # Use WITH RECURSIVE instead of WITH if any of the CTEs is recursive
222
+ def select_with_sql_base
223
+ opts[:with].any?{|w| w[:recursive]} ? "WITH RECURSIVE " : super
224
+ end
225
+ end
226
+ end
227
+ end
228
+ end
@@ -0,0 +1,39 @@
1
+ # frozen-string-literal: true
2
+
3
+ Sequel::JDBC.load_driver('Java::NetSourceforgeJtdsJdbc::Driver', :JTDS)
4
+ require_relative 'mssql'
5
+
6
+ module Sequel
7
+ module JDBC
8
+ Sequel.synchronize do
9
+ DATABASE_SETUP[:jtds] = proc do |db|
10
+ db.extend(Sequel::JDBC::JTDS::DatabaseMethods)
11
+ db.extend_datasets Sequel::MSSQL::DatasetMethods
12
+ db.send(:set_mssql_unicode_strings)
13
+ Java::NetSourceforgeJtdsJdbc::Driver
14
+ end
15
+ end
16
+
17
+ module JTDS
18
+ module DatabaseMethods
19
+ include Sequel::JDBC::MSSQL::DatabaseMethods
20
+
21
+ private
22
+
23
+ # JTDS exception handling with SQLState is less accurate than with regexps.
24
+ def database_exception_use_sqlstates?
25
+ false
26
+ end
27
+
28
+ def disconnect_error?(exception, opts)
29
+ super || exception.message =~ /\AInvalid state, the Connection object is closed\.\z/
30
+ end
31
+
32
+ # Handle nil values by using setNull with the correct parameter type.
33
+ def set_ps_arg_nil(cps, i)
34
+ cps.setNull(i, cps.getParameterMetaData.getParameterType(i))
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,30 @@
1
+ # frozen-string-literal: true
2
+
3
+ require_relative '../shared/mssql'
4
+
5
+ module Sequel
6
+ module JDBC
7
+ module MSSQL
8
+ module DatabaseMethods
9
+ include Sequel::MSSQL::DatabaseMethods
10
+
11
+ private
12
+
13
+ # Get the last inserted id using SCOPE_IDENTITY().
14
+ def last_insert_id(conn, opts=OPTS)
15
+ statement(conn) do |stmt|
16
+ sql = opts[:prepared] ? 'SELECT @@IDENTITY' : 'SELECT SCOPE_IDENTITY()'
17
+ rs = log_connection_yield(sql, conn){stmt.executeQuery(sql)}
18
+ rs.next
19
+ rs.getLong(1)
20
+ end
21
+ end
22
+
23
+ # Primary key indexes appear to start with pk__ on MSSQL
24
+ def primary_key_index_re
25
+ /\Apk__/i
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,89 @@
1
+ # frozen-string-literal: true
2
+
3
+ module Sequel
4
+ module JDBC
5
+ driver = Sequel::JDBC.load_driver(%w'Java::ComMysqlCjJdbc::Driver Java::ComMysqlJdbc::Driver', :MySQL)
6
+ require_relative '../shared/mysql'
7
+
8
+ Sequel.synchronize do
9
+ DATABASE_SETUP[:mysql] = proc do |db|
10
+ db.extend(Sequel::JDBC::MySQL::DatabaseMethods)
11
+ db.extend_datasets Sequel::MySQL::DatasetMethods
12
+ driver
13
+ end
14
+ end
15
+
16
+ module MySQL
17
+ module DatabaseMethods
18
+ include Sequel::MySQL::DatabaseMethods
19
+
20
+ private
21
+
22
+ # MySQL exception handling with SQLState is less accurate than with regexps.
23
+ def database_exception_use_sqlstates?
24
+ false
25
+ end
26
+
27
+ # Raise a disconnect error if the SQL state of the cause of the exception indicates so.
28
+ def disconnect_error?(exception, opts)
29
+ exception.message.start_with?("Communications link failure") || super
30
+ end
31
+
32
+ # Get the last inserted id using LAST_INSERT_ID().
33
+ def last_insert_id(conn, opts=OPTS)
34
+ if stmt = opts[:stmt]
35
+ rs = stmt.getGeneratedKeys
36
+ begin
37
+ if rs.next
38
+ rs.getLong(1)
39
+ else
40
+ 0
41
+ end
42
+ ensure
43
+ rs.close
44
+ end
45
+ else
46
+ statement(conn) do |st|
47
+ rs = st.executeQuery('SELECT LAST_INSERT_ID()')
48
+ rs.next
49
+ rs.getLong(1)
50
+ end
51
+ end
52
+ end
53
+
54
+ # MySQL 5.1.12 JDBC adapter requires generated keys
55
+ # and previous versions don't mind.
56
+ def execute_statement_insert(stmt, sql)
57
+ stmt.executeUpdate(sql, JavaSQL::Statement::RETURN_GENERATED_KEYS)
58
+ end
59
+
60
+ # Return generated keys for insert statements.
61
+ def prepare_jdbc_statement(conn, sql, opts)
62
+ opts[:type] == :insert ? conn.prepareStatement(sql, JavaSQL::Statement::RETURN_GENERATED_KEYS) : super
63
+ end
64
+
65
+ # Convert tinyint(1) type to boolean
66
+ def schema_column_type(db_type)
67
+ db_type.start_with?("tinyint(1)") ? :boolean : super
68
+ end
69
+
70
+ # Run the default connection setting SQL statements.
71
+ # Apply the connectiong setting SQLs for every new connection.
72
+ def setup_connection(conn)
73
+ mysql_connection_setting_sqls.each{|sql| statement(conn){|s| log_connection_yield(sql, conn){s.execute(sql)}}}
74
+ super
75
+ end
76
+
77
+ # Handle unsigned integer values
78
+ def setup_type_convertor_map
79
+ super
80
+ TypeConvertor::BASIC_MAP.dup
81
+ @type_convertor_map[Java::JavaSQL::Types::SMALLINT] = @type_convertor_map[Java::JavaSQL::Types::INTEGER]
82
+ @type_convertor_map[Java::JavaSQL::Types::INTEGER] = @type_convertor_map[Java::JavaSQL::Types::BIGINT]
83
+ @basic_type_convertor_map[Java::JavaSQL::Types::SMALLINT] = @basic_type_convertor_map[Java::JavaSQL::Types::INTEGER]
84
+ @basic_type_convertor_map[Java::JavaSQL::Types::INTEGER] = @basic_type_convertor_map[Java::JavaSQL::Types::BIGINT]
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,146 @@
1
+ # frozen-string-literal: true
2
+
3
+ Sequel::JDBC.load_driver('Java::OracleJdbcDriver::OracleDriver')
4
+ require_relative '../shared/oracle'
5
+ require_relative 'transactions'
6
+
7
+ module Sequel
8
+ module JDBC
9
+ Sequel.synchronize do
10
+ DATABASE_SETUP[:oracle] = proc do |db|
11
+ db.extend(Sequel::JDBC::Oracle::DatabaseMethods)
12
+ db.dataset_class = Sequel::JDBC::Oracle::Dataset
13
+ Java::OracleJdbcDriver::OracleDriver
14
+ end
15
+ end
16
+
17
+ module Oracle
18
+ JAVA_BIG_DECIMAL_CONSTRUCTOR = Java::JavaMath::BigDecimal.java_class.constructor(Java::long).method(:new_instance)
19
+ ORACLE_DECIMAL = Object.new
20
+ def ORACLE_DECIMAL.call(r, i)
21
+ if v = r.getBigDecimal(i)
22
+ i = v.long_value
23
+ if v == JAVA_BIG_DECIMAL_CONSTRUCTOR.call(i)
24
+ i
25
+ else
26
+ ::Kernel::BigDecimal(v.to_string)
27
+ end
28
+ end
29
+ end
30
+
31
+ ORACLE_CLOB = Object.new
32
+ def ORACLE_CLOB.call(r, i)
33
+ return unless clob = r.getClob(i)
34
+ str = clob.getSubString(1, clob.length)
35
+ clob.freeTemporary if clob.isTemporary
36
+ str
37
+ end
38
+
39
+ module DatabaseMethods
40
+ include Sequel::Oracle::DatabaseMethods
41
+ include Sequel::JDBC::Transactions
42
+
43
+ def self.extended(db)
44
+ db.instance_exec do
45
+ @autosequence = opts[:autosequence]
46
+ @primary_key_sequences = {}
47
+ end
48
+ end
49
+
50
+ private
51
+
52
+ # Oracle exception handling with SQLState is less accurate than with regexps.
53
+ def database_exception_use_sqlstates?
54
+ false
55
+ end
56
+
57
+ def disconnect_error?(exception, opts)
58
+ super || exception.message.start_with?("Closed Connection")
59
+ end
60
+
61
+ # Default the fetch size for statements to 100, similar to the oci8-based oracle adapter.
62
+ def default_fetch_size
63
+ 100
64
+ end
65
+
66
+ def last_insert_id(conn, opts)
67
+ unless sequence = opts[:sequence]
68
+ if t = opts[:table]
69
+ sequence = sequence_for_table(t)
70
+ end
71
+ end
72
+ if sequence
73
+ sql = "SELECT #{literal(sequence)}.currval FROM dual"
74
+ statement(conn) do |stmt|
75
+ begin
76
+ rs = log_connection_yield(sql, conn){stmt.executeQuery(sql)}
77
+ rs.next
78
+ rs.getLong(1)
79
+ rescue Java::JavaSql::SQLException
80
+ nil
81
+ end
82
+ end
83
+ end
84
+ end
85
+
86
+ # Primary key indexes appear to start with sys_ on Oracle
87
+ def primary_key_index_re
88
+ /\Asys_/i
89
+ end
90
+
91
+ def schema_parse_table(*)
92
+ sch = super
93
+ sch.each do |c, s|
94
+ if s[:type] == :decimal && s[:scale] == -127
95
+ s[:type] = :integer
96
+ elsif s[:db_type] == 'DATE'
97
+ s[:type] = :datetime
98
+ end
99
+ end
100
+ sch
101
+ end
102
+
103
+ def schema_parse_table_skip?(h, schema)
104
+ super || (h[:table_schem] != current_user unless schema)
105
+ end
106
+
107
+ # As of Oracle 9.2, releasing savepoints is no longer supported.
108
+ def supports_releasing_savepoints?
109
+ false
110
+ end
111
+
112
+ def setup_type_convertor_map
113
+ super
114
+ @type_convertor_map[:OracleDecimal] = ORACLE_DECIMAL
115
+ @type_convertor_map[:OracleClob] = ORACLE_CLOB
116
+ end
117
+ end
118
+
119
+ class Dataset < JDBC::Dataset
120
+ include Sequel::Oracle::DatasetMethods
121
+
122
+ NUMERIC_TYPE = Java::JavaSQL::Types::NUMERIC
123
+ TIMESTAMP_TYPE = Java::JavaSQL::Types::TIMESTAMP
124
+ CLOB_TYPE = Java::JavaSQL::Types::CLOB
125
+ TIMESTAMPTZ_TYPES = [Java::OracleJdbc::OracleTypes::TIMESTAMPTZ, Java::OracleJdbc::OracleTypes::TIMESTAMPLTZ].freeze
126
+
127
+ def type_convertor(map, meta, type, i)
128
+ case type
129
+ when NUMERIC_TYPE
130
+ if meta.getScale(i) == 0
131
+ map[:OracleDecimal]
132
+ else
133
+ super
134
+ end
135
+ when *TIMESTAMPTZ_TYPES
136
+ map[TIMESTAMP_TYPE]
137
+ when CLOB_TYPE
138
+ map[:OracleClob]
139
+ else
140
+ super
141
+ end
142
+ end
143
+ end
144
+ end
145
+ end
146
+ end