active_cached_resource 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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