active_cached_resource 0.1.0 → 0.1.1

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 (316) 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. metadata +2 -308
  10. data/.rspec +0 -3
  11. data/.rubocop.yml +0 -23
  12. data/.standard.yml +0 -2
  13. data/Rakefile +0 -29
  14. data/example/consumer/.dockerignore +0 -41
  15. data/example/consumer/.gitattributes +0 -9
  16. data/example/consumer/.gitignore +0 -36
  17. data/example/consumer/.kamal/hooks/docker-setup.sample +0 -3
  18. data/example/consumer/.kamal/hooks/post-deploy.sample +0 -14
  19. data/example/consumer/.kamal/hooks/post-proxy-reboot.sample +0 -3
  20. data/example/consumer/.kamal/hooks/pre-build.sample +0 -51
  21. data/example/consumer/.kamal/hooks/pre-connect.sample +0 -47
  22. data/example/consumer/.kamal/hooks/pre-deploy.sample +0 -109
  23. data/example/consumer/.kamal/hooks/pre-proxy-reboot.sample +0 -3
  24. data/example/consumer/.kamal/secrets +0 -17
  25. data/example/consumer/Dockerfile +0 -65
  26. data/example/consumer/Gemfile +0 -17
  27. data/example/consumer/Rakefile +0 -6
  28. data/example/consumer/app/controllers/application_controller.rb +0 -2
  29. data/example/consumer/app/controllers/concerns/.keep +0 -0
  30. data/example/consumer/app/jobs/application_job.rb +0 -7
  31. data/example/consumer/app/mailers/application_mailer.rb +0 -4
  32. data/example/consumer/app/models/application_record.rb +0 -3
  33. data/example/consumer/app/models/concerns/.keep +0 -0
  34. data/example/consumer/app/models/person.rb +0 -9
  35. data/example/consumer/app/views/layouts/mailer.html.erb +0 -13
  36. data/example/consumer/app/views/layouts/mailer.text.erb +0 -1
  37. data/example/consumer/bin/brakeman +0 -7
  38. data/example/consumer/bin/bundle +0 -109
  39. data/example/consumer/bin/dev +0 -2
  40. data/example/consumer/bin/docker-entrypoint +0 -14
  41. data/example/consumer/bin/jobs +0 -6
  42. data/example/consumer/bin/kamal +0 -27
  43. data/example/consumer/bin/rails +0 -4
  44. data/example/consumer/bin/rake +0 -4
  45. data/example/consumer/bin/rubocop +0 -8
  46. data/example/consumer/bin/setup +0 -34
  47. data/example/consumer/bin/thrust +0 -5
  48. data/example/consumer/config/application.rb +0 -20
  49. data/example/consumer/config/boot.rb +0 -3
  50. data/example/consumer/config/cache.yml +0 -16
  51. data/example/consumer/config/credentials.yml.enc +0 -1
  52. data/example/consumer/config/database.yml +0 -14
  53. data/example/consumer/config/deploy.yml +0 -116
  54. data/example/consumer/config/environment.rb +0 -5
  55. data/example/consumer/config/environments/development.rb +0 -64
  56. data/example/consumer/config/environments/production.rb +0 -85
  57. data/example/consumer/config/environments/test.rb +0 -50
  58. data/example/consumer/config/initializers/cors.rb +0 -16
  59. data/example/consumer/config/initializers/filter_parameter_logging.rb +0 -8
  60. data/example/consumer/config/initializers/inflections.rb +0 -16
  61. data/example/consumer/config/locales/en.yml +0 -31
  62. data/example/consumer/config/puma.rb +0 -41
  63. data/example/consumer/config/queue.yml +0 -18
  64. data/example/consumer/config/recurring.yml +0 -10
  65. data/example/consumer/config/routes.rb +0 -10
  66. data/example/consumer/config.ru +0 -6
  67. data/example/consumer/db/cache_schema.rb +0 -14
  68. data/example/consumer/db/queue_schema.rb +0 -129
  69. data/example/consumer/db/seeds.rb +0 -0
  70. data/example/consumer/lib/tasks/.keep +0 -0
  71. data/example/consumer/log/.keep +0 -0
  72. data/example/consumer/public/robots.txt +0 -1
  73. data/example/consumer/script/.keep +0 -0
  74. data/example/consumer/storage/.keep +0 -0
  75. data/example/consumer/tmp/.keep +0 -0
  76. data/example/consumer/tmp/cache/.keep +0 -0
  77. data/example/consumer/tmp/pids/.keep +0 -0
  78. data/example/consumer/tmp/storage/.keep +0 -0
  79. data/example/consumer/vendor/.keep +0 -0
  80. data/example/provider/.dockerignore +0 -41
  81. data/example/provider/.gitattributes +0 -9
  82. data/example/provider/.gitignore +0 -32
  83. data/example/provider/.kamal/hooks/docker-setup.sample +0 -3
  84. data/example/provider/.kamal/hooks/post-deploy.sample +0 -14
  85. data/example/provider/.kamal/hooks/post-proxy-reboot.sample +0 -3
  86. data/example/provider/.kamal/hooks/pre-build.sample +0 -51
  87. data/example/provider/.kamal/hooks/pre-connect.sample +0 -47
  88. data/example/provider/.kamal/hooks/pre-deploy.sample +0 -109
  89. data/example/provider/.kamal/hooks/pre-proxy-reboot.sample +0 -3
  90. data/example/provider/.kamal/secrets +0 -17
  91. data/example/provider/Dockerfile +0 -65
  92. data/example/provider/Gemfile +0 -14
  93. data/example/provider/Rakefile +0 -6
  94. data/example/provider/app/controllers/application_controller.rb +0 -2
  95. data/example/provider/app/controllers/concerns/.keep +0 -0
  96. data/example/provider/app/controllers/people_controller.rb +0 -68
  97. data/example/provider/app/jobs/application_job.rb +0 -7
  98. data/example/provider/app/mailers/application_mailer.rb +0 -4
  99. data/example/provider/app/models/address.rb +0 -3
  100. data/example/provider/app/models/application_record.rb +0 -3
  101. data/example/provider/app/models/company.rb +0 -3
  102. data/example/provider/app/models/concerns/.keep +0 -0
  103. data/example/provider/app/models/person.rb +0 -6
  104. data/example/provider/app/views/layouts/mailer.html.erb +0 -13
  105. data/example/provider/app/views/layouts/mailer.text.erb +0 -1
  106. data/example/provider/bin/brakeman +0 -7
  107. data/example/provider/bin/bundle +0 -109
  108. data/example/provider/bin/dev +0 -2
  109. data/example/provider/bin/docker-entrypoint +0 -14
  110. data/example/provider/bin/jobs +0 -6
  111. data/example/provider/bin/kamal +0 -27
  112. data/example/provider/bin/rails +0 -4
  113. data/example/provider/bin/rake +0 -4
  114. data/example/provider/bin/rubocop +0 -8
  115. data/example/provider/bin/setup +0 -34
  116. data/example/provider/bin/thrust +0 -5
  117. data/example/provider/config/application.rb +0 -44
  118. data/example/provider/config/boot.rb +0 -3
  119. data/example/provider/config/cache.yml +0 -16
  120. data/example/provider/config/credentials.yml.enc +0 -1
  121. data/example/provider/config/database.yml +0 -20
  122. data/example/provider/config/deploy.yml +0 -116
  123. data/example/provider/config/environment.rb +0 -5
  124. data/example/provider/config/environments/development.rb +0 -64
  125. data/example/provider/config/environments/production.rb +0 -85
  126. data/example/provider/config/environments/test.rb +0 -50
  127. data/example/provider/config/initializers/cors.rb +0 -16
  128. data/example/provider/config/initializers/filter_parameter_logging.rb +0 -8
  129. data/example/provider/config/initializers/inflections.rb +0 -16
  130. data/example/provider/config/locales/en.yml +0 -31
  131. data/example/provider/config/puma.rb +0 -41
  132. data/example/provider/config/queue.yml +0 -18
  133. data/example/provider/config/recurring.yml +0 -10
  134. data/example/provider/config/routes.rb +0 -4
  135. data/example/provider/config.ru +0 -6
  136. data/example/provider/db/cache_schema.rb +0 -14
  137. data/example/provider/db/migrate/20241202183937_create_people.rb +0 -11
  138. data/example/provider/db/migrate/20241202183955_create_addresses.rb +0 -13
  139. data/example/provider/db/migrate/20241202184017_create_companies.rb +0 -14
  140. data/example/provider/db/queue_schema.rb +0 -129
  141. data/example/provider/db/schema.rb +0 -47
  142. data/example/provider/db/seeds.rb +0 -18
  143. data/example/provider/lib/tasks/.keep +0 -0
  144. data/example/provider/log/.keep +0 -0
  145. data/example/provider/public/robots.txt +0 -1
  146. data/example/provider/script/.keep +0 -0
  147. data/example/provider/storage/.keep +0 -0
  148. data/example/provider/tmp/.keep +0 -0
  149. data/example/provider/tmp/pids/.keep +0 -0
  150. data/example/provider/tmp/storage/.keep +0 -0
  151. data/example/provider/vendor/.keep +0 -0
  152. data/lib/activeresource/.gitignore +0 -15
  153. data/lib/activeresource/examples/performance.rb +0 -72
  154. data/lib/activeresource/test/abstract_unit.rb +0 -154
  155. data/lib/activeresource/test/cases/active_job_serializer_test.rb +0 -53
  156. data/lib/activeresource/test/cases/association_test.rb +0 -104
  157. data/lib/activeresource/test/cases/associations/builder/belongs_to_test.rb +0 -42
  158. data/lib/activeresource/test/cases/associations/builder/has_many_test.rb +0 -28
  159. data/lib/activeresource/test/cases/associations/builder/has_one_test.rb +0 -28
  160. data/lib/activeresource/test/cases/authorization_test.rb +0 -276
  161. data/lib/activeresource/test/cases/base/custom_methods_test.rb +0 -155
  162. data/lib/activeresource/test/cases/base/equality_test.rb +0 -53
  163. data/lib/activeresource/test/cases/base/load_test.rb +0 -249
  164. data/lib/activeresource/test/cases/base/schema_test.rb +0 -428
  165. data/lib/activeresource/test/cases/base_errors_test.rb +0 -129
  166. data/lib/activeresource/test/cases/base_test.rb +0 -1622
  167. data/lib/activeresource/test/cases/callbacks_test.rb +0 -155
  168. data/lib/activeresource/test/cases/collection_test.rb +0 -196
  169. data/lib/activeresource/test/cases/connection_test.rb +0 -357
  170. data/lib/activeresource/test/cases/finder_test.rb +0 -217
  171. data/lib/activeresource/test/cases/format_test.rb +0 -137
  172. data/lib/activeresource/test/cases/http_mock_test.rb +0 -213
  173. data/lib/activeresource/test/cases/inheritence_test.rb +0 -19
  174. data/lib/activeresource/test/cases/inheriting_hash_test.rb +0 -25
  175. data/lib/activeresource/test/cases/log_subscriber_test.rb +0 -64
  176. data/lib/activeresource/test/cases/reflection_test.rb +0 -65
  177. data/lib/activeresource/test/cases/validations_test.rb +0 -78
  178. data/lib/activeresource/test/fixtures/address.rb +0 -20
  179. data/lib/activeresource/test/fixtures/beast.rb +0 -16
  180. data/lib/activeresource/test/fixtures/comment.rb +0 -5
  181. data/lib/activeresource/test/fixtures/customer.rb +0 -5
  182. data/lib/activeresource/test/fixtures/fixtures.rbi +0 -46
  183. data/lib/activeresource/test/fixtures/inventory.rb +0 -14
  184. data/lib/activeresource/test/fixtures/person.rb +0 -15
  185. data/lib/activeresource/test/fixtures/pet.rb +0 -6
  186. data/lib/activeresource/test/fixtures/post.rb +0 -5
  187. data/lib/activeresource/test/fixtures/product.rb +0 -11
  188. data/lib/activeresource/test/fixtures/project.rb +0 -19
  189. data/lib/activeresource/test/fixtures/proxy.rb +0 -6
  190. data/lib/activeresource/test/fixtures/sound.rb +0 -11
  191. data/lib/activeresource/test/fixtures/street_address.rb +0 -6
  192. data/lib/activeresource/test/fixtures/subscription_plan.rb +0 -7
  193. data/lib/activeresource/test/fixtures/weather.rb +0 -21
  194. data/lib/activeresource/test/setter_trap.rb +0 -28
  195. data/lib/activeresource/test/singleton_test.rb +0 -138
  196. data/lib/activeresource/test/threadsafe_attributes_test.rb +0 -91
  197. data/sorbet/config +0 -6
  198. data/sorbet/rbi/annotations/.gitattributes +0 -1
  199. data/sorbet/rbi/annotations/activemodel.rbi +0 -89
  200. data/sorbet/rbi/annotations/activesupport.rbi +0 -457
  201. data/sorbet/rbi/annotations/minitest.rbi +0 -119
  202. data/sorbet/rbi/annotations/rainbow.rbi +0 -269
  203. data/sorbet/rbi/dsl/.gitattributes +0 -1
  204. data/sorbet/rbi/dsl/active_support/callbacks.rbi +0 -21
  205. data/sorbet/rbi/gems/.gitattributes +0 -1
  206. data/sorbet/rbi/gems/actioncable@8.0.1.rbi +0 -252
  207. data/sorbet/rbi/gems/actionmailbox@8.0.1.rbi +0 -9
  208. data/sorbet/rbi/gems/actionmailer@8.0.1.rbi +0 -9
  209. data/sorbet/rbi/gems/actionpack@8.0.1.rbi +0 -21111
  210. data/sorbet/rbi/gems/actiontext@8.0.1.rbi +0 -9
  211. data/sorbet/rbi/gems/actionview@8.0.1.rbi +0 -16409
  212. data/sorbet/rbi/gems/activejob@8.0.1.rbi +0 -90
  213. data/sorbet/rbi/gems/activemodel-serializers-xml@1.0.3.rbi +0 -166
  214. data/sorbet/rbi/gems/activemodel@8.0.1.rbi +0 -6865
  215. data/sorbet/rbi/gems/activerecord@8.0.1.rbi +0 -43277
  216. data/sorbet/rbi/gems/activestorage@8.0.1.rbi +0 -9
  217. data/sorbet/rbi/gems/activesupport@8.0.1.rbi +0 -21426
  218. data/sorbet/rbi/gems/ast@2.4.2.rbi +0 -585
  219. data/sorbet/rbi/gems/base64@0.2.0.rbi +0 -509
  220. data/sorbet/rbi/gems/benchmark@0.4.0.rbi +0 -618
  221. data/sorbet/rbi/gems/bigdecimal@3.1.8.rbi +0 -78
  222. data/sorbet/rbi/gems/builder@3.3.0.rbi +0 -9
  223. data/sorbet/rbi/gems/bump@0.10.0.rbi +0 -169
  224. data/sorbet/rbi/gems/byebug@11.1.3.rbi +0 -3607
  225. data/sorbet/rbi/gems/coderay@1.1.3.rbi +0 -3427
  226. data/sorbet/rbi/gems/concurrent-ruby@1.3.4.rbi +0 -11645
  227. data/sorbet/rbi/gems/connection_pool@2.4.1.rbi +0 -9
  228. data/sorbet/rbi/gems/crass@1.0.6.rbi +0 -623
  229. data/sorbet/rbi/gems/date@3.4.1.rbi +0 -75
  230. data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +0 -1131
  231. data/sorbet/rbi/gems/docile@1.4.1.rbi +0 -377
  232. data/sorbet/rbi/gems/drb@2.2.1.rbi +0 -1347
  233. data/sorbet/rbi/gems/erubi@1.13.0.rbi +0 -150
  234. data/sorbet/rbi/gems/globalid@1.2.1.rbi +0 -9
  235. data/sorbet/rbi/gems/i18n@1.14.6.rbi +0 -2359
  236. data/sorbet/rbi/gems/io-console@0.8.0.rbi +0 -9
  237. data/sorbet/rbi/gems/json@2.9.0.rbi +0 -1944
  238. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +0 -14238
  239. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +0 -240
  240. data/sorbet/rbi/gems/logger@1.6.3.rbi +0 -940
  241. data/sorbet/rbi/gems/loofah@2.23.1.rbi +0 -1081
  242. data/sorbet/rbi/gems/mail@2.8.1.rbi +0 -9
  243. data/sorbet/rbi/gems/marcel@1.0.4.rbi +0 -9
  244. data/sorbet/rbi/gems/method_source@1.1.0.rbi +0 -304
  245. data/sorbet/rbi/gems/mini_mime@1.1.5.rbi +0 -9
  246. data/sorbet/rbi/gems/minitest@5.25.4.rbi +0 -1547
  247. data/sorbet/rbi/gems/mocha@2.7.1.rbi +0 -12
  248. data/sorbet/rbi/gems/msgpack@1.7.5.rbi +0 -320
  249. data/sorbet/rbi/gems/net-imap@0.5.2.rbi +0 -9
  250. data/sorbet/rbi/gems/net-pop@0.1.2.rbi +0 -9
  251. data/sorbet/rbi/gems/net-protocol@0.2.2.rbi +0 -292
  252. data/sorbet/rbi/gems/net-smtp@0.5.0.rbi +0 -9
  253. data/sorbet/rbi/gems/netrc@0.11.0.rbi +0 -159
  254. data/sorbet/rbi/gems/nio4r@2.7.4.rbi +0 -9
  255. data/sorbet/rbi/gems/nokogiri@1.17.2.rbi +0 -8201
  256. data/sorbet/rbi/gems/parallel@1.26.3.rbi +0 -291
  257. data/sorbet/rbi/gems/parser@3.3.6.0.rbi +0 -5519
  258. data/sorbet/rbi/gems/prism@1.2.0.rbi +0 -39085
  259. data/sorbet/rbi/gems/pry-byebug@3.10.1.rbi +0 -1151
  260. data/sorbet/rbi/gems/pry@0.14.2.rbi +0 -10076
  261. data/sorbet/rbi/gems/psych@5.2.1.rbi +0 -1785
  262. data/sorbet/rbi/gems/racc@1.8.1.rbi +0 -162
  263. data/sorbet/rbi/gems/rack-session@2.0.0.rbi +0 -727
  264. data/sorbet/rbi/gems/rack-test@2.1.0.rbi +0 -747
  265. data/sorbet/rbi/gems/rack@3.1.8.rbi +0 -4905
  266. data/sorbet/rbi/gems/rackup@2.2.1.rbi +0 -230
  267. data/sorbet/rbi/gems/rails-dom-testing@2.2.0.rbi +0 -758
  268. data/sorbet/rbi/gems/rails-html-sanitizer@1.6.2.rbi +0 -785
  269. data/sorbet/rbi/gems/rails@8.0.1.rbi +0 -9
  270. data/sorbet/rbi/gems/railties@8.0.1.rbi +0 -6347
  271. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +0 -403
  272. data/sorbet/rbi/gems/rake@13.2.1.rbi +0 -3028
  273. data/sorbet/rbi/gems/rbi@0.2.1.rbi +0 -4535
  274. data/sorbet/rbi/gems/rdoc@6.9.1.rbi +0 -12593
  275. data/sorbet/rbi/gems/regexp_parser@2.9.3.rbi +0 -3772
  276. data/sorbet/rbi/gems/reline@0.6.0.rbi +0 -2454
  277. data/sorbet/rbi/gems/rexml@3.4.0.rbi +0 -4871
  278. data/sorbet/rbi/gems/rspec-core@3.13.2.rbi +0 -11284
  279. data/sorbet/rbi/gems/rspec-expectations@3.13.3.rbi +0 -8183
  280. data/sorbet/rbi/gems/rspec-mocks@3.13.2.rbi +0 -5341
  281. data/sorbet/rbi/gems/rspec-support@3.13.2.rbi +0 -1630
  282. data/sorbet/rbi/gems/rspec@3.13.0.rbi +0 -83
  283. data/sorbet/rbi/gems/rubocop-ast@1.37.0.rbi +0 -7713
  284. data/sorbet/rbi/gems/rubocop-md@1.2.4.rbi +0 -123
  285. data/sorbet/rbi/gems/rubocop-minitest@0.36.0.rbi +0 -2613
  286. data/sorbet/rbi/gems/rubocop-packaging@0.5.2.rbi +0 -388
  287. data/sorbet/rbi/gems/rubocop-performance@1.23.0.rbi +0 -9
  288. data/sorbet/rbi/gems/rubocop-rails@2.27.0.rbi +0 -9535
  289. data/sorbet/rbi/gems/rubocop@1.69.2.rbi +0 -59600
  290. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +0 -1318
  291. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +0 -9
  292. data/sorbet/rbi/gems/securerandom@0.4.1.rbi +0 -78
  293. data/sorbet/rbi/gems/simplecov-html@0.13.1.rbi +0 -225
  294. data/sorbet/rbi/gems/simplecov@0.22.0.rbi +0 -2149
  295. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi +0 -9
  296. data/sorbet/rbi/gems/spoom@1.5.0.rbi +0 -4932
  297. data/sorbet/rbi/gems/sqlite3@2.3.1.rbi +0 -1824
  298. data/sorbet/rbi/gems/standard-custom@1.0.2.rbi +0 -9
  299. data/sorbet/rbi/gems/standard-performance@1.6.0.rbi +0 -9
  300. data/sorbet/rbi/gems/standard@1.43.0.rbi +0 -926
  301. data/sorbet/rbi/gems/stringio@3.1.2.rbi +0 -9
  302. data/sorbet/rbi/gems/tapioca@0.16.4.rbi +0 -3597
  303. data/sorbet/rbi/gems/thor@1.3.2.rbi +0 -4378
  304. data/sorbet/rbi/gems/timeout@0.4.2.rbi +0 -151
  305. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +0 -5918
  306. data/sorbet/rbi/gems/unicode-display_width@3.1.2.rbi +0 -130
  307. data/sorbet/rbi/gems/unicode-emoji@4.0.4.rbi +0 -251
  308. data/sorbet/rbi/gems/uri@1.0.2.rbi +0 -2377
  309. data/sorbet/rbi/gems/useragent@0.16.11.rbi +0 -9
  310. data/sorbet/rbi/gems/websocket-driver@0.7.6.rbi +0 -9
  311. data/sorbet/rbi/gems/websocket-extensions@0.1.5.rbi +0 -9
  312. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +0 -435
  313. data/sorbet/rbi/gems/yard@0.9.37.rbi +0 -18504
  314. data/sorbet/rbi/gems/zeitwerk@2.7.1.rbi +0 -9
  315. data/sorbet/tapioca/config.yml +0 -13
  316. 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