active_cached_resource 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -1,154 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "rubygems" unless defined? Gem
4
- require "bundler/setup"
5
-
6
- lib = File.expand_path("#{File.dirname(__FILE__)}/../lib")
7
- $:.unshift(lib) unless $:.include?("lib") || $:.include?(lib)
8
-
9
- require "minitest/autorun"
10
- require "active_support"
11
- require "active_support/test_case"
12
- require "setter_trap"
13
- require "active_support/logger"
14
- require "base64"
15
-
16
- require_relative "../lib/active_resource"
17
-
18
- ActiveSupport::TestCase.test_order = :random if ActiveSupport::TestCase.respond_to?(:test_order=)
19
- ActiveResource::Base.logger = ActiveSupport::Logger.new("#{File.dirname(__FILE__)}/debug.log")
20
- ActiveResource::Base.include_root_in_json = true
21
-
22
- def setup_response
23
- matz_hash = { "person" => { id: 1, name: "Matz" } }
24
-
25
- @default_request_headers = { "Content-Type" => "application/json" }
26
- @matz = matz_hash.to_json
27
- @matz_xml = matz_hash.to_xml
28
- @david = { person: { id: 2, name: "David" } }.to_json
29
- @greg = { person: { id: 3, name: "Greg" } }.to_json
30
- @addy = { address: { id: 1, street: "12345 Street", country: "Australia" } }.to_json
31
- @rick = { person: { name: "Rick", age: 25 } }.to_json
32
- @joe = { person: { id: 6, name: "Joe", likes_hats: true } }.to_json
33
- @people = { people: [ { person: { id: 1, name: "Matz" } }, { person: { id: 2, name: "David" } }] }.to_json
34
- @people_david = { people: [ { person: { id: 2, name: "David" } }] }.to_json
35
- @addresses = { addresses: [{ address: { id: 1, street: "12345 Street", country: "Australia" } }] }.to_json
36
- @post = { id: 1, title: "Hello World", body: "Lorem Ipsum" }.to_json
37
- @posts = [{ id: 1, title: "Hello World", body: "Lorem Ipsum" }, { id: 2, title: "Second Post", body: "Lorem Ipsum" }].to_json
38
- @comments = [{ id: 1, post_id: 1, content: "Interesting post" }, { id: 2, post_id: 1, content: "I agree" }].to_json
39
- @pets = [{ id: 1, name: "Max" }, { id: 2, name: "Daisy" }].to_json
40
-
41
- # - deep nested resource -
42
- # - Luis (Customer)
43
- # - JK (Customer::Friend)
44
- # - Mateo (Customer::Friend::Brother)
45
- # - Edith (Customer::Friend::Brother::Child)
46
- # - Martha (Customer::Friend::Brother::Child)
47
- # - Felipe (Customer::Friend::Brother)
48
- # - Bryan (Customer::Friend::Brother::Child)
49
- # - Luke (Customer::Friend::Brother::Child)
50
- # - Eduardo (Customer::Friend)
51
- # - Sebas (Customer::Friend::Brother)
52
- # - Andres (Customer::Friend::Brother::Child)
53
- # - Jorge (Customer::Friend::Brother::Child)
54
- # - Elsa (Customer::Friend::Brother)
55
- # - Natacha (Customer::Friend::Brother::Child)
56
- # - Milena (Customer::Friend::Brother)
57
- #
58
- @luis = {
59
- customer: {
60
- id: 1,
61
- name: "Luis",
62
- friends: [{
63
- name: "JK",
64
- brothers: [
65
- {
66
- name: "Mateo",
67
- children: [{ name: "Edith" }, { name: "Martha" }]
68
- }, {
69
- name: "Felipe",
70
- children: [{ name: "Bryan" }, { name: "Luke" }]
71
- }
72
- ]
73
- }, {
74
- name: "Eduardo",
75
- brothers: [
76
- {
77
- name: "Sebas",
78
- children: [{ name: "Andres" }, { name: "Jorge" }]
79
- }, {
80
- name: "Elsa",
81
- children: [{ name: "Natacha" }]
82
- }, {
83
- name: "Milena",
84
- children: []
85
- }
86
- ]
87
- }],
88
- enemies: [{ name: "Joker" }],
89
- mother: { name: "Ingeborg" }
90
- }
91
- }.to_json
92
-
93
- @startup_sound = {
94
- sound: {
95
- name: "Mac Startup Sound", author: { name: "Jim Reekes" }
96
- }
97
- }.to_json
98
-
99
- @product = { id: 1, name: "Rails book" }.to_json
100
- @inventory = { status: "Sold Out", total: 10, used: 10 }.to_json
101
-
102
- ActiveResource::HttpMock.respond_to do |mock|
103
- mock.get "/people/1.json", {}, @matz
104
- mock.get "/people/1.xml", {}, @matz_xml
105
- mock.get "/people/2.xml", {}, @david
106
- mock.get "/people/Greg.json", {}, @greg
107
- mock.get "/people/6.json", {}, @joe
108
- mock.get "/people/4.json", { "key" => "value" }, nil, 404
109
- mock.put "/people/1.json", {}, nil, 204
110
- mock.delete "/people/1.json", {}, nil, 200
111
- mock.delete "/people/2.xml", {}, nil, 400
112
- mock.get "/people/99.json", {}, nil, 404
113
- mock.post "/people.json", {}, @rick, 201, "Location" => "/people/5.xml"
114
- mock.get "/people.json", {}, @people
115
- mock.get "/people/1/addresses.json", {}, @addresses
116
- mock.get "/people/1/addresses/1.json", {}, @addy
117
- mock.get "/people/1/addresses/2.xml", {}, nil, 404
118
- mock.get "/people/2/addresses.json", {}, nil, 404
119
- mock.get "/people/2/addresses/1.xml", {}, nil, 404
120
- mock.get "/people/Greg/addresses/1.json", {}, @addy
121
- mock.put "/people/1/addresses/1.json", {}, nil, 204
122
- mock.delete "/people/1/addresses/1.json", {}, nil, 200
123
- mock.post "/people/1/addresses.json", {}, nil, 201, "Location" => "/people/1/addresses/5"
124
- mock.get "/people/1/addresses/99.json", {}, nil, 404
125
- mock.get "/people//addresses.xml", {}, nil, 404
126
- mock.get "/people//addresses/1.xml", {}, nil, 404
127
- mock.put "/people//addresses/1.xml", {}, nil, 404
128
- mock.delete "/people//addresses/1.xml", {}, nil, 404
129
- mock.post "/people//addresses.xml", {}, nil, 404
130
- mock.head "/people/1.json", {}, nil, 200
131
- mock.head "/people/Greg.json", {}, nil, 200
132
- mock.head "/people/99.json", {}, nil, 404
133
- mock.head "/people/1/addresses/1.json", {}, nil, 200
134
- mock.head "/people/1/addresses/2.json", {}, nil, 404
135
- mock.head "/people/2/addresses/1.json", {}, nil, 404
136
- mock.head "/people/Greg/addresses/1.json", {}, nil, 200
137
- # customer
138
- mock.get "/customers/1.json", {}, @luis
139
- # sound
140
- mock.get "/sounds/1.json", {}, @startup_sound
141
- # post
142
- mock.get "/posts.json", {}, @posts
143
- mock.get "/posts/1.json", {}, @post
144
- mock.get "/posts/1/comments.json", {}, @comments
145
- # products
146
- mock.get "/products/1.json", { "Accept" => "application/json", "X-Inherited-Header" => "present" }, @product
147
- mock.get "/products/1/inventory.json", {}, @inventory
148
- # pets
149
- mock.get "/people/1/pets.json", {}, @pets
150
- end
151
-
152
- Person.user = nil
153
- Person.password = nil
154
- end
@@ -1,53 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "abstract_unit"
4
-
5
- require "fixtures/project"
6
- require "fixtures/person"
7
- require "fixtures/product"
8
- require "active_job"
9
- require "active_job/arguments"
10
- require_relative "../../lib/active_resource/active_job_serializer"
11
-
12
- class ActiveJobSerializerTest < ActiveSupport::TestCase
13
- setup do
14
- @klass = ActiveResource::ActiveJobSerializer
15
- end
16
-
17
- def test_serialize
18
- project = Project.new(id: 1, name: "Ruby on Rails")
19
- project.prefix_options[:person_id] = 1
20
- project_json = {
21
- _aj_serialized: @klass.name,
22
- class: project.class.name,
23
- persisted: project.persisted?,
24
- prefix_options: project.prefix_options,
25
- attributes: project.attributes
26
- }.as_json
27
- serialized_json = @klass.serialize(project)
28
-
29
- assert_equal project_json, serialized_json
30
- end
31
-
32
- def test_deserialize
33
- person = Person.new(id: 2, name: "David")
34
- person.persisted = true
35
- person_json = {
36
- _aj_serialized: @klass.name,
37
- class: person.class.name,
38
- persisted: person.persisted?,
39
- prefix_options: person.prefix_options,
40
- attributes: person.attributes
41
- }.as_json
42
- deserialized_object = @klass.deserialize(person_json)
43
-
44
- assert_equal person, deserialized_object
45
- end
46
-
47
- def test_serialize?
48
- product = Product.new(id: 3, name: "Chunky Bacon")
49
-
50
- assert @klass.serialize?(product)
51
- assert_not @klass.serialize?("not a resource")
52
- end
53
- end
@@ -1,104 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "abstract_unit"
4
-
5
- require "fixtures/person"
6
- require "fixtures/beast"
7
- require "fixtures/customer"
8
-
9
-
10
- class AssociationTest < ActiveSupport::TestCase
11
- def setup
12
- @klass = ActiveResource::Associations::Builder::Association
13
- @reflection = ActiveResource::Reflection::AssociationReflection.new :belongs_to, :customer, {}
14
- end
15
-
16
-
17
- def test_validations_for_instance
18
- object = @klass.new(Person, :customers, {})
19
- assert_equal({}, object.send(:validate_options))
20
- end
21
-
22
- def test_instance_build
23
- object = @klass.new(Person, :customers, {})
24
- assert_kind_of ActiveResource::Reflection::AssociationReflection, object.build
25
- end
26
-
27
- def test_valid_options
28
- assert @klass.build(Person, :customers, class_name: "Client")
29
-
30
- assert_raise ArgumentError do
31
- @klass.build(Person, :customers, soo_invalid: true)
32
- end
33
- end
34
-
35
- def test_association_class_build
36
- assert_kind_of ActiveResource::Reflection::AssociationReflection, @klass.build(Person, :customers, {})
37
- end
38
-
39
- def test_has_many
40
- External::Person.send(:has_many, :people)
41
- assert_equal 1, External::Person.reflections.select { |name, reflection| reflection.macro.eql?(:has_many) }.count
42
- end
43
-
44
- def test_has_many_on_new_record
45
- Post.send(:has_many, :topics)
46
-
47
- assert_kind_of ActiveResource::Collection, Post.new.topics
48
- end
49
-
50
- def test_has_one
51
- External::Person.send(:has_one, :customer)
52
- assert_equal 1, External::Person.reflections.select { |name, reflection| reflection.macro.eql?(:has_one) }.count
53
- end
54
-
55
- def test_belongs_to
56
- External::Person.belongs_to(:Customer)
57
- assert_equal 1, External::Person.reflections.select { |name, reflection| reflection.macro.eql?(:belongs_to) }.count
58
- end
59
-
60
- def test_defines_belongs_to_finder_method_with_instance_variable_cache
61
- Person.defines_belongs_to_finder_method(@reflection)
62
-
63
- person = Person.new
64
- assert_not person.instance_variable_defined?(:@customer)
65
- person.stubs(:customer_id).returns(2)
66
- Customer.expects(:find).with(2).once()
67
- 2.times { person.customer }
68
- assert person.instance_variable_defined?(:@customer)
69
- end
70
-
71
- def test_belongs_to_with_finder_key
72
- Person.defines_belongs_to_finder_method(@reflection)
73
-
74
- person = Person.new
75
- person.stubs(:customer_id).returns(1)
76
- Customer.expects(:find).with(1).once()
77
- person.customer
78
- end
79
-
80
- def test_belongs_to_with_nil_finder_key
81
- Person.defines_belongs_to_finder_method(@reflection)
82
-
83
- person = Person.new
84
- person.stubs(:customer_id).returns(nil)
85
- Customer.expects(:find).with(nil).never()
86
- person.customer
87
- end
88
-
89
- def test_inverse_associations_do_not_create_circular_dependencies
90
- code = <<-CODE
91
- class Park < ActiveResource::Base
92
- has_many :trails
93
- end
94
-
95
- class Trail < ActiveResource::Base
96
- belongs_to :park
97
- end
98
- CODE
99
-
100
- assert_nothing_raised do
101
- eval code
102
- end
103
- end
104
- end
@@ -1,42 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "abstract_unit"
4
-
5
- require "fixtures/person"
6
- require "fixtures/beast"
7
- require "fixtures/customer"
8
-
9
-
10
- class ActiveResource::Associations::Builder::BelongsToTest < ActiveSupport::TestCase
11
- def setup
12
- @klass = ActiveResource::Associations::Builder::BelongsTo
13
- end
14
-
15
-
16
- def test_validations_for_instance
17
- object = @klass.new(Person, :customer, {})
18
- assert_equal({}, object.send(:validate_options))
19
- end
20
-
21
- def test_instance_build
22
- object = @klass.new(Person, :customer, {})
23
- Person.expects(:defines_belongs_to_finder_method).with(kind_of(ActiveResource::Reflection::AssociationReflection))
24
-
25
- reflection = object.build
26
-
27
- assert_kind_of ActiveResource::Reflection::AssociationReflection, reflection
28
- assert_equal :customer, reflection.name
29
- assert_equal Customer, reflection.klass
30
- assert_equal "customer_id", reflection.foreign_key
31
- end
32
-
33
-
34
- def test_valid_options
35
- assert @klass.build(Person, :customer, class_name: "Person")
36
- assert @klass.build(Person, :customer, foreign_key: "person_id")
37
-
38
- assert_raise ArgumentError do
39
- @klass.build(Person, :customer, soo_invalid: true)
40
- end
41
- end
42
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "abstract_unit"
4
-
5
- require "fixtures/person"
6
- require "fixtures/street_address"
7
-
8
- class ActiveResource::Associations::Builder::HasManyTest < ActiveSupport::TestCase
9
- def setup
10
- @klass = ActiveResource::Associations::Builder::HasMany
11
- end
12
-
13
- def test_validations_for_instance
14
- object = @klass.new(Person, :street_address, {})
15
- assert_equal({}, object.send(:validate_options))
16
- end
17
-
18
- def test_instance_build
19
- object = @klass.new(Person, :street_address, {})
20
- Person.expects(:defines_has_many_finder_method).with(kind_of(ActiveResource::Reflection::AssociationReflection))
21
-
22
- reflection = object.build
23
-
24
- assert_kind_of ActiveResource::Reflection::AssociationReflection, reflection
25
- assert_equal :street_address, reflection.name
26
- assert_equal StreetAddress, reflection.klass
27
- end
28
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "abstract_unit"
4
-
5
- require "fixtures/product"
6
- require "fixtures/inventory"
7
-
8
- class ActiveResource::Associations::Builder::HasOneTest < ActiveSupport::TestCase
9
- def setup
10
- @klass = ActiveResource::Associations::Builder::HasOne
11
- end
12
-
13
- def test_validations_for_instance
14
- object = @klass.new(Product, :inventory, {})
15
- assert_equal({}, object.send(:validate_options))
16
- end
17
-
18
- def test_instance_build
19
- object = @klass.new(Product, :inventory, {})
20
- Product.expects(:defines_has_one_finder_method).with(kind_of(ActiveResource::Reflection::AssociationReflection))
21
-
22
- reflection = object.build
23
-
24
- assert_kind_of ActiveResource::Reflection::AssociationReflection, reflection
25
- assert_equal :inventory, reflection.name
26
- assert_equal Inventory, reflection.klass
27
- end
28
- end