active_cached_resource 0.1.0 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (317) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/LICENSE +21 -0
  4. data/lib/active_cached_resource/caching.rb +104 -1
  5. data/lib/active_cached_resource/configuration.rb +22 -1
  6. data/lib/active_cached_resource/logger.rb +14 -0
  7. data/lib/active_cached_resource/model.rb +18 -0
  8. data/lib/active_cached_resource/version.rb +1 -8
  9. data/lib/activeresource/lib/active_resource/collection.rb +2 -0
  10. metadata +4 -310
  11. data/.rspec +0 -3
  12. data/.rubocop.yml +0 -23
  13. data/.standard.yml +0 -2
  14. data/Rakefile +0 -29
  15. data/example/consumer/.dockerignore +0 -41
  16. data/example/consumer/.gitattributes +0 -9
  17. data/example/consumer/.gitignore +0 -36
  18. data/example/consumer/.kamal/hooks/docker-setup.sample +0 -3
  19. data/example/consumer/.kamal/hooks/post-deploy.sample +0 -14
  20. data/example/consumer/.kamal/hooks/post-proxy-reboot.sample +0 -3
  21. data/example/consumer/.kamal/hooks/pre-build.sample +0 -51
  22. data/example/consumer/.kamal/hooks/pre-connect.sample +0 -47
  23. data/example/consumer/.kamal/hooks/pre-deploy.sample +0 -109
  24. data/example/consumer/.kamal/hooks/pre-proxy-reboot.sample +0 -3
  25. data/example/consumer/.kamal/secrets +0 -17
  26. data/example/consumer/Dockerfile +0 -65
  27. data/example/consumer/Gemfile +0 -17
  28. data/example/consumer/Rakefile +0 -6
  29. data/example/consumer/app/controllers/application_controller.rb +0 -2
  30. data/example/consumer/app/controllers/concerns/.keep +0 -0
  31. data/example/consumer/app/jobs/application_job.rb +0 -7
  32. data/example/consumer/app/mailers/application_mailer.rb +0 -4
  33. data/example/consumer/app/models/application_record.rb +0 -3
  34. data/example/consumer/app/models/concerns/.keep +0 -0
  35. data/example/consumer/app/models/person.rb +0 -9
  36. data/example/consumer/app/views/layouts/mailer.html.erb +0 -13
  37. data/example/consumer/app/views/layouts/mailer.text.erb +0 -1
  38. data/example/consumer/bin/brakeman +0 -7
  39. data/example/consumer/bin/bundle +0 -109
  40. data/example/consumer/bin/dev +0 -2
  41. data/example/consumer/bin/docker-entrypoint +0 -14
  42. data/example/consumer/bin/jobs +0 -6
  43. data/example/consumer/bin/kamal +0 -27
  44. data/example/consumer/bin/rails +0 -4
  45. data/example/consumer/bin/rake +0 -4
  46. data/example/consumer/bin/rubocop +0 -8
  47. data/example/consumer/bin/setup +0 -34
  48. data/example/consumer/bin/thrust +0 -5
  49. data/example/consumer/config/application.rb +0 -20
  50. data/example/consumer/config/boot.rb +0 -3
  51. data/example/consumer/config/cache.yml +0 -16
  52. data/example/consumer/config/credentials.yml.enc +0 -1
  53. data/example/consumer/config/database.yml +0 -14
  54. data/example/consumer/config/deploy.yml +0 -116
  55. data/example/consumer/config/environment.rb +0 -5
  56. data/example/consumer/config/environments/development.rb +0 -64
  57. data/example/consumer/config/environments/production.rb +0 -85
  58. data/example/consumer/config/environments/test.rb +0 -50
  59. data/example/consumer/config/initializers/cors.rb +0 -16
  60. data/example/consumer/config/initializers/filter_parameter_logging.rb +0 -8
  61. data/example/consumer/config/initializers/inflections.rb +0 -16
  62. data/example/consumer/config/locales/en.yml +0 -31
  63. data/example/consumer/config/puma.rb +0 -41
  64. data/example/consumer/config/queue.yml +0 -18
  65. data/example/consumer/config/recurring.yml +0 -10
  66. data/example/consumer/config/routes.rb +0 -10
  67. data/example/consumer/config.ru +0 -6
  68. data/example/consumer/db/cache_schema.rb +0 -14
  69. data/example/consumer/db/queue_schema.rb +0 -129
  70. data/example/consumer/db/seeds.rb +0 -0
  71. data/example/consumer/lib/tasks/.keep +0 -0
  72. data/example/consumer/log/.keep +0 -0
  73. data/example/consumer/public/robots.txt +0 -1
  74. data/example/consumer/script/.keep +0 -0
  75. data/example/consumer/storage/.keep +0 -0
  76. data/example/consumer/tmp/.keep +0 -0
  77. data/example/consumer/tmp/cache/.keep +0 -0
  78. data/example/consumer/tmp/pids/.keep +0 -0
  79. data/example/consumer/tmp/storage/.keep +0 -0
  80. data/example/consumer/vendor/.keep +0 -0
  81. data/example/provider/.dockerignore +0 -41
  82. data/example/provider/.gitattributes +0 -9
  83. data/example/provider/.gitignore +0 -32
  84. data/example/provider/.kamal/hooks/docker-setup.sample +0 -3
  85. data/example/provider/.kamal/hooks/post-deploy.sample +0 -14
  86. data/example/provider/.kamal/hooks/post-proxy-reboot.sample +0 -3
  87. data/example/provider/.kamal/hooks/pre-build.sample +0 -51
  88. data/example/provider/.kamal/hooks/pre-connect.sample +0 -47
  89. data/example/provider/.kamal/hooks/pre-deploy.sample +0 -109
  90. data/example/provider/.kamal/hooks/pre-proxy-reboot.sample +0 -3
  91. data/example/provider/.kamal/secrets +0 -17
  92. data/example/provider/Dockerfile +0 -65
  93. data/example/provider/Gemfile +0 -14
  94. data/example/provider/Rakefile +0 -6
  95. data/example/provider/app/controllers/application_controller.rb +0 -2
  96. data/example/provider/app/controllers/concerns/.keep +0 -0
  97. data/example/provider/app/controllers/people_controller.rb +0 -68
  98. data/example/provider/app/jobs/application_job.rb +0 -7
  99. data/example/provider/app/mailers/application_mailer.rb +0 -4
  100. data/example/provider/app/models/address.rb +0 -3
  101. data/example/provider/app/models/application_record.rb +0 -3
  102. data/example/provider/app/models/company.rb +0 -3
  103. data/example/provider/app/models/concerns/.keep +0 -0
  104. data/example/provider/app/models/person.rb +0 -6
  105. data/example/provider/app/views/layouts/mailer.html.erb +0 -13
  106. data/example/provider/app/views/layouts/mailer.text.erb +0 -1
  107. data/example/provider/bin/brakeman +0 -7
  108. data/example/provider/bin/bundle +0 -109
  109. data/example/provider/bin/dev +0 -2
  110. data/example/provider/bin/docker-entrypoint +0 -14
  111. data/example/provider/bin/jobs +0 -6
  112. data/example/provider/bin/kamal +0 -27
  113. data/example/provider/bin/rails +0 -4
  114. data/example/provider/bin/rake +0 -4
  115. data/example/provider/bin/rubocop +0 -8
  116. data/example/provider/bin/setup +0 -34
  117. data/example/provider/bin/thrust +0 -5
  118. data/example/provider/config/application.rb +0 -44
  119. data/example/provider/config/boot.rb +0 -3
  120. data/example/provider/config/cache.yml +0 -16
  121. data/example/provider/config/credentials.yml.enc +0 -1
  122. data/example/provider/config/database.yml +0 -20
  123. data/example/provider/config/deploy.yml +0 -116
  124. data/example/provider/config/environment.rb +0 -5
  125. data/example/provider/config/environments/development.rb +0 -64
  126. data/example/provider/config/environments/production.rb +0 -85
  127. data/example/provider/config/environments/test.rb +0 -50
  128. data/example/provider/config/initializers/cors.rb +0 -16
  129. data/example/provider/config/initializers/filter_parameter_logging.rb +0 -8
  130. data/example/provider/config/initializers/inflections.rb +0 -16
  131. data/example/provider/config/locales/en.yml +0 -31
  132. data/example/provider/config/puma.rb +0 -41
  133. data/example/provider/config/queue.yml +0 -18
  134. data/example/provider/config/recurring.yml +0 -10
  135. data/example/provider/config/routes.rb +0 -4
  136. data/example/provider/config.ru +0 -6
  137. data/example/provider/db/cache_schema.rb +0 -14
  138. data/example/provider/db/migrate/20241202183937_create_people.rb +0 -11
  139. data/example/provider/db/migrate/20241202183955_create_addresses.rb +0 -13
  140. data/example/provider/db/migrate/20241202184017_create_companies.rb +0 -14
  141. data/example/provider/db/queue_schema.rb +0 -129
  142. data/example/provider/db/schema.rb +0 -47
  143. data/example/provider/db/seeds.rb +0 -18
  144. data/example/provider/lib/tasks/.keep +0 -0
  145. data/example/provider/log/.keep +0 -0
  146. data/example/provider/public/robots.txt +0 -1
  147. data/example/provider/script/.keep +0 -0
  148. data/example/provider/storage/.keep +0 -0
  149. data/example/provider/tmp/.keep +0 -0
  150. data/example/provider/tmp/pids/.keep +0 -0
  151. data/example/provider/tmp/storage/.keep +0 -0
  152. data/example/provider/vendor/.keep +0 -0
  153. data/lib/activeresource/.gitignore +0 -15
  154. data/lib/activeresource/examples/performance.rb +0 -72
  155. data/lib/activeresource/test/abstract_unit.rb +0 -154
  156. data/lib/activeresource/test/cases/active_job_serializer_test.rb +0 -53
  157. data/lib/activeresource/test/cases/association_test.rb +0 -104
  158. data/lib/activeresource/test/cases/associations/builder/belongs_to_test.rb +0 -42
  159. data/lib/activeresource/test/cases/associations/builder/has_many_test.rb +0 -28
  160. data/lib/activeresource/test/cases/associations/builder/has_one_test.rb +0 -28
  161. data/lib/activeresource/test/cases/authorization_test.rb +0 -276
  162. data/lib/activeresource/test/cases/base/custom_methods_test.rb +0 -155
  163. data/lib/activeresource/test/cases/base/equality_test.rb +0 -53
  164. data/lib/activeresource/test/cases/base/load_test.rb +0 -249
  165. data/lib/activeresource/test/cases/base/schema_test.rb +0 -428
  166. data/lib/activeresource/test/cases/base_errors_test.rb +0 -129
  167. data/lib/activeresource/test/cases/base_test.rb +0 -1622
  168. data/lib/activeresource/test/cases/callbacks_test.rb +0 -155
  169. data/lib/activeresource/test/cases/collection_test.rb +0 -196
  170. data/lib/activeresource/test/cases/connection_test.rb +0 -357
  171. data/lib/activeresource/test/cases/finder_test.rb +0 -217
  172. data/lib/activeresource/test/cases/format_test.rb +0 -137
  173. data/lib/activeresource/test/cases/http_mock_test.rb +0 -213
  174. data/lib/activeresource/test/cases/inheritence_test.rb +0 -19
  175. data/lib/activeresource/test/cases/inheriting_hash_test.rb +0 -25
  176. data/lib/activeresource/test/cases/log_subscriber_test.rb +0 -64
  177. data/lib/activeresource/test/cases/reflection_test.rb +0 -65
  178. data/lib/activeresource/test/cases/validations_test.rb +0 -78
  179. data/lib/activeresource/test/fixtures/address.rb +0 -20
  180. data/lib/activeresource/test/fixtures/beast.rb +0 -16
  181. data/lib/activeresource/test/fixtures/comment.rb +0 -5
  182. data/lib/activeresource/test/fixtures/customer.rb +0 -5
  183. data/lib/activeresource/test/fixtures/fixtures.rbi +0 -46
  184. data/lib/activeresource/test/fixtures/inventory.rb +0 -14
  185. data/lib/activeresource/test/fixtures/person.rb +0 -15
  186. data/lib/activeresource/test/fixtures/pet.rb +0 -6
  187. data/lib/activeresource/test/fixtures/post.rb +0 -5
  188. data/lib/activeresource/test/fixtures/product.rb +0 -11
  189. data/lib/activeresource/test/fixtures/project.rb +0 -19
  190. data/lib/activeresource/test/fixtures/proxy.rb +0 -6
  191. data/lib/activeresource/test/fixtures/sound.rb +0 -11
  192. data/lib/activeresource/test/fixtures/street_address.rb +0 -6
  193. data/lib/activeresource/test/fixtures/subscription_plan.rb +0 -7
  194. data/lib/activeresource/test/fixtures/weather.rb +0 -21
  195. data/lib/activeresource/test/setter_trap.rb +0 -28
  196. data/lib/activeresource/test/singleton_test.rb +0 -138
  197. data/lib/activeresource/test/threadsafe_attributes_test.rb +0 -91
  198. data/sorbet/config +0 -6
  199. data/sorbet/rbi/annotations/.gitattributes +0 -1
  200. data/sorbet/rbi/annotations/activemodel.rbi +0 -89
  201. data/sorbet/rbi/annotations/activesupport.rbi +0 -457
  202. data/sorbet/rbi/annotations/minitest.rbi +0 -119
  203. data/sorbet/rbi/annotations/rainbow.rbi +0 -269
  204. data/sorbet/rbi/dsl/.gitattributes +0 -1
  205. data/sorbet/rbi/dsl/active_support/callbacks.rbi +0 -21
  206. data/sorbet/rbi/gems/.gitattributes +0 -1
  207. data/sorbet/rbi/gems/actioncable@8.0.1.rbi +0 -252
  208. data/sorbet/rbi/gems/actionmailbox@8.0.1.rbi +0 -9
  209. data/sorbet/rbi/gems/actionmailer@8.0.1.rbi +0 -9
  210. data/sorbet/rbi/gems/actionpack@8.0.1.rbi +0 -21111
  211. data/sorbet/rbi/gems/actiontext@8.0.1.rbi +0 -9
  212. data/sorbet/rbi/gems/actionview@8.0.1.rbi +0 -16409
  213. data/sorbet/rbi/gems/activejob@8.0.1.rbi +0 -90
  214. data/sorbet/rbi/gems/activemodel-serializers-xml@1.0.3.rbi +0 -166
  215. data/sorbet/rbi/gems/activemodel@8.0.1.rbi +0 -6865
  216. data/sorbet/rbi/gems/activerecord@8.0.1.rbi +0 -43277
  217. data/sorbet/rbi/gems/activestorage@8.0.1.rbi +0 -9
  218. data/sorbet/rbi/gems/activesupport@8.0.1.rbi +0 -21426
  219. data/sorbet/rbi/gems/ast@2.4.2.rbi +0 -585
  220. data/sorbet/rbi/gems/base64@0.2.0.rbi +0 -509
  221. data/sorbet/rbi/gems/benchmark@0.4.0.rbi +0 -618
  222. data/sorbet/rbi/gems/bigdecimal@3.1.8.rbi +0 -78
  223. data/sorbet/rbi/gems/builder@3.3.0.rbi +0 -9
  224. data/sorbet/rbi/gems/bump@0.10.0.rbi +0 -169
  225. data/sorbet/rbi/gems/byebug@11.1.3.rbi +0 -3607
  226. data/sorbet/rbi/gems/coderay@1.1.3.rbi +0 -3427
  227. data/sorbet/rbi/gems/concurrent-ruby@1.3.4.rbi +0 -11645
  228. data/sorbet/rbi/gems/connection_pool@2.4.1.rbi +0 -9
  229. data/sorbet/rbi/gems/crass@1.0.6.rbi +0 -623
  230. data/sorbet/rbi/gems/date@3.4.1.rbi +0 -75
  231. data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +0 -1131
  232. data/sorbet/rbi/gems/docile@1.4.1.rbi +0 -377
  233. data/sorbet/rbi/gems/drb@2.2.1.rbi +0 -1347
  234. data/sorbet/rbi/gems/erubi@1.13.0.rbi +0 -150
  235. data/sorbet/rbi/gems/globalid@1.2.1.rbi +0 -9
  236. data/sorbet/rbi/gems/i18n@1.14.6.rbi +0 -2359
  237. data/sorbet/rbi/gems/io-console@0.8.0.rbi +0 -9
  238. data/sorbet/rbi/gems/json@2.9.0.rbi +0 -1944
  239. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +0 -14238
  240. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +0 -240
  241. data/sorbet/rbi/gems/logger@1.6.3.rbi +0 -940
  242. data/sorbet/rbi/gems/loofah@2.23.1.rbi +0 -1081
  243. data/sorbet/rbi/gems/mail@2.8.1.rbi +0 -9
  244. data/sorbet/rbi/gems/marcel@1.0.4.rbi +0 -9
  245. data/sorbet/rbi/gems/method_source@1.1.0.rbi +0 -304
  246. data/sorbet/rbi/gems/mini_mime@1.1.5.rbi +0 -9
  247. data/sorbet/rbi/gems/minitest@5.25.4.rbi +0 -1547
  248. data/sorbet/rbi/gems/mocha@2.7.1.rbi +0 -12
  249. data/sorbet/rbi/gems/msgpack@1.7.5.rbi +0 -320
  250. data/sorbet/rbi/gems/net-imap@0.5.2.rbi +0 -9
  251. data/sorbet/rbi/gems/net-pop@0.1.2.rbi +0 -9
  252. data/sorbet/rbi/gems/net-protocol@0.2.2.rbi +0 -292
  253. data/sorbet/rbi/gems/net-smtp@0.5.0.rbi +0 -9
  254. data/sorbet/rbi/gems/netrc@0.11.0.rbi +0 -159
  255. data/sorbet/rbi/gems/nio4r@2.7.4.rbi +0 -9
  256. data/sorbet/rbi/gems/nokogiri@1.17.2.rbi +0 -8201
  257. data/sorbet/rbi/gems/parallel@1.26.3.rbi +0 -291
  258. data/sorbet/rbi/gems/parser@3.3.6.0.rbi +0 -5519
  259. data/sorbet/rbi/gems/prism@1.2.0.rbi +0 -39085
  260. data/sorbet/rbi/gems/pry-byebug@3.10.1.rbi +0 -1151
  261. data/sorbet/rbi/gems/pry@0.14.2.rbi +0 -10076
  262. data/sorbet/rbi/gems/psych@5.2.1.rbi +0 -1785
  263. data/sorbet/rbi/gems/racc@1.8.1.rbi +0 -162
  264. data/sorbet/rbi/gems/rack-session@2.0.0.rbi +0 -727
  265. data/sorbet/rbi/gems/rack-test@2.1.0.rbi +0 -747
  266. data/sorbet/rbi/gems/rack@3.1.8.rbi +0 -4905
  267. data/sorbet/rbi/gems/rackup@2.2.1.rbi +0 -230
  268. data/sorbet/rbi/gems/rails-dom-testing@2.2.0.rbi +0 -758
  269. data/sorbet/rbi/gems/rails-html-sanitizer@1.6.2.rbi +0 -785
  270. data/sorbet/rbi/gems/rails@8.0.1.rbi +0 -9
  271. data/sorbet/rbi/gems/railties@8.0.1.rbi +0 -6347
  272. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +0 -403
  273. data/sorbet/rbi/gems/rake@13.2.1.rbi +0 -3028
  274. data/sorbet/rbi/gems/rbi@0.2.1.rbi +0 -4535
  275. data/sorbet/rbi/gems/rdoc@6.9.1.rbi +0 -12593
  276. data/sorbet/rbi/gems/regexp_parser@2.9.3.rbi +0 -3772
  277. data/sorbet/rbi/gems/reline@0.6.0.rbi +0 -2454
  278. data/sorbet/rbi/gems/rexml@3.4.0.rbi +0 -4871
  279. data/sorbet/rbi/gems/rspec-core@3.13.2.rbi +0 -11284
  280. data/sorbet/rbi/gems/rspec-expectations@3.13.3.rbi +0 -8183
  281. data/sorbet/rbi/gems/rspec-mocks@3.13.2.rbi +0 -5341
  282. data/sorbet/rbi/gems/rspec-support@3.13.2.rbi +0 -1630
  283. data/sorbet/rbi/gems/rspec@3.13.0.rbi +0 -83
  284. data/sorbet/rbi/gems/rubocop-ast@1.37.0.rbi +0 -7713
  285. data/sorbet/rbi/gems/rubocop-md@1.2.4.rbi +0 -123
  286. data/sorbet/rbi/gems/rubocop-minitest@0.36.0.rbi +0 -2613
  287. data/sorbet/rbi/gems/rubocop-packaging@0.5.2.rbi +0 -388
  288. data/sorbet/rbi/gems/rubocop-performance@1.23.0.rbi +0 -9
  289. data/sorbet/rbi/gems/rubocop-rails@2.27.0.rbi +0 -9535
  290. data/sorbet/rbi/gems/rubocop@1.69.2.rbi +0 -59600
  291. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +0 -1318
  292. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +0 -9
  293. data/sorbet/rbi/gems/securerandom@0.4.1.rbi +0 -78
  294. data/sorbet/rbi/gems/simplecov-html@0.13.1.rbi +0 -225
  295. data/sorbet/rbi/gems/simplecov@0.22.0.rbi +0 -2149
  296. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi +0 -9
  297. data/sorbet/rbi/gems/spoom@1.5.0.rbi +0 -4932
  298. data/sorbet/rbi/gems/sqlite3@2.3.1.rbi +0 -1824
  299. data/sorbet/rbi/gems/standard-custom@1.0.2.rbi +0 -9
  300. data/sorbet/rbi/gems/standard-performance@1.6.0.rbi +0 -9
  301. data/sorbet/rbi/gems/standard@1.43.0.rbi +0 -926
  302. data/sorbet/rbi/gems/stringio@3.1.2.rbi +0 -9
  303. data/sorbet/rbi/gems/tapioca@0.16.4.rbi +0 -3597
  304. data/sorbet/rbi/gems/thor@1.3.2.rbi +0 -4378
  305. data/sorbet/rbi/gems/timeout@0.4.2.rbi +0 -151
  306. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +0 -5918
  307. data/sorbet/rbi/gems/unicode-display_width@3.1.2.rbi +0 -130
  308. data/sorbet/rbi/gems/unicode-emoji@4.0.4.rbi +0 -251
  309. data/sorbet/rbi/gems/uri@1.0.2.rbi +0 -2377
  310. data/sorbet/rbi/gems/useragent@0.16.11.rbi +0 -9
  311. data/sorbet/rbi/gems/websocket-driver@0.7.6.rbi +0 -9
  312. data/sorbet/rbi/gems/websocket-extensions@0.1.5.rbi +0 -9
  313. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +0 -435
  314. data/sorbet/rbi/gems/yard@0.9.37.rbi +0 -18504
  315. data/sorbet/rbi/gems/zeitwerk@2.7.1.rbi +0 -9
  316. data/sorbet/tapioca/config.yml +0 -13
  317. data/sorbet/tapioca/require.rb +0 -13
data/.rubocop.yml DELETED
@@ -1,23 +0,0 @@
1
- inherit_mode:
2
- merge:
3
- - Exclude
4
-
5
- require:
6
- - standard
7
- - standard-custom
8
- - standard-performance
9
- - rubocop-performance
10
-
11
- inherit_gem:
12
- standard: config/base.yml
13
- standard-performance: config/base.yml
14
- standard-custom: config/base.yml
15
-
16
- AllCops:
17
- SuggestExtensions: false
18
- TargetRubyVersion: 3.2.x
19
- NewCops: enable
20
- Exclude:
21
- - example/**/*
22
- - lib/activeresource/**/*
23
- - sorbet/**/*
data/.standard.yml DELETED
@@ -1,2 +0,0 @@
1
- ruby_version: 3.2
2
- format: progress
data/Rakefile DELETED
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "bundler"
4
- require "bundler/gem_tasks"
5
-
6
- unless ENV["CI"]
7
- require "rake/testtask"
8
- require "rspec/core/rake_task"
9
- require "rubocop/rake_task"
10
-
11
- # ActiveCachedResource tests
12
- RSpec::Core::RakeTask.new(:spec)
13
- RuboCop::RakeTask.new(:rubocop)
14
-
15
- # ActiveResource tests
16
- Rake::TestTask.new(:ar_tests) do |t|
17
- t.libs = ["lib/activeresource/test"]
18
- t.pattern = "lib/activeresource/test/**/*_test.rb"
19
- t.warning = true
20
- t.verbose = true
21
- end
22
-
23
- desc "Type check"
24
- task :tc do
25
- sh "srb tc"
26
- end
27
-
28
- task default: [:tc, :rubocop, :spec, :ar_tests]
29
- end
@@ -1,41 +0,0 @@
1
- # See https://docs.docker.com/engine/reference/builder/#dockerignore-file for more about ignoring files.
2
-
3
- # Ignore git directory.
4
- /.git/
5
- /.gitignore
6
-
7
- # Ignore bundler config.
8
- /.bundle
9
-
10
- # Ignore all environment files.
11
- /.env*
12
-
13
- # Ignore all default key files.
14
- /config/master.key
15
- /config/credentials/*.key
16
-
17
- # Ignore all logfiles and tempfiles.
18
- /log/*
19
- /tmp/*
20
- !/log/.keep
21
- !/tmp/.keep
22
-
23
- # Ignore pidfiles, but keep the directory.
24
- /tmp/pids/*
25
- !/tmp/pids/.keep
26
-
27
- # Ignore storage (uploaded files in development and any SQLite databases).
28
- /storage/*
29
- !/storage/.keep
30
- /tmp/storage/*
31
- !/tmp/storage/.keep
32
-
33
- # Ignore CI service files.
34
- /.github
35
-
36
- # Ignore development files
37
- /.devcontainer
38
-
39
- # Ignore Docker-related files
40
- /.dockerignore
41
- /Dockerfile*
@@ -1,9 +0,0 @@
1
- # See https://git-scm.com/docs/gitattributes for more about git attribute files.
2
-
3
- # Mark the database schema as having been generated.
4
- db/schema.rb linguist-generated
5
-
6
- # Mark any vendored files as having been vendored.
7
- vendor/* linguist-vendored
8
- config/credentials/*.yml.enc diff=rails_credentials
9
- config/credentials.yml.enc diff=rails_credentials
@@ -1,36 +0,0 @@
1
- # See https://help.github.com/articles/ignoring-files for more about ignoring files.
2
- #
3
- # Temporary files generated by your text editor or operating system
4
- # belong in git's global ignore instead:
5
- # `$XDG_CONFIG_HOME/git/ignore` or `~/.config/git/ignore`
6
-
7
- # Ignore bundler config.
8
- /.bundle
9
-
10
- # Ignore all environment files.
11
- /.env*
12
-
13
- # Ignore all logfiles and tempfiles.
14
- /log/*
15
- /tmp/*
16
- !/log/.keep
17
- !/tmp/.keep
18
-
19
- # Ignore pidfiles, but keep the directory.
20
- /tmp/pids/*
21
- !/tmp/pids/
22
- !/tmp/pids/.keep
23
-
24
- # Ignore storage (uploaded files in development and any SQLite databases).
25
- /storage/*
26
- !/storage/.keep
27
- /tmp/storage/*
28
- !/tmp/storage/
29
- !/tmp/storage/.keep
30
-
31
- /tmp/cache/*
32
- !/tmp/cache/
33
- !/tmp/cache/.keep
34
-
35
- # Ignore master key for decrypting credentials and more.
36
- /config/master.key
@@ -1,3 +0,0 @@
1
- #!/bin/sh
2
-
3
- echo "Docker set up on $KAMAL_HOSTS..."
@@ -1,14 +0,0 @@
1
- #!/bin/sh
2
-
3
- # A sample post-deploy hook
4
- #
5
- # These environment variables are available:
6
- # KAMAL_RECORDED_AT
7
- # KAMAL_PERFORMER
8
- # KAMAL_VERSION
9
- # KAMAL_HOSTS
10
- # KAMAL_ROLE (if set)
11
- # KAMAL_DESTINATION (if set)
12
- # KAMAL_RUNTIME
13
-
14
- echo "$KAMAL_PERFORMER deployed $KAMAL_VERSION to $KAMAL_DESTINATION in $KAMAL_RUNTIME seconds"
@@ -1,3 +0,0 @@
1
- #!/bin/sh
2
-
3
- echo "Rebooted kamal-proxy on $KAMAL_HOSTS"
@@ -1,51 +0,0 @@
1
- #!/bin/sh
2
-
3
- # A sample pre-build hook
4
- #
5
- # Checks:
6
- # 1. We have a clean checkout
7
- # 2. A remote is configured
8
- # 3. The branch has been pushed to the remote
9
- # 4. The version we are deploying matches the remote
10
- #
11
- # These environment variables are available:
12
- # KAMAL_RECORDED_AT
13
- # KAMAL_PERFORMER
14
- # KAMAL_VERSION
15
- # KAMAL_HOSTS
16
- # KAMAL_ROLE (if set)
17
- # KAMAL_DESTINATION (if set)
18
-
19
- if [ -n "$(git status --porcelain)" ]; then
20
- echo "Git checkout is not clean, aborting..." >&2
21
- git status --porcelain >&2
22
- exit 1
23
- fi
24
-
25
- first_remote=$(git remote)
26
-
27
- if [ -z "$first_remote" ]; then
28
- echo "No git remote set, aborting..." >&2
29
- exit 1
30
- fi
31
-
32
- current_branch=$(git branch --show-current)
33
-
34
- if [ -z "$current_branch" ]; then
35
- echo "Not on a git branch, aborting..." >&2
36
- exit 1
37
- fi
38
-
39
- remote_head=$(git ls-remote $first_remote --tags $current_branch | cut -f1)
40
-
41
- if [ -z "$remote_head" ]; then
42
- echo "Branch not pushed to remote, aborting..." >&2
43
- exit 1
44
- fi
45
-
46
- if [ "$KAMAL_VERSION" != "$remote_head" ]; then
47
- echo "Version ($KAMAL_VERSION) does not match remote HEAD ($remote_head), aborting..." >&2
48
- exit 1
49
- fi
50
-
51
- exit 0
@@ -1,47 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- # A sample pre-connect check
4
- #
5
- # Warms DNS before connecting to hosts in parallel
6
- #
7
- # These environment variables are available:
8
- # KAMAL_RECORDED_AT
9
- # KAMAL_PERFORMER
10
- # KAMAL_VERSION
11
- # KAMAL_HOSTS
12
- # KAMAL_ROLE (if set)
13
- # KAMAL_DESTINATION (if set)
14
- # KAMAL_RUNTIME
15
-
16
- hosts = ENV["KAMAL_HOSTS"].split(",")
17
- results = nil
18
- max = 3
19
-
20
- elapsed = Benchmark.realtime do
21
- results = hosts.map do |host|
22
- Thread.new do
23
- tries = 1
24
-
25
- begin
26
- Socket.getaddrinfo(host, 0, Socket::AF_UNSPEC, Socket::SOCK_STREAM, nil, Socket::AI_CANONNAME)
27
- rescue SocketError
28
- if tries < max
29
- puts "Retrying DNS warmup: #{host}"
30
- tries += 1
31
- sleep rand
32
- retry
33
- else
34
- puts "DNS warmup failed: #{host}"
35
- host
36
- end
37
- end
38
-
39
- tries
40
- end
41
- end.map(&:value)
42
- end
43
-
44
- retries = results.sum - hosts.size
45
- nopes = results.count { |r| r == max }
46
-
47
- puts "Prewarmed %d DNS lookups in %.2f sec: %d retries, %d failures" % [ hosts.size, elapsed, retries, nopes ]
@@ -1,109 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- # A sample pre-deploy hook
4
- #
5
- # Checks the Github status of the build, waiting for a pending build to complete for up to 720 seconds.
6
- #
7
- # Fails unless the combined status is "success"
8
- #
9
- # These environment variables are available:
10
- # KAMAL_RECORDED_AT
11
- # KAMAL_PERFORMER
12
- # KAMAL_VERSION
13
- # KAMAL_HOSTS
14
- # KAMAL_COMMAND
15
- # KAMAL_SUBCOMMAND
16
- # KAMAL_ROLE (if set)
17
- # KAMAL_DESTINATION (if set)
18
-
19
- # Only check the build status for production deployments
20
- if ENV["KAMAL_COMMAND"] == "rollback" || ENV["KAMAL_DESTINATION"] != "production"
21
- exit 0
22
- end
23
-
24
- require "bundler/inline"
25
-
26
- # true = install gems so this is fast on repeat invocations
27
- gemfile(true, quiet: true) do
28
- source "https://rubygems.org"
29
-
30
- gem "octokit"
31
- gem "faraday-retry"
32
- end
33
-
34
- MAX_ATTEMPTS = 72
35
- ATTEMPTS_GAP = 10
36
-
37
- def exit_with_error(message)
38
- $stderr.puts message
39
- exit 1
40
- end
41
-
42
- class GithubStatusChecks
43
- attr_reader :remote_url, :git_sha, :github_client, :combined_status
44
-
45
- def initialize
46
- @remote_url = `git config --get remote.origin.url`.strip.delete_prefix("https://github.com/")
47
- @git_sha = `git rev-parse HEAD`.strip
48
- @github_client = Octokit::Client.new(access_token: ENV["GITHUB_TOKEN"])
49
- refresh!
50
- end
51
-
52
- def refresh!
53
- @combined_status = github_client.combined_status(remote_url, git_sha)
54
- end
55
-
56
- def state
57
- combined_status[:state]
58
- end
59
-
60
- def first_status_url
61
- first_status = combined_status[:statuses].find { |status| status[:state] == state }
62
- first_status && first_status[:target_url]
63
- end
64
-
65
- def complete_count
66
- combined_status[:statuses].count { |status| status[:state] != "pending"}
67
- end
68
-
69
- def total_count
70
- combined_status[:statuses].count
71
- end
72
-
73
- def current_status
74
- if total_count > 0
75
- "Completed #{complete_count}/#{total_count} checks, see #{first_status_url} ..."
76
- else
77
- "Build not started..."
78
- end
79
- end
80
- end
81
-
82
-
83
- $stdout.sync = true
84
-
85
- puts "Checking build status..."
86
- attempts = 0
87
- checks = GithubStatusChecks.new
88
-
89
- begin
90
- loop do
91
- case checks.state
92
- when "success"
93
- puts "Checks passed, see #{checks.first_status_url}"
94
- exit 0
95
- when "failure"
96
- exit_with_error "Checks failed, see #{checks.first_status_url}"
97
- when "pending"
98
- attempts += 1
99
- end
100
-
101
- exit_with_error "Checks are still pending, gave up after #{MAX_ATTEMPTS * ATTEMPTS_GAP} seconds" if attempts == MAX_ATTEMPTS
102
-
103
- puts checks.current_status
104
- sleep(ATTEMPTS_GAP)
105
- checks.refresh!
106
- end
107
- rescue Octokit::NotFound
108
- exit_with_error "Build status could not be found"
109
- end
@@ -1,3 +0,0 @@
1
- #!/bin/sh
2
-
3
- echo "Rebooting kamal-proxy on $KAMAL_HOSTS..."
@@ -1,17 +0,0 @@
1
- # Secrets defined here are available for reference under registry/password, env/secret, builder/secrets,
2
- # and accessories/*/env/secret in config/deploy.yml. All secrets should be pulled from either
3
- # password manager, ENV, or a file. DO NOT ENTER RAW CREDENTIALS HERE! This file needs to be safe for git.
4
-
5
- # Example of extracting secrets from 1password (or another compatible pw manager)
6
- # SECRETS=$(kamal secrets fetch --adapter 1password --account your-account --from Vault/Item KAMAL_REGISTRY_PASSWORD RAILS_MASTER_KEY)
7
- # KAMAL_REGISTRY_PASSWORD=$(kamal secrets extract KAMAL_REGISTRY_PASSWORD ${SECRETS})
8
- # RAILS_MASTER_KEY=$(kamal secrets extract RAILS_MASTER_KEY ${SECRETS})
9
-
10
- # Use a GITHUB_TOKEN if private repositories are needed for the image
11
- # GITHUB_TOKEN=$(gh config get -h github.com oauth_token)
12
-
13
- # Grab the registry password from ENV
14
- KAMAL_REGISTRY_PASSWORD=$KAMAL_REGISTRY_PASSWORD
15
-
16
- # Improve security by using a password manager. Never check config/master.key into git!
17
- RAILS_MASTER_KEY=$(cat config/master.key)
@@ -1,65 +0,0 @@
1
- # syntax=docker/dockerfile:1
2
- # check=error=true
3
-
4
- # This Dockerfile is designed for production, not development. Use with Kamal or build'n'run by hand:
5
- # docker build -t consumer .
6
- # docker run -d -p 80:80 -e RAILS_MASTER_KEY=<value from config/master.key> --name consumer consumer
7
-
8
- # For a containerized dev environment, see Dev Containers: https://guides.rubyonrails.org/getting_started_with_devcontainer.html
9
-
10
- # Make sure RUBY_VERSION matches the Ruby version in .ruby-version
11
- ARG RUBY_VERSION=3.2.2
12
- FROM docker.io/library/ruby:$RUBY_VERSION-slim AS base
13
-
14
- # Rails app lives here
15
- WORKDIR /rails
16
-
17
- # Install base packages
18
- RUN apt-get update -qq && \
19
- apt-get install --no-install-recommends -y curl libjemalloc2 sqlite3 && \
20
- rm -rf /var/lib/apt/lists /var/cache/apt/archives
21
-
22
- # Set production environment
23
- ENV RAILS_ENV="production" \
24
- BUNDLE_DEPLOYMENT="1" \
25
- BUNDLE_PATH="/usr/local/bundle" \
26
- BUNDLE_WITHOUT="development"
27
-
28
- # Throw-away build stage to reduce size of final image
29
- FROM base AS build
30
-
31
- # Install packages needed to build gems
32
- RUN apt-get update -qq && \
33
- apt-get install --no-install-recommends -y build-essential git pkg-config && \
34
- rm -rf /var/lib/apt/lists /var/cache/apt/archives
35
-
36
- # Install application gems
37
- COPY Gemfile Gemfile.lock ./
38
- RUN bundle install && \
39
- rm -rf ~/.bundle/ "${BUNDLE_PATH}"/ruby/*/cache "${BUNDLE_PATH}"/ruby/*/bundler/gems/*/.git
40
-
41
- # Copy application code
42
- COPY . .
43
-
44
-
45
-
46
-
47
- # Final stage for app image
48
- FROM base
49
-
50
- # Copy built artifacts: gems, application
51
- COPY --from=build "${BUNDLE_PATH}" "${BUNDLE_PATH}"
52
- COPY --from=build /rails /rails
53
-
54
- # Run and own only the runtime files as a non-root user for security
55
- RUN groupadd --system --gid 1000 rails && \
56
- useradd rails --uid 1000 --gid 1000 --create-home --shell /bin/bash && \
57
- chown -R rails:rails db log storage tmp
58
- USER 1000:1000
59
-
60
- # Entrypoint prepares the database.
61
- ENTRYPOINT ["/rails/bin/docker-entrypoint"]
62
-
63
- # Start server via Thruster by default, this can be overwritten at runtime
64
- EXPOSE 80
65
- CMD ["./bin/thrust", "./bin/rails", "server"]
@@ -1,17 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "active_cached_resource", path: "../../"
4
- gem "activeresource", git: "https://github.com/jlurena/activeresource.git", branch: "ISSUE-408-lazy-network-calls"
5
- gem "rails", "~> 8.0.0"
6
- gem "sqlite3", ">= 2.1"
7
- gem "puma", ">= 5.0"
8
- gem "tzinfo-data", platforms: %i[ windows jruby ]
9
- gem "solid_cache"
10
- gem "solid_queue"
11
- gem "kamal", require: false
12
- gem "thruster", require: false
13
-
14
- group :development, :test do
15
- gem "pry-byebug"
16
- gem "brakeman", require: false
17
- end
@@ -1,6 +0,0 @@
1
- # Add your own tasks in files placed in lib/tasks ending in .rake,
2
- # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
-
4
- require_relative "config/application"
5
-
6
- Rails.application.load_tasks
@@ -1,2 +0,0 @@
1
- class ApplicationController < ActionController::API
2
- end
File without changes
@@ -1,7 +0,0 @@
1
- class ApplicationJob < ActiveJob::Base
2
- # Automatically retry jobs that encountered a deadlock
3
- # retry_on ActiveRecord::Deadlocked
4
-
5
- # Most jobs are safe to ignore if the underlying records are no longer available
6
- # discard_on ActiveJob::DeserializationError
7
- end
@@ -1,4 +0,0 @@
1
- class ApplicationMailer < ActionMailer::Base
2
- default from: "from@example.com"
3
- layout "mailer"
4
- end
@@ -1,3 +0,0 @@
1
- class ApplicationRecord < ActiveRecord::Base
2
- primary_abstract_class
3
- end
File without changes
@@ -1,9 +0,0 @@
1
- class Person < ActiveResource::Base
2
- cached_resource({cache_store: Rails.cache, cache_strategy: :active_support})
3
-
4
- self.site = "http://localhost:3000"
5
- self.include_format_in_path = false
6
-
7
- self.user = "admin"
8
- self.password = "secret"
9
- end
@@ -1,13 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5
- <style>
6
- /* Email styles need to be inline */
7
- </style>
8
- </head>
9
-
10
- <body>
11
- <%= yield %>
12
- </body>
13
- </html>
@@ -1 +0,0 @@
1
- <%= yield %>
@@ -1,7 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require "rubygems"
3
- require "bundler/setup"
4
-
5
- ARGV.unshift("--ensure-latest")
6
-
7
- load Gem.bin_path("brakeman", "brakeman")
@@ -1,109 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- #
5
- # This file was generated by Bundler.
6
- #
7
- # The application 'bundle' is installed as part of a gem, and
8
- # this file is here to facilitate running it.
9
- #
10
-
11
- require "rubygems"
12
-
13
- m = Module.new do
14
- module_function
15
-
16
- def invoked_as_script?
17
- File.expand_path($0) == File.expand_path(__FILE__)
18
- end
19
-
20
- def env_var_version
21
- ENV["BUNDLER_VERSION"]
22
- end
23
-
24
- def cli_arg_version
25
- return unless invoked_as_script? # don't want to hijack other binstubs
26
- return unless "update".start_with?(ARGV.first || " ") # must be running `bundle update`
27
- bundler_version = nil
28
- update_index = nil
29
- ARGV.each_with_index do |a, i|
30
- if update_index && update_index.succ == i && a.match?(Gem::Version::ANCHORED_VERSION_PATTERN)
31
- bundler_version = a
32
- end
33
- next unless a =~ /\A--bundler(?:[= ](#{Gem::Version::VERSION_PATTERN}))?\z/
34
- bundler_version = $1
35
- update_index = i
36
- end
37
- bundler_version
38
- end
39
-
40
- def gemfile
41
- gemfile = ENV["BUNDLE_GEMFILE"]
42
- return gemfile if gemfile && !gemfile.empty?
43
-
44
- File.expand_path("../Gemfile", __dir__)
45
- end
46
-
47
- def lockfile
48
- lockfile =
49
- case File.basename(gemfile)
50
- when "gems.rb" then gemfile.sub(/\.rb$/, ".locked")
51
- else "#{gemfile}.lock"
52
- end
53
- File.expand_path(lockfile)
54
- end
55
-
56
- def lockfile_version
57
- return unless File.file?(lockfile)
58
- lockfile_contents = File.read(lockfile)
59
- return unless lockfile_contents =~ /\n\nBUNDLED WITH\n\s{2,}(#{Gem::Version::VERSION_PATTERN})\n/
60
- Regexp.last_match(1)
61
- end
62
-
63
- def bundler_requirement
64
- @bundler_requirement ||=
65
- env_var_version ||
66
- cli_arg_version ||
67
- bundler_requirement_for(lockfile_version)
68
- end
69
-
70
- def bundler_requirement_for(version)
71
- return "#{Gem::Requirement.default}.a" unless version
72
-
73
- bundler_gem_version = Gem::Version.new(version)
74
-
75
- bundler_gem_version.approximate_recommendation
76
- end
77
-
78
- def load_bundler!
79
- ENV["BUNDLE_GEMFILE"] ||= gemfile
80
-
81
- activate_bundler
82
- end
83
-
84
- def activate_bundler
85
- gem_error = activation_error_handling do
86
- gem "bundler", bundler_requirement
87
- end
88
- return if gem_error.nil?
89
- require_error = activation_error_handling do
90
- require "bundler/version"
91
- end
92
- return if require_error.nil? && Gem::Requirement.new(bundler_requirement).satisfied_by?(Gem::Version.new(Bundler::VERSION))
93
- warn "Activating bundler (#{bundler_requirement}) failed:\n#{gem_error.message}\n\nTo install the version of bundler this project requires, run `gem install bundler -v '#{bundler_requirement}'`"
94
- exit 42
95
- end
96
-
97
- def activation_error_handling
98
- yield
99
- nil
100
- rescue StandardError, LoadError => e
101
- e
102
- end
103
- end
104
-
105
- m.load_bundler!
106
-
107
- if m.invoked_as_script?
108
- load Gem.bin_path("bundler", "bundle")
109
- end
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env ruby
2
- exec "./bin/rails", "server", *ARGV