hyper-mesh 0.6.0 → 1.0.0.lap22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (722) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +12 -4
  3. data/.travis.yml +25 -2
  4. data/DOCS.md +722 -0
  5. data/Gemfile +2 -8
  6. data/README.md +32 -264
  7. data/Rakefile +7 -5
  8. data/dciy.toml +3 -0
  9. data/hyper-mesh.gemspec +59 -81
  10. data/lib/active_record_base.rb +3 -3
  11. data/lib/hypermesh/version.rb +1 -1
  12. data/lib/opal/parse_patch.rb +1 -1
  13. data/lib/reactive_record/active_record/aggregations.rb +1 -1
  14. data/lib/reactive_record/active_record/associations.rb +1 -5
  15. data/lib/reactive_record/active_record/class_methods.rb +6 -23
  16. data/lib/reactive_record/active_record/instance_methods.rb +30 -10
  17. data/lib/reactive_record/active_record/public_columns_hash.rb +27 -8
  18. data/lib/reactive_record/active_record/reactive_record/collection.rb +1 -1
  19. data/lib/reactive_record/active_record/reactive_record/column_types.rb +7 -1
  20. data/lib/reactive_record/active_record/reactive_record/dummy_value.rb +28 -15
  21. data/lib/reactive_record/active_record/reactive_record/isomorphic_base.rb +23 -12
  22. data/lib/reactive_record/active_record/reactive_record/while_loading.rb +84 -53
  23. data/lib/reactive_record/engine.rb +1 -1
  24. data/lib/reactive_record/server_data_cache.rb +99 -44
  25. metadata +101 -984
  26. data/docs/action_cable_quickstart.md +0 -134
  27. data/docs/activerecord_api.md +0 -275
  28. data/docs/authorization-policies.md +0 -502
  29. data/docs/client_side_scoping.md +0 -103
  30. data/docs/configuration_details.md +0 -33
  31. data/docs/pusher_faker_quickstart.md +0 -56
  32. data/docs/pusher_quickstart.md +0 -44
  33. data/docs/simple_poller_quickstart.md +0 -31
  34. data/docs/todo-example.md +0 -118
  35. data/docs/word_game.md +0 -28
  36. data/docs/words-example.md +0 -67
  37. data/examples/action-cable-production-mode/.gitignore +0 -21
  38. data/examples/action-cable-production-mode/Gemfile +0 -57
  39. data/examples/action-cable-production-mode/Gemfile.lock +0 -231
  40. data/examples/action-cable-production-mode/README.md +0 -24
  41. data/examples/action-cable-production-mode/Rakefile +0 -6
  42. data/examples/action-cable-production-mode/app/assets/config/manifest.js +0 -3
  43. data/examples/action-cable-production-mode/app/assets/images/.keep +0 -0
  44. data/examples/action-cable-production-mode/app/assets/javascripts/application.js +0 -20
  45. data/examples/action-cable-production-mode/app/assets/javascripts/cable.js +0 -13
  46. data/examples/action-cable-production-mode/app/assets/javascripts/channels/.keep +0 -0
  47. data/examples/action-cable-production-mode/app/assets/stylesheets/application.css +0 -15
  48. data/examples/action-cable-production-mode/app/channels/application_cable/channel.rb +0 -4
  49. data/examples/action-cable-production-mode/app/channels/application_cable/connection.rb +0 -4
  50. data/examples/action-cable-production-mode/app/controllers/application_controller.rb +0 -3
  51. data/examples/action-cable-production-mode/app/controllers/test_controller.rb +0 -5
  52. data/examples/action-cable-production-mode/app/models/models.rb +0 -2
  53. data/examples/action-cable-production-mode/app/models/public/application_record.rb +0 -3
  54. data/examples/action-cable-production-mode/app/models/public/word.rb +0 -2
  55. data/examples/action-cable-production-mode/app/policies/application_policy.rb +0 -14
  56. data/examples/action-cable-production-mode/app/views/components.rb +0 -16
  57. data/examples/action-cable-production-mode/app/views/components/app.rb +0 -18
  58. data/examples/action-cable-production-mode/app/views/layouts/application.html.erb +0 -14
  59. data/examples/action-cable-production-mode/bin/bundle +0 -3
  60. data/examples/action-cable-production-mode/bin/rails +0 -9
  61. data/examples/action-cable-production-mode/bin/rake +0 -9
  62. data/examples/action-cable-production-mode/bin/setup +0 -34
  63. data/examples/action-cable-production-mode/bin/spring +0 -16
  64. data/examples/action-cable-production-mode/bin/update +0 -29
  65. data/examples/action-cable-production-mode/config.ru +0 -5
  66. data/examples/action-cable-production-mode/config/application.rb +0 -18
  67. data/examples/action-cable-production-mode/config/boot.rb +0 -3
  68. data/examples/action-cable-production-mode/config/cable.yml +0 -9
  69. data/examples/action-cable-production-mode/config/database.yml +0 -25
  70. data/examples/action-cable-production-mode/config/environment.rb +0 -5
  71. data/examples/action-cable-production-mode/config/environments/development.rb +0 -56
  72. data/examples/action-cable-production-mode/config/environments/production.rb +0 -89
  73. data/examples/action-cable-production-mode/config/environments/test.rb +0 -42
  74. data/examples/action-cable-production-mode/config/initializers/application_controller_renderer.rb +0 -6
  75. data/examples/action-cable-production-mode/config/initializers/assets.rb +0 -11
  76. data/examples/action-cable-production-mode/config/initializers/backtrace_silencers.rb +0 -7
  77. data/examples/action-cable-production-mode/config/initializers/cookies_serializer.rb +0 -5
  78. data/examples/action-cable-production-mode/config/initializers/filter_parameter_logging.rb +0 -4
  79. data/examples/action-cable-production-mode/config/initializers/hyper_mesh.rb +0 -4
  80. data/examples/action-cable-production-mode/config/initializers/inflections.rb +0 -16
  81. data/examples/action-cable-production-mode/config/initializers/mime_types.rb +0 -4
  82. data/examples/action-cable-production-mode/config/initializers/new_framework_defaults.rb +0 -24
  83. data/examples/action-cable-production-mode/config/initializers/session_store.rb +0 -3
  84. data/examples/action-cable-production-mode/config/initializers/wrap_parameters.rb +0 -14
  85. data/examples/action-cable-production-mode/config/locales/en.yml +0 -23
  86. data/examples/action-cable-production-mode/config/puma.rb +0 -47
  87. data/examples/action-cable-production-mode/config/routes.rb +0 -5
  88. data/examples/action-cable-production-mode/config/secrets.yml +0 -22
  89. data/examples/action-cable-production-mode/config/spring.rb +0 -6
  90. data/examples/action-cable-production-mode/db/migrate/20161114213840_create_words.rb +0 -9
  91. data/examples/action-cable-production-mode/db/schema.rb +0 -34
  92. data/examples/action-cable-production-mode/db/seeds.rb +0 -7
  93. data/examples/action-cable-production-mode/lib/assets/.keep +0 -0
  94. data/examples/action-cable-production-mode/lib/tasks/.keep +0 -0
  95. data/examples/action-cable-production-mode/public/404.html +0 -67
  96. data/examples/action-cable-production-mode/public/422.html +0 -67
  97. data/examples/action-cable-production-mode/public/500.html +0 -66
  98. data/examples/action-cable-production-mode/public/apple-touch-icon-precomposed.png +0 -0
  99. data/examples/action-cable-production-mode/public/apple-touch-icon.png +0 -0
  100. data/examples/action-cable-production-mode/public/assets/.sprockets-manifest-3e9abd3ee8ba47c39a55b61ae37ed9e1.json +0 -1
  101. data/examples/action-cable-production-mode/public/favicon.ico +0 -0
  102. data/examples/action-cable-production-mode/public/robots.txt +0 -5
  103. data/examples/action-cable-production-mode/test/controllers/.keep +0 -0
  104. data/examples/action-cable-production-mode/test/fixtures/.keep +0 -0
  105. data/examples/action-cable-production-mode/test/fixtures/files/.keep +0 -0
  106. data/examples/action-cable-production-mode/test/fixtures/words.yml +0 -7
  107. data/examples/action-cable-production-mode/test/helpers/.keep +0 -0
  108. data/examples/action-cable-production-mode/test/integration/.keep +0 -0
  109. data/examples/action-cable-production-mode/test/mailers/.keep +0 -0
  110. data/examples/action-cable-production-mode/test/models/.keep +0 -0
  111. data/examples/action-cable-production-mode/test/models/word_test.rb +0 -7
  112. data/examples/action-cable-production-mode/test/test_helper.rb +0 -10
  113. data/examples/action-cable-production-mode/vendor/assets/javascripts/.keep +0 -0
  114. data/examples/action-cable-production-mode/vendor/assets/stylesheets/.keep +0 -0
  115. data/examples/action-cable/.gitignore +0 -21
  116. data/examples/action-cable/Gemfile +0 -58
  117. data/examples/action-cable/Gemfile.lock +0 -248
  118. data/examples/action-cable/README.md +0 -24
  119. data/examples/action-cable/Rakefile +0 -6
  120. data/examples/action-cable/app/assets/config/manifest.js +0 -3
  121. data/examples/action-cable/app/assets/images/.keep +0 -0
  122. data/examples/action-cable/app/assets/javascripts/application.js +0 -20
  123. data/examples/action-cable/app/assets/javascripts/cable.js +0 -13
  124. data/examples/action-cable/app/assets/javascripts/channels/.keep +0 -0
  125. data/examples/action-cable/app/assets/stylesheets/application.css +0 -15
  126. data/examples/action-cable/app/channels/application_cable/channel.rb +0 -4
  127. data/examples/action-cable/app/channels/application_cable/connection.rb +0 -4
  128. data/examples/action-cable/app/controllers/application_controller.rb +0 -3
  129. data/examples/action-cable/app/controllers/test_controller.rb +0 -5
  130. data/examples/action-cable/app/models/models.rb +0 -2
  131. data/examples/action-cable/app/models/public/.keep +0 -0
  132. data/examples/action-cable/app/models/public/application_record.rb +0 -3
  133. data/examples/action-cable/app/models/public/word.rb +0 -2
  134. data/examples/action-cable/app/policies/application_policy.rb +0 -14
  135. data/examples/action-cable/app/views/components.rb +0 -16
  136. data/examples/action-cable/app/views/components/app.rb +0 -18
  137. data/examples/action-cable/app/views/layouts/application.html.erb +0 -14
  138. data/examples/action-cable/bin/bundle +0 -3
  139. data/examples/action-cable/bin/rails +0 -9
  140. data/examples/action-cable/bin/rake +0 -9
  141. data/examples/action-cable/bin/setup +0 -34
  142. data/examples/action-cable/bin/spring +0 -16
  143. data/examples/action-cable/bin/update +0 -29
  144. data/examples/action-cable/config.ru +0 -5
  145. data/examples/action-cable/config/application.rb +0 -20
  146. data/examples/action-cable/config/boot.rb +0 -3
  147. data/examples/action-cable/config/cable.yml +0 -9
  148. data/examples/action-cable/config/database.yml +0 -25
  149. data/examples/action-cable/config/environment.rb +0 -5
  150. data/examples/action-cable/config/environments/development.rb +0 -56
  151. data/examples/action-cable/config/environments/production.rb +0 -86
  152. data/examples/action-cable/config/environments/test.rb +0 -42
  153. data/examples/action-cable/config/initializers/application_controller_renderer.rb +0 -6
  154. data/examples/action-cable/config/initializers/assets.rb +0 -11
  155. data/examples/action-cable/config/initializers/backtrace_silencers.rb +0 -7
  156. data/examples/action-cable/config/initializers/cookies_serializer.rb +0 -5
  157. data/examples/action-cable/config/initializers/filter_parameter_logging.rb +0 -4
  158. data/examples/action-cable/config/initializers/hyperloop.rb +0 -4
  159. data/examples/action-cable/config/initializers/inflections.rb +0 -16
  160. data/examples/action-cable/config/initializers/mime_types.rb +0 -4
  161. data/examples/action-cable/config/initializers/new_framework_defaults.rb +0 -24
  162. data/examples/action-cable/config/initializers/session_store.rb +0 -3
  163. data/examples/action-cable/config/initializers/wrap_parameters.rb +0 -14
  164. data/examples/action-cable/config/locales/en.yml +0 -23
  165. data/examples/action-cable/config/puma.rb +0 -47
  166. data/examples/action-cable/config/routes.rb +0 -5
  167. data/examples/action-cable/config/secrets.yml +0 -22
  168. data/examples/action-cable/config/spring.rb +0 -6
  169. data/examples/action-cable/db/migrate/20161114213840_create_words.rb +0 -9
  170. data/examples/action-cable/db/schema.rb +0 -34
  171. data/examples/action-cable/db/seeds.rb +0 -7
  172. data/examples/action-cable/lib/assets/.keep +0 -0
  173. data/examples/action-cable/lib/tasks/.keep +0 -0
  174. data/examples/action-cable/public/404.html +0 -67
  175. data/examples/action-cable/public/422.html +0 -67
  176. data/examples/action-cable/public/500.html +0 -66
  177. data/examples/action-cable/public/apple-touch-icon-precomposed.png +0 -0
  178. data/examples/action-cable/public/apple-touch-icon.png +0 -0
  179. data/examples/action-cable/public/favicon.ico +0 -0
  180. data/examples/action-cable/public/robots.txt +0 -5
  181. data/examples/action-cable/test/controllers/.keep +0 -0
  182. data/examples/action-cable/test/fixtures/.keep +0 -0
  183. data/examples/action-cable/test/fixtures/files/.keep +0 -0
  184. data/examples/action-cable/test/fixtures/words.yml +0 -7
  185. data/examples/action-cable/test/helpers/.keep +0 -0
  186. data/examples/action-cable/test/integration/.keep +0 -0
  187. data/examples/action-cable/test/mailers/.keep +0 -0
  188. data/examples/action-cable/test/models/.keep +0 -0
  189. data/examples/action-cable/test/models/word_test.rb +0 -7
  190. data/examples/action-cable/test/test_helper.rb +0 -10
  191. data/examples/action-cable/vendor/assets/javascripts/.keep +0 -0
  192. data/examples/action-cable/vendor/assets/stylesheets/.keep +0 -0
  193. data/examples/pusher-fake/.gitignore +0 -21
  194. data/examples/pusher-fake/Gemfile +0 -59
  195. data/examples/pusher-fake/Gemfile.lock +0 -262
  196. data/examples/pusher-fake/README.md +0 -24
  197. data/examples/pusher-fake/Rakefile +0 -6
  198. data/examples/pusher-fake/app/assets/config/manifest.js +0 -3
  199. data/examples/pusher-fake/app/assets/images/.keep +0 -0
  200. data/examples/pusher-fake/app/assets/javascripts/application.js +0 -21
  201. data/examples/pusher-fake/app/assets/stylesheets/application.css +0 -15
  202. data/examples/pusher-fake/app/controllers/application_controller.rb +0 -3
  203. data/examples/pusher-fake/app/controllers/test_controller.rb +0 -5
  204. data/examples/pusher-fake/app/models/models.rb +0 -2
  205. data/examples/pusher-fake/app/models/public/.keep +0 -0
  206. data/examples/pusher-fake/app/models/public/application_record.rb +0 -3
  207. data/examples/pusher-fake/app/models/public/word.rb +0 -2
  208. data/examples/pusher-fake/app/policies/application_policy.rb +0 -14
  209. data/examples/pusher-fake/app/views/components.rb +0 -16
  210. data/examples/pusher-fake/app/views/components/app.rb +0 -18
  211. data/examples/pusher-fake/app/views/layouts/application.html.erb +0 -14
  212. data/examples/pusher-fake/bin/bundle +0 -3
  213. data/examples/pusher-fake/bin/rails +0 -9
  214. data/examples/pusher-fake/bin/rake +0 -9
  215. data/examples/pusher-fake/bin/setup +0 -34
  216. data/examples/pusher-fake/bin/spring +0 -16
  217. data/examples/pusher-fake/bin/update +0 -29
  218. data/examples/pusher-fake/config.ru +0 -5
  219. data/examples/pusher-fake/config/application.rb +0 -20
  220. data/examples/pusher-fake/config/boot.rb +0 -3
  221. data/examples/pusher-fake/config/database.yml +0 -25
  222. data/examples/pusher-fake/config/environment.rb +0 -5
  223. data/examples/pusher-fake/config/environments/development.rb +0 -56
  224. data/examples/pusher-fake/config/environments/production.rb +0 -86
  225. data/examples/pusher-fake/config/environments/test.rb +0 -42
  226. data/examples/pusher-fake/config/initializers/application_controller_renderer.rb +0 -6
  227. data/examples/pusher-fake/config/initializers/assets.rb +0 -11
  228. data/examples/pusher-fake/config/initializers/backtrace_silencers.rb +0 -7
  229. data/examples/pusher-fake/config/initializers/cookies_serializer.rb +0 -5
  230. data/examples/pusher-fake/config/initializers/filter_parameter_logging.rb +0 -4
  231. data/examples/pusher-fake/config/initializers/hyper_mesh.rb +0 -21
  232. data/examples/pusher-fake/config/initializers/inflections.rb +0 -16
  233. data/examples/pusher-fake/config/initializers/mime_types.rb +0 -4
  234. data/examples/pusher-fake/config/initializers/new_framework_defaults.rb +0 -24
  235. data/examples/pusher-fake/config/initializers/session_store.rb +0 -3
  236. data/examples/pusher-fake/config/initializers/wrap_parameters.rb +0 -14
  237. data/examples/pusher-fake/config/locales/en.yml +0 -23
  238. data/examples/pusher-fake/config/puma.rb +0 -47
  239. data/examples/pusher-fake/config/routes.rb +0 -5
  240. data/examples/pusher-fake/config/secrets.yml +0 -22
  241. data/examples/pusher-fake/config/spring.rb +0 -6
  242. data/examples/pusher-fake/db/migrate/20161114213840_create_words.rb +0 -9
  243. data/examples/pusher-fake/db/schema.rb +0 -34
  244. data/examples/pusher-fake/db/seeds.rb +0 -7
  245. data/examples/pusher-fake/lib/assets/.keep +0 -0
  246. data/examples/pusher-fake/lib/tasks/.keep +0 -0
  247. data/examples/pusher-fake/public/404.html +0 -67
  248. data/examples/pusher-fake/public/422.html +0 -67
  249. data/examples/pusher-fake/public/500.html +0 -66
  250. data/examples/pusher-fake/public/apple-touch-icon-precomposed.png +0 -0
  251. data/examples/pusher-fake/public/apple-touch-icon.png +0 -0
  252. data/examples/pusher-fake/public/favicon.ico +0 -0
  253. data/examples/pusher-fake/public/robots.txt +0 -5
  254. data/examples/pusher-fake/test/controllers/.keep +0 -0
  255. data/examples/pusher-fake/test/fixtures/.keep +0 -0
  256. data/examples/pusher-fake/test/fixtures/files/.keep +0 -0
  257. data/examples/pusher-fake/test/fixtures/words.yml +0 -7
  258. data/examples/pusher-fake/test/helpers/.keep +0 -0
  259. data/examples/pusher-fake/test/integration/.keep +0 -0
  260. data/examples/pusher-fake/test/mailers/.keep +0 -0
  261. data/examples/pusher-fake/test/models/.keep +0 -0
  262. data/examples/pusher-fake/test/models/word_test.rb +0 -7
  263. data/examples/pusher-fake/test/test_helper.rb +0 -10
  264. data/examples/pusher-fake/vendor/assets/javascripts/.keep +0 -0
  265. data/examples/pusher-fake/vendor/assets/stylesheets/.keep +0 -0
  266. data/examples/pusher/.gitignore +0 -21
  267. data/examples/pusher/Gemfile +0 -58
  268. data/examples/pusher/Gemfile.lock +0 -236
  269. data/examples/pusher/README.md +0 -24
  270. data/examples/pusher/Rakefile +0 -6
  271. data/examples/pusher/app/assets/config/manifest.js +0 -3
  272. data/examples/pusher/app/assets/images/.keep +0 -0
  273. data/examples/pusher/app/assets/javascripts/application.js +0 -21
  274. data/examples/pusher/app/assets/stylesheets/application.css +0 -15
  275. data/examples/pusher/app/controllers/application_controller.rb +0 -3
  276. data/examples/pusher/app/controllers/test_controller.rb +0 -5
  277. data/examples/pusher/app/models/models.rb +0 -2
  278. data/examples/pusher/app/models/public/.keep +0 -0
  279. data/examples/pusher/app/models/public/application_record.rb +0 -3
  280. data/examples/pusher/app/models/public/word.rb +0 -2
  281. data/examples/pusher/app/policies/application_policy.rb +0 -14
  282. data/examples/pusher/app/views/components.rb +0 -16
  283. data/examples/pusher/app/views/components/app.rb +0 -18
  284. data/examples/pusher/app/views/layouts/application.html.erb +0 -14
  285. data/examples/pusher/bin/bundle +0 -3
  286. data/examples/pusher/bin/rails +0 -9
  287. data/examples/pusher/bin/rake +0 -9
  288. data/examples/pusher/bin/setup +0 -34
  289. data/examples/pusher/bin/spring +0 -16
  290. data/examples/pusher/bin/update +0 -29
  291. data/examples/pusher/config.ru +0 -5
  292. data/examples/pusher/config/application.rb +0 -20
  293. data/examples/pusher/config/boot.rb +0 -3
  294. data/examples/pusher/config/database.yml +0 -25
  295. data/examples/pusher/config/environment.rb +0 -5
  296. data/examples/pusher/config/environments/development.rb +0 -56
  297. data/examples/pusher/config/environments/production.rb +0 -86
  298. data/examples/pusher/config/environments/test.rb +0 -42
  299. data/examples/pusher/config/initializers/application_controller_renderer.rb +0 -6
  300. data/examples/pusher/config/initializers/assets.rb +0 -11
  301. data/examples/pusher/config/initializers/backtrace_silencers.rb +0 -7
  302. data/examples/pusher/config/initializers/cookies_serializer.rb +0 -5
  303. data/examples/pusher/config/initializers/filter_parameter_logging.rb +0 -4
  304. data/examples/pusher/config/initializers/hyper_mesh.rb +0 -10
  305. data/examples/pusher/config/initializers/inflections.rb +0 -16
  306. data/examples/pusher/config/initializers/mime_types.rb +0 -4
  307. data/examples/pusher/config/initializers/new_framework_defaults.rb +0 -24
  308. data/examples/pusher/config/initializers/session_store.rb +0 -3
  309. data/examples/pusher/config/initializers/wrap_parameters.rb +0 -14
  310. data/examples/pusher/config/locales/en.yml +0 -23
  311. data/examples/pusher/config/puma.rb +0 -47
  312. data/examples/pusher/config/routes.rb +0 -5
  313. data/examples/pusher/config/secrets.yml +0 -22
  314. data/examples/pusher/config/spring.rb +0 -6
  315. data/examples/pusher/db/migrate/20161114213840_create_words.rb +0 -9
  316. data/examples/pusher/db/schema.rb +0 -34
  317. data/examples/pusher/db/seeds.rb +0 -7
  318. data/examples/pusher/lib/assets/.keep +0 -0
  319. data/examples/pusher/lib/tasks/.keep +0 -0
  320. data/examples/pusher/public/404.html +0 -67
  321. data/examples/pusher/public/422.html +0 -67
  322. data/examples/pusher/public/500.html +0 -66
  323. data/examples/pusher/public/apple-touch-icon-precomposed.png +0 -0
  324. data/examples/pusher/public/apple-touch-icon.png +0 -0
  325. data/examples/pusher/public/favicon.ico +0 -0
  326. data/examples/pusher/public/robots.txt +0 -5
  327. data/examples/pusher/test/controllers/.keep +0 -0
  328. data/examples/pusher/test/fixtures/.keep +0 -0
  329. data/examples/pusher/test/fixtures/files/.keep +0 -0
  330. data/examples/pusher/test/fixtures/words.yml +0 -7
  331. data/examples/pusher/test/helpers/.keep +0 -0
  332. data/examples/pusher/test/integration/.keep +0 -0
  333. data/examples/pusher/test/mailers/.keep +0 -0
  334. data/examples/pusher/test/models/.keep +0 -0
  335. data/examples/pusher/test/models/word_test.rb +0 -7
  336. data/examples/pusher/test/test_helper.rb +0 -10
  337. data/examples/pusher/vendor/assets/javascripts/.keep +0 -0
  338. data/examples/pusher/vendor/assets/stylesheets/.keep +0 -0
  339. data/examples/simple-poller/.gitignore +0 -21
  340. data/examples/simple-poller/Gemfile +0 -57
  341. data/examples/simple-poller/Gemfile.lock +0 -229
  342. data/examples/simple-poller/README.md +0 -24
  343. data/examples/simple-poller/Rakefile +0 -6
  344. data/examples/simple-poller/app/assets/config/manifest.js +0 -3
  345. data/examples/simple-poller/app/assets/images/.keep +0 -0
  346. data/examples/simple-poller/app/assets/javascripts/application.js +0 -21
  347. data/examples/simple-poller/app/assets/stylesheets/application.css +0 -15
  348. data/examples/simple-poller/app/controllers/application_controller.rb +0 -3
  349. data/examples/simple-poller/app/controllers/test_controller.rb +0 -5
  350. data/examples/simple-poller/app/models/models.rb +0 -2
  351. data/examples/simple-poller/app/models/public/.keep +0 -0
  352. data/examples/simple-poller/app/models/public/application_record.rb +0 -3
  353. data/examples/simple-poller/app/models/public/word.rb +0 -2
  354. data/examples/simple-poller/app/policies/application_policy.rb +0 -14
  355. data/examples/simple-poller/app/views/components.rb +0 -16
  356. data/examples/simple-poller/app/views/components/app.rb +0 -18
  357. data/examples/simple-poller/app/views/layouts/application.html.erb +0 -14
  358. data/examples/simple-poller/bin/bundle +0 -3
  359. data/examples/simple-poller/bin/rails +0 -9
  360. data/examples/simple-poller/bin/rake +0 -9
  361. data/examples/simple-poller/bin/setup +0 -34
  362. data/examples/simple-poller/bin/spring +0 -16
  363. data/examples/simple-poller/bin/update +0 -29
  364. data/examples/simple-poller/config.ru +0 -5
  365. data/examples/simple-poller/config/application.rb +0 -20
  366. data/examples/simple-poller/config/boot.rb +0 -3
  367. data/examples/simple-poller/config/database.yml +0 -25
  368. data/examples/simple-poller/config/environment.rb +0 -5
  369. data/examples/simple-poller/config/environments/development.rb +0 -56
  370. data/examples/simple-poller/config/environments/production.rb +0 -86
  371. data/examples/simple-poller/config/environments/test.rb +0 -42
  372. data/examples/simple-poller/config/initializers/application_controller_renderer.rb +0 -6
  373. data/examples/simple-poller/config/initializers/assets.rb +0 -11
  374. data/examples/simple-poller/config/initializers/backtrace_silencers.rb +0 -7
  375. data/examples/simple-poller/config/initializers/cookies_serializer.rb +0 -5
  376. data/examples/simple-poller/config/initializers/filter_parameter_logging.rb +0 -4
  377. data/examples/simple-poller/config/initializers/hyper_mesh.rb +0 -9
  378. data/examples/simple-poller/config/initializers/inflections.rb +0 -16
  379. data/examples/simple-poller/config/initializers/mime_types.rb +0 -4
  380. data/examples/simple-poller/config/initializers/new_framework_defaults.rb +0 -24
  381. data/examples/simple-poller/config/initializers/session_store.rb +0 -3
  382. data/examples/simple-poller/config/initializers/wrap_parameters.rb +0 -14
  383. data/examples/simple-poller/config/locales/en.yml +0 -23
  384. data/examples/simple-poller/config/puma.rb +0 -47
  385. data/examples/simple-poller/config/routes.rb +0 -5
  386. data/examples/simple-poller/config/secrets.yml +0 -22
  387. data/examples/simple-poller/config/spring.rb +0 -6
  388. data/examples/simple-poller/db/migrate/20161114213840_create_words.rb +0 -9
  389. data/examples/simple-poller/db/schema.rb +0 -34
  390. data/examples/simple-poller/db/seeds.rb +0 -7
  391. data/examples/simple-poller/lib/assets/.keep +0 -0
  392. data/examples/simple-poller/lib/tasks/.keep +0 -0
  393. data/examples/simple-poller/public/404.html +0 -67
  394. data/examples/simple-poller/public/422.html +0 -67
  395. data/examples/simple-poller/public/500.html +0 -66
  396. data/examples/simple-poller/public/apple-touch-icon-precomposed.png +0 -0
  397. data/examples/simple-poller/public/apple-touch-icon.png +0 -0
  398. data/examples/simple-poller/public/favicon.ico +0 -0
  399. data/examples/simple-poller/public/robots.txt +0 -5
  400. data/examples/simple-poller/test/controllers/.keep +0 -0
  401. data/examples/simple-poller/test/fixtures/.keep +0 -0
  402. data/examples/simple-poller/test/fixtures/files/.keep +0 -0
  403. data/examples/simple-poller/test/fixtures/words.yml +0 -7
  404. data/examples/simple-poller/test/helpers/.keep +0 -0
  405. data/examples/simple-poller/test/integration/.keep +0 -0
  406. data/examples/simple-poller/test/mailers/.keep +0 -0
  407. data/examples/simple-poller/test/models/.keep +0 -0
  408. data/examples/simple-poller/test/models/word_test.rb +0 -7
  409. data/examples/simple-poller/test/test_helper.rb +0 -10
  410. data/examples/simple-poller/vendor/assets/javascripts/.keep +0 -0
  411. data/examples/simple-poller/vendor/assets/stylesheets/.keep +0 -0
  412. data/examples/word-game/.gitignore +0 -21
  413. data/examples/word-game/Gemfile +0 -57
  414. data/examples/word-game/Gemfile.lock +0 -241
  415. data/examples/word-game/README.md +0 -24
  416. data/examples/word-game/Rakefile +0 -6
  417. data/examples/word-game/app/assets/config/manifest.js +0 -3
  418. data/examples/word-game/app/assets/images/.keep +0 -0
  419. data/examples/word-game/app/assets/javascripts/application.js +0 -20
  420. data/examples/word-game/app/assets/javascripts/cable.js +0 -13
  421. data/examples/word-game/app/assets/javascripts/channels/.keep +0 -0
  422. data/examples/word-game/app/assets/stylesheets/application.css +0 -15
  423. data/examples/word-game/app/channels/application_cable/channel.rb +0 -4
  424. data/examples/word-game/app/channels/application_cable/connection.rb +0 -4
  425. data/examples/word-game/app/controllers/application_controller.rb +0 -3
  426. data/examples/word-game/app/controllers/concerns/.keep +0 -0
  427. data/examples/word-game/app/helpers/application_helper.rb +0 -2
  428. data/examples/word-game/app/jobs/application_job.rb +0 -2
  429. data/examples/word-game/app/mailers/application_mailer.rb +0 -4
  430. data/examples/word-game/app/models/application_record.rb +0 -3
  431. data/examples/word-game/app/models/concerns/.keep +0 -0
  432. data/examples/word-game/app/models/models.rb +0 -2
  433. data/examples/word-game/app/models/public/.keep +0 -0
  434. data/examples/word-game/app/policies/application_policy.rb +0 -14
  435. data/examples/word-game/app/views/components.rb +0 -16
  436. data/examples/word-game/app/views/components/.keep +0 -0
  437. data/examples/word-game/app/views/layouts/application.html.erb +0 -14
  438. data/examples/word-game/app/views/layouts/mailer.html.erb +0 -13
  439. data/examples/word-game/app/views/layouts/mailer.text.erb +0 -1
  440. data/examples/word-game/bin/bundle +0 -3
  441. data/examples/word-game/bin/rails +0 -9
  442. data/examples/word-game/bin/rake +0 -9
  443. data/examples/word-game/bin/setup +0 -34
  444. data/examples/word-game/bin/spring +0 -16
  445. data/examples/word-game/bin/update +0 -29
  446. data/examples/word-game/config.ru +0 -5
  447. data/examples/word-game/config/application.rb +0 -20
  448. data/examples/word-game/config/boot.rb +0 -3
  449. data/examples/word-game/config/cable.yml +0 -9
  450. data/examples/word-game/config/database.yml +0 -25
  451. data/examples/word-game/config/environment.rb +0 -5
  452. data/examples/word-game/config/environments/development.rb +0 -56
  453. data/examples/word-game/config/environments/production.rb +0 -86
  454. data/examples/word-game/config/environments/test.rb +0 -42
  455. data/examples/word-game/config/initializers/application_controller_renderer.rb +0 -6
  456. data/examples/word-game/config/initializers/assets.rb +0 -11
  457. data/examples/word-game/config/initializers/backtrace_silencers.rb +0 -7
  458. data/examples/word-game/config/initializers/cookies_serializer.rb +0 -5
  459. data/examples/word-game/config/initializers/filter_parameter_logging.rb +0 -4
  460. data/examples/word-game/config/initializers/hyper_mesh.rb +0 -4
  461. data/examples/word-game/config/initializers/inflections.rb +0 -16
  462. data/examples/word-game/config/initializers/mime_types.rb +0 -4
  463. data/examples/word-game/config/initializers/new_framework_defaults.rb +0 -24
  464. data/examples/word-game/config/initializers/session_store.rb +0 -3
  465. data/examples/word-game/config/initializers/wrap_parameters.rb +0 -14
  466. data/examples/word-game/config/locales/en.yml +0 -23
  467. data/examples/word-game/config/puma.rb +0 -47
  468. data/examples/word-game/config/routes.rb +0 -4
  469. data/examples/word-game/config/secrets.yml +0 -22
  470. data/examples/word-game/config/spring.rb +0 -6
  471. data/examples/word-game/db/seeds.rb +0 -7
  472. data/examples/word-game/lib/assets/.keep +0 -0
  473. data/examples/word-game/lib/tasks/.keep +0 -0
  474. data/examples/word-game/public/404.html +0 -67
  475. data/examples/word-game/public/422.html +0 -67
  476. data/examples/word-game/public/500.html +0 -66
  477. data/examples/word-game/public/apple-touch-icon-precomposed.png +0 -0
  478. data/examples/word-game/public/apple-touch-icon.png +0 -0
  479. data/examples/word-game/public/favicon.ico +0 -0
  480. data/examples/word-game/public/robots.txt +0 -5
  481. data/examples/word-game/test/controllers/.keep +0 -0
  482. data/examples/word-game/test/fixtures/.keep +0 -0
  483. data/examples/word-game/test/fixtures/files/.keep +0 -0
  484. data/examples/word-game/test/helpers/.keep +0 -0
  485. data/examples/word-game/test/integration/.keep +0 -0
  486. data/examples/word-game/test/mailers/.keep +0 -0
  487. data/examples/word-game/test/models/.keep +0 -0
  488. data/examples/word-game/test/test_helper.rb +0 -10
  489. data/examples/word-game/vendor/assets/javascripts/.keep +0 -0
  490. data/examples/word-game/vendor/assets/stylesheets/.keep +0 -0
  491. data/examples/words/.gitignore +0 -21
  492. data/examples/words/Gemfile +0 -59
  493. data/examples/words/Gemfile.lock +0 -248
  494. data/examples/words/README.md +0 -24
  495. data/examples/words/Rakefile +0 -6
  496. data/examples/words/app/assets/config/manifest.js +0 -3
  497. data/examples/words/app/assets/javascripts/application.js +0 -18
  498. data/examples/words/app/assets/stylesheets/application.css +0 -15
  499. data/examples/words/app/controllers/application_controller.rb +0 -3
  500. data/examples/words/app/controllers/test_controller.rb +0 -6
  501. data/examples/words/app/models/models.rb +0 -2
  502. data/examples/words/app/models/public/application_record.rb +0 -3
  503. data/examples/words/app/models/public/word.rb +0 -10
  504. data/examples/words/app/policies/application_policy.rb +0 -6
  505. data/examples/words/app/views/components.rb +0 -18
  506. data/examples/words/app/views/components/app.rb +0 -31
  507. data/examples/words/app/views/layouts/application.html.erb +0 -14
  508. data/examples/words/app/views/layouts/mailer.html.erb +0 -13
  509. data/examples/words/app/views/layouts/mailer.text.erb +0 -1
  510. data/examples/words/bin/bundle +0 -3
  511. data/examples/words/bin/rails +0 -9
  512. data/examples/words/bin/rake +0 -9
  513. data/examples/words/bin/setup +0 -34
  514. data/examples/words/bin/spring +0 -15
  515. data/examples/words/bin/update +0 -29
  516. data/examples/words/config.ru +0 -5
  517. data/examples/words/config/application.rb +0 -30
  518. data/examples/words/config/boot.rb +0 -3
  519. data/examples/words/config/cable.yml +0 -9
  520. data/examples/words/config/database.yml +0 -25
  521. data/examples/words/config/environment.rb +0 -5
  522. data/examples/words/config/environments/development.rb +0 -45
  523. data/examples/words/config/environments/production.rb +0 -86
  524. data/examples/words/config/environments/test.rb +0 -42
  525. data/examples/words/config/initializers/application_controller_renderer.rb +0 -6
  526. data/examples/words/config/initializers/assets.rb +0 -11
  527. data/examples/words/config/initializers/backtrace_silencers.rb +0 -7
  528. data/examples/words/config/initializers/cookies_serializer.rb +0 -5
  529. data/examples/words/config/initializers/filter_parameter_logging.rb +0 -4
  530. data/examples/words/config/initializers/hyper_mesh.rb +0 -14
  531. data/examples/words/config/initializers/inflections.rb +0 -16
  532. data/examples/words/config/initializers/mime_types.rb +0 -4
  533. data/examples/words/config/initializers/new_framework_defaults.rb +0 -24
  534. data/examples/words/config/initializers/session_store.rb +0 -3
  535. data/examples/words/config/initializers/wrap_parameters.rb +0 -14
  536. data/examples/words/config/locales/en.yml +0 -23
  537. data/examples/words/config/puma.rb +0 -47
  538. data/examples/words/config/routes.rb +0 -5
  539. data/examples/words/config/secrets.yml +0 -22
  540. data/examples/words/config/spring.rb +0 -6
  541. data/examples/words/db/migrate/20160921223808_create_words.rb +0 -9
  542. data/examples/words/db/schema.rb +0 -28
  543. data/examples/words/public/404.html +0 -67
  544. data/examples/words/public/422.html +0 -67
  545. data/examples/words/public/500.html +0 -66
  546. data/examples/words/public/apple-touch-icon-precomposed.png +0 -0
  547. data/examples/words/public/apple-touch-icon.png +0 -0
  548. data/examples/words/public/favicon.ico +0 -0
  549. data/examples/words/public/robots.txt +0 -5
  550. data/examples/words/vendor/assets/javascripts/.keep +0 -0
  551. data/examples/words/vendor/assets/stylesheets/.keep +0 -0
  552. data/reactive_record_test_app/Gemfile +0 -20
  553. data/reactive_record_test_app/Gemfile.lock +0 -269
  554. data/reactive_record_test_app/Rakefile +0 -7
  555. data/reactive_record_test_app/app/assets/javascripts/application.rb +0 -3
  556. data/reactive_record_test_app/app/assets/javascripts/bigdecimal.rb +0 -1
  557. data/reactive_record_test_app/app/assets/javascripts/reactive_record_config.js +0 -2
  558. data/reactive_record_test_app/app/assets/stylesheets/application.css +0 -13
  559. data/reactive_record_test_app/app/controllers/application_controller.rb +0 -8
  560. data/reactive_record_test_app/app/controllers/home_controller.rb +0 -7
  561. data/reactive_record_test_app/app/helpers/application_helper.rb +0 -2
  562. data/reactive_record_test_app/app/models/models.rb.erb +0 -6
  563. data/reactive_record_test_app/app/models/public/address.rb +0 -13
  564. data/reactive_record_test_app/app/models/public/comment.rb +0 -19
  565. data/reactive_record_test_app/app/models/public/todo_item.rb +0 -36
  566. data/reactive_record_test_app/app/models/public/user.rb +0 -78
  567. data/reactive_record_test_app/config.ru +0 -33
  568. data/reactive_record_test_app/config/application.rb +0 -75
  569. data/reactive_record_test_app/config/boot.rb +0 -10
  570. data/reactive_record_test_app/config/database.yml +0 -25
  571. data/reactive_record_test_app/config/environment.rb +0 -5
  572. data/reactive_record_test_app/config/environments/development.rb +0 -43
  573. data/reactive_record_test_app/config/initializers/backtrace_silencers.rb +0 -7
  574. data/reactive_record_test_app/config/initializers/hyper_mesh_legacy_behavior.rb +0 -5
  575. data/reactive_record_test_app/config/initializers/inflections.rb +0 -15
  576. data/reactive_record_test_app/config/initializers/mime_types.rb +0 -5
  577. data/reactive_record_test_app/config/initializers/secret_token.rb +0 -7
  578. data/reactive_record_test_app/config/initializers/session_store.rb +0 -8
  579. data/reactive_record_test_app/config/initializers/wrap_parameters.rb +0 -14
  580. data/reactive_record_test_app/config/locales/en.yml +0 -5
  581. data/reactive_record_test_app/config/routes.rb +0 -6
  582. data/reactive_record_test_app/db/migrate/20150617002932_create_todo_items.rb +0 -11
  583. data/reactive_record_test_app/db/migrate/20150617134028_create_users.rb +0 -14
  584. data/reactive_record_test_app/db/migrate/20150729195556_add_address_to_user.rb +0 -20
  585. data/reactive_record_test_app/db/migrate/20150826142045_create_comments.rb +0 -10
  586. data/reactive_record_test_app/db/migrate/20150828172008_add_single_comment_to_todo_item.rb +0 -5
  587. data/reactive_record_test_app/db/migrate/20150908184118_add_address_id_to_user.rb +0 -5
  588. data/reactive_record_test_app/db/migrate/20150917220236_add_second_address_to_user.rb +0 -10
  589. data/reactive_record_test_app/db/migrate/20151009000111_add_test_data_attributes_to_user.rb +0 -6
  590. data/reactive_record_test_app/db/migrate/20160129182544_add_test_enum_to_user.rb +0 -5
  591. data/reactive_record_test_app/db/schema.rb +0 -63
  592. data/reactive_record_test_app/db/seeds.rb +0 -66
  593. data/reactive_record_test_app/public/404.html +0 -26
  594. data/reactive_record_test_app/public/422.html +0 -26
  595. data/reactive_record_test_app/public/500.html +0 -25
  596. data/reactive_record_test_app/public/favicon.ico +0 -0
  597. data/reactive_record_test_app/script/rails +0 -6
  598. data/reactive_record_test_app/spec-opal/active-record/aggregations_spec.rb +0 -41
  599. data/reactive_record_test_app/spec-opal/active-record/associations_spec.rb +0 -75
  600. data/reactive_record_test_app/spec-opal/active-record/base_spec.rb +0 -126
  601. data/reactive_record_test_app/spec-opal/active-record/dummy_value_spec.rb +0 -27
  602. data/reactive_record_test_app/spec-opal/active-record/edge_cases_spec.rb +0 -116
  603. data/reactive_record_test_app/spec-opal/active-record/enum_spec.rb +0 -43
  604. data/reactive_record_test_app/spec-opal/active-record/instance_methods_spec.rb +0 -53
  605. data/reactive_record_test_app/spec-opal/active-record/non_ar_aggregations_spec.rb +0 -74
  606. data/reactive_record_test_app/spec-opal/active-record/reactive_record_load_spec.rb +0 -23
  607. data/reactive_record_test_app/spec-opal/active-record/rendering_spec.rb +0 -230
  608. data/reactive_record_test_app/spec-opal/active-record/save_spec.rb +0 -124
  609. data/reactive_record_test_app/spec-opal/active-record/scope_spec.rb +0 -85
  610. data/reactive_record_test_app/spec-opal/active-record/update_aggregations_spec.rb +0 -76
  611. data/reactive_record_test_app/spec-opal/active-record/update_attributes_spec.rb +0 -186
  612. data/reactive_record_test_app/spec-opal/active-record/virtual_methods_spec.rb +0 -71
  613. data/reactive_record_test_app/spec-opal/index.html.erb +0 -11
  614. data/reactive_record_test_app/spec-opal/spec_helper.js.rb +0 -268
  615. data/reactive_record_test_app/spec-opal/test_spec.rb +0 -7
  616. data/reactive_record_test_app/spec-opal/vendor/es5-shim.min.js +0 -6
  617. data/reactive_record_test_app/spec_dont_run/README.md +0 -33
  618. data/reactive_record_test_app/spec_dont_run/active_record_broken/permissions_spec.rb +0 -170
  619. data/reactive_record_test_app/spec_dont_run/active_record_broken/prerendering_spec.rb +0 -50
  620. data/reactive_record_test_app/spec_dont_run/moved_to_main_spec_dir/zzzmany_to_many_spec_moved_to_main_suite.rb +0 -30
  621. data/reactive_record_test_app/spec_dont_run/moved_to_main_spec_dir/zzzrevert_record_spec_moved.rb +0 -78
  622. data/reactive_record_test_app/spec_dont_run/moved_to_main_spec_dir/zzzupdate_associations_spec_moved.rb +0 -142
  623. data/reactive_record_test_app/spec_dont_run/moved_to_main_spec_dir/zzzupdate_scopes_movedspec.rb +0 -48
  624. data/spec/batch1/aaa-unit_tests/connection_movedspec.rb +0 -144
  625. data/spec/batch1/aaa-unit_tests/dummy_value_spec.rb +0 -26
  626. data/spec/batch1/column_types/column_type_spec.rb +0 -318
  627. data/spec/batch1/crud_access_regulation/broadcast_controls_access_spec.rb +0 -99
  628. data/spec/batch1/crud_access_regulation/model_policies_spec.rb +0 -133
  629. data/spec/batch1/misc/access_like_hash_spec.rb +0 -43
  630. data/spec/batch1/misc/while_loading_spec.rb +0 -196
  631. data/spec/batch1/policies/regulate_all_broadcasts_spec.rb +0 -315
  632. data/spec/batch1/policies/regulate_broadcast_spec.rb +0 -370
  633. data/spec/batch2/authorization_spec.rb +0 -112
  634. data/spec/batch2/default_scope_spec.rb +0 -121
  635. data/spec/batch2/has_many_through_spec.rb +0 -169
  636. data/spec/batch2/relationships_spec.rb +0 -263
  637. data/spec/batch3/auto_load_itself_spec.rb +0 -24
  638. data/spec/batch3/edge_cases_spec.rb +0 -31
  639. data/spec/batch3/finder_method_spec.rb +0 -67
  640. data/spec/batch3/many_to_many_spec.rb +0 -50
  641. data/spec/batch3/pry_rescue_xspec.rb +0 -48
  642. data/spec/batch3/readme.txt +0 -0
  643. data/spec/batch3/revert_spec.rb +0 -113
  644. data/spec/batch3/save_while_loading_spec.rb +0 -44
  645. data/spec/batch3/update_associations_spec.rb +0 -189
  646. data/spec/batch3/update_scopes_spec.rb +0 -54
  647. data/spec/batch4/saving_during_commit_spec.rb +0 -64
  648. data/spec/batch4/scope_spec.rb +0 -581
  649. data/spec/batch4/scoped_todos_spec.rb +0 -167
  650. data/spec/batch4/synchromesh_spec.rb +0 -80
  651. data/spec/bin/firebug-2.0.13-fx.xpi +0 -0
  652. data/spec/component_helpers_xspec.rb +0 -49
  653. data/spec/examples/dictionary.rb +0 -239
  654. data/spec/examples/dictionary_with_client_scopes.rb +0 -196
  655. data/spec/examples/random_examples.rb +0 -133
  656. data/spec/factories/child_model.rb +0 -5
  657. data/spec/factories/comment.rb +0 -5
  658. data/spec/factories/test_models.rb +0 -5
  659. data/spec/factories/todo.rb +0 -5
  660. data/spec/factories/user.rb +0 -5
  661. data/spec/play_ground.rb +0 -64
  662. data/spec/reactive_record_factory.rb +0 -62
  663. data/spec/spec_helper.rb +0 -372
  664. data/spec/support/component_helpers.rb +0 -351
  665. data/spec/test_app/Gemfile +0 -66
  666. data/spec/test_app/Gemfile.lock +0 -303
  667. data/spec/test_app/Rakefile +0 -6
  668. data/spec/test_app/app/assets/javascripts/application.js +0 -6
  669. data/spec/test_app/app/assets/stylesheets/application.css +0 -15
  670. data/spec/test_app/app/controllers/application_controller.rb +0 -13
  671. data/spec/test_app/app/controllers/test_controller.rb +0 -5
  672. data/spec/test_app/app/models/_react_public_models.rb +0 -2
  673. data/spec/test_app/app/models/public/address.rb +0 -13
  674. data/spec/test_app/app/models/public/child_model.rb +0 -3
  675. data/spec/test_app/app/models/public/comment.rb +0 -25
  676. data/spec/test_app/app/models/public/test_model.rb +0 -5
  677. data/spec/test_app/app/models/public/todo.rb +0 -6
  678. data/spec/test_app/app/models/public/todo_item.rb +0 -36
  679. data/spec/test_app/app/models/public/user.rb +0 -88
  680. data/spec/test_app/app/policies/auto_loader_test_classa_policy.rb +0 -3
  681. data/spec/test_app/app/policies/auto_loader_test_classb_policy.rb +0 -3
  682. data/spec/test_app/app/policies/auto_loader_test_classc_policy.rb +0 -3
  683. data/spec/test_app/app/policies/auto_loader_test_classd_policy.rb +0 -3
  684. data/spec/test_app/app/views/components.rb +0 -13
  685. data/spec/test_app/app/views/components/show.rb +0 -5
  686. data/spec/test_app/app/views/layouts/application.html.erb +0 -14
  687. data/spec/test_app/bin/bundle +0 -3
  688. data/spec/test_app/bin/rails +0 -4
  689. data/spec/test_app/bin/rake +0 -4
  690. data/spec/test_app/bin/setup +0 -29
  691. data/spec/test_app/config.ru +0 -4
  692. data/spec/test_app/config/application.rb +0 -44
  693. data/spec/test_app/config/boot.rb +0 -6
  694. data/spec/test_app/config/cable.yml +0 -10
  695. data/spec/test_app/config/database.yml +0 -47
  696. data/spec/test_app/config/environment.rb +0 -5
  697. data/spec/test_app/config/environments/development.rb +0 -41
  698. data/spec/test_app/config/environments/production.rb +0 -79
  699. data/spec/test_app/config/environments/test.rb +0 -42
  700. data/spec/test_app/config/initializers/assets.rb +0 -11
  701. data/spec/test_app/config/initializers/backtrace_silencers.rb +0 -7
  702. data/spec/test_app/config/initializers/cookies_serializer.rb +0 -3
  703. data/spec/test_app/config/initializers/filter_parameter_logging.rb +0 -4
  704. data/spec/test_app/config/initializers/inflections.rb +0 -16
  705. data/spec/test_app/config/initializers/mime_types.rb +0 -4
  706. data/spec/test_app/config/initializers/session_store.rb +0 -3
  707. data/spec/test_app/config/initializers/synchromesh.rb +0 -11
  708. data/spec/test_app/config/initializers/wrap_parameters.rb +0 -14
  709. data/spec/test_app/config/locales/en.yml +0 -23
  710. data/spec/test_app/config/routes.rb +0 -61
  711. data/spec/test_app/config/secrets.yml +0 -22
  712. data/spec/test_app/db/development.sqlite3 +0 -0
  713. data/spec/test_app/db/migrate/20160731182106_create_test_models.rb +0 -75
  714. data/spec/test_app/db/schema.rb +0 -88
  715. data/spec/test_app/db/seeds.rb +0 -7
  716. data/spec/test_app/lib/assets/.keep +0 -0
  717. data/spec/test_app/public/404.html +0 -67
  718. data/spec/test_app/public/422.html +0 -67
  719. data/spec/test_app/public/500.html +0 -66
  720. data/spec/test_app/public/favicon.ico +0 -0
  721. data/spec/test_components.rb +0 -18
  722. data/spec/vendor/es5-shim.min.js +0 -6
@@ -1,372 +0,0 @@
1
- # spec/spec_helper.rb
2
- ENV["RAILS_ENV"] ||= 'test'
3
-
4
- require 'opal'
5
-
6
- def opal?
7
- RUBY_ENGINE == 'opal'
8
- end
9
-
10
- def ruby?
11
- !opal?
12
- end
13
-
14
- if RUBY_ENGINE == 'opal'
15
- require 'hyper-react'
16
- require File.expand_path('../support/react/spec_helpers', __FILE__)
17
-
18
- module Opal
19
- module RSpec
20
- module AsyncHelpers
21
- module ClassMethods
22
- def rendering(title, &block)
23
- klass = Class.new do
24
- include React::Component
25
-
26
- def self.block
27
- @block
28
- end
29
-
30
- def self.name
31
- "dummy class"
32
- end
33
-
34
- def render
35
- instance_eval &self.class.block
36
- end
37
-
38
- def self.should_generate(opts={}, &block)
39
- sself = self
40
- @self.async(@title, opts) do
41
- expect_component_to_eventually(sself, &block)
42
- end
43
- end
44
-
45
- def self.should_immediately_generate(opts={}, &block)
46
- sself = self
47
- @self.it(@title, opts) do
48
- element = build_element sself, {}
49
- context = block.arity > 0 ? self : element
50
- expect((element and context.instance_exec(element, &block))).to be(true)
51
- end
52
- end
53
-
54
- end
55
- klass.instance_variable_set("@block", block)
56
- klass.instance_variable_set("@self", self)
57
- klass.instance_variable_set("@title", "it can render #{title}")
58
- klass
59
- end
60
- end
61
- end
62
- end
63
- end
64
-
65
-
66
- RSpec.configure do |config|
67
- config.include React::SpecHelpers
68
- config.filter_run_including :opal => true
69
- end
70
- end
71
-
72
- if RUBY_ENGINE != 'opal'
73
- require 'pry'
74
- require 'opal-browser'
75
- begin
76
- require File.expand_path('../test_app/config/environment', __FILE__)
77
- rescue LoadError
78
- puts 'Could not load test application. Please ensure you have run `bundle exec rake test_app`'
79
- end
80
- require 'rspec/rails'
81
- require 'timecop'
82
- require "rspec/wait"
83
- #require 'pusher-fake/support/base'
84
-
85
- Dir["./spec/support/**/*.rb"].sort.each { |f| require f }
86
-
87
- RSpec.configure do |config|
88
- config.color = true
89
- config.fail_fast = ENV['FAIL_FAST'] || false
90
- config.fixture_path = File.join(File.expand_path(File.dirname(__FILE__)), "fixtures")
91
- config.infer_spec_type_from_file_location!
92
- config.mock_with :rspec
93
- config.raise_errors_for_deprecations!
94
-
95
- # If you're not using ActiveRecord, or you'd prefer not to run each of your
96
- # examples within a transaction, comment the following line or assign false
97
- # instead of true.
98
- config.use_transactional_fixtures = true
99
-
100
- config.after :each do
101
- Rails.cache.clear
102
- end
103
-
104
- config.after(:each) do |example|
105
- unless example.exception
106
- #Object.send(:remove_const, :Application) rescue nil
107
- ObjectSpace.each_object(Class).each do |klass|
108
- if klass < Hyperloop::Regulation
109
- klass.instance_variables.each { |v| klass.instance_variable_set(v, nil) }
110
- end
111
- end
112
- PusherFake::Channel.reset if defined? PusherFake
113
- end
114
- end
115
-
116
- config.filter_run_including focus: true
117
- config.filter_run_excluding opal: true
118
- config.run_all_when_everything_filtered = true
119
- end
120
-
121
- FACTORY_GIRL = false
122
-
123
- #require 'rails_helper'
124
- require 'rspec'
125
- require 'rspec/expectations'
126
- begin
127
- require 'factory_girl_rails'
128
- rescue LoadError
129
- end
130
- require 'shoulda/matchers'
131
- require 'database_cleaner'
132
- require 'capybara/rspec'
133
- require 'capybara/rails'
134
- require 'support/component_helpers'
135
- require 'capybara/poltergeist'
136
- require 'selenium-webdriver'
137
-
138
- module React
139
- module IsomorphicHelpers
140
- def self.load_context(ctx, controller, name = nil)
141
- @context = Context.new("#{controller.object_id}-#{Time.now.to_i}", ctx, controller, name)
142
- end
143
- end
144
- end
145
-
146
- #Capybara.default_max_wait_time = 4.seconds
147
-
148
- Capybara.server = :puma
149
-
150
- # The following is deprecated and replaced by the above... just make sure it works
151
- # before removing
152
- # Capybara.server { |app, port|
153
- # require 'puma'
154
- # Puma::Server.new(app).tap do |s|
155
- # s.add_tcp_listener Capybara.server_host, port
156
- # end.run.join
157
- # }
158
-
159
- module WaitForAjax
160
-
161
- def wait_for_ajax
162
- Timeout.timeout(Capybara.default_max_wait_time) do
163
- begin
164
- sleep 0.25
165
- end until finished_all_ajax_requests?
166
- end
167
- end
168
-
169
- def running?
170
- result = page.evaluate_script("(function(active) {console.log('jquery is active? '+active); return active})(jQuery.active)")
171
- result && !result.zero?
172
- rescue Exception => e
173
- puts "wait_for_ajax failed while testing state of jQuery.active: #{e}"
174
- end
175
-
176
- def finished_all_ajax_requests?
177
- unless running?
178
- sleep 0.25 # this was 1 second, not sure if its necessary to be so long...
179
- !running?
180
- end
181
- rescue Capybara::NotSupportedByDriverError
182
- true
183
- rescue Exception => e
184
- e.message == "jQuery is not defined"
185
- end
186
-
187
- end
188
-
189
- RSpec.configure do |config|
190
- config.include WaitForAjax
191
- end
192
-
193
- RSpec.configure do |config|
194
- # rspec-expectations config goes here. You can use an alternate
195
- # assertion/expectation library such as wrong or the stdlib/minitest
196
- # assertions if you prefer.
197
- config.expect_with :rspec do |expectations|
198
- # Enable only the newer, non-monkey-patching expect syntax.
199
- # For more details, see:
200
- # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
201
- expectations.syntax = [:should, :expect]
202
- end
203
-
204
- # rspec-mocks config goes here. You can use an alternate test double
205
- # library (such as bogus or mocha) by changing the `mock_with` option here.
206
- config.mock_with :rspec do |mocks|
207
- # Enable only the newer, non-monkey-patching expect syntax.
208
- # For more details, see:
209
- # - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
210
- mocks.syntax = :expect
211
-
212
- # Prevents you from mocking or stubbing a method that does not exist on
213
- # a real object. This is generally recommended.
214
- mocks.verify_partial_doubles = true
215
- end
216
-
217
- config.include FactoryGirl::Syntax::Methods if defined? FactoryGirl
218
-
219
- config.use_transactional_fixtures = false
220
-
221
- Capybara.default_max_wait_time = 10.seconds
222
-
223
- config.before(:suite) do
224
- DatabaseCleaner.clean_with(:truncation)
225
- end
226
-
227
- config.before(:each) do
228
- DatabaseCleaner.strategy = :transaction
229
- end
230
-
231
- config.before(:each) do |x|
232
- Hyperloop.class_eval do
233
- def self.on_server?
234
- true
235
- end
236
- end
237
- #puts " RUNNING #{x.full_description}"
238
- end
239
-
240
- config.before(:each, :js => true) do
241
- DatabaseCleaner.strategy = :truncation
242
- end
243
-
244
- config.before(:each, :js => true) do
245
- size_window
246
- end
247
-
248
- config.before(:each) do
249
- DatabaseCleaner.start
250
- end
251
-
252
- config.after(:each) do |example|
253
- unless example.exception
254
- # Clear session data
255
- Capybara.reset_sessions!
256
- # Rollback transaction
257
- DatabaseCleaner.clean
258
- end
259
- end
260
-
261
- config.after(:all, :js => true) do
262
- #size_window(:default)
263
- end
264
-
265
- config.after(:each, :js => true) do
266
- page.instance_variable_set("@hyper_spec_mounted", false)
267
- end
268
-
269
- config.include Capybara::DSL
270
-
271
- Capybara.register_driver :chrome do |app|
272
- #caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"excludeSwitches" => [ "ignore-certificate-errors" ]})
273
- caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args" => [ "--window-size=200,200" ]})
274
- Capybara::Selenium::Driver.new(app, :browser => :chrome, :desired_capabilities => caps)
275
- end
276
-
277
- options = {
278
- js_errors: false,
279
- timeout: 180,
280
- inspector: true,
281
- phantomjs_options: ['--load-images=no', '--ignore-ssl-errors=yes']
282
- }
283
- options.merge!({phantomjs_logger: StringIO.new, logger: StringIO.new,}) unless ENV['SHOW_LOGS']
284
- Capybara.register_driver :poltergeist do |app|
285
- Capybara::Poltergeist::Driver.new(app, options)
286
- end
287
-
288
- class Selenium::WebDriver::Firefox::Profile
289
-
290
- def self.firebug_version
291
- @firebug_version ||= '2.0.13-fx'
292
- end
293
-
294
- def self.firebug_version=(version)
295
- @firebug_version = version
296
- end
297
-
298
- def frame_position
299
- @frame_position ||= 'detached'
300
- end
301
-
302
- def frame_position=(position)
303
- @frame_position = ["left", "right", "top", "detached"].detect do |side|
304
- position && position[0].downcase == side[0]
305
- end || "detached"
306
- end
307
-
308
- def enable_firebug(version = nil)
309
- version ||= Selenium::WebDriver::Firefox::Profile.firebug_version
310
- add_extension(File.expand_path("../bin/firebug-#{version}.xpi", __FILE__))
311
-
312
- # For some reason, Firebug seems to trigger the Firefox plugin check
313
- # (navigating to https://www.mozilla.org/en-US/plugincheck/ at startup).
314
- # This prevents it. See http://code.google.com/p/selenium/issues/detail?id=4619.
315
- self["extensions.blocklist.enabled"] = false
316
-
317
- # Prevent "Welcome!" tab
318
- self["extensions.firebug.showFirstRunPage"] = false
319
-
320
- # Enable for all sites.
321
- self["extensions.firebug.allPagesActivation"] = "on"
322
-
323
- # Enable all features.
324
- ['console', 'net', 'script'].each do |feature|
325
- self["extensions.firebug.#{feature}.enableSites"] = true
326
- end
327
-
328
- # Closed by default, will open detached.
329
- self["extensions.firebug.framePosition"] = frame_position
330
- self["extensions.firebug.previousPlacement"] = 3
331
- self["extensions.firebug.defaultPanelName"] = "console"
332
-
333
- # Disable native "Inspect Element" menu item.
334
- self["devtools.inspector.enabled"] = false
335
- self["extensions.firebug.hideDefaultInspector"] = true
336
- end
337
- end
338
-
339
- Capybara.register_driver :selenium_with_firebug do |app|
340
- profile = Selenium::WebDriver::Firefox::Profile.new
341
- profile.frame_position = ENV['DRIVER'] && ENV['DRIVER'][2]
342
- profile.enable_firebug
343
- Capybara::Selenium::Driver.new(app, :browser => :firefox, :profile => profile)
344
- end
345
-
346
- Capybara.javascript_driver = :poltergeist
347
-
348
- Capybara.register_driver :chrome do |app|
349
- Capybara::Selenium::Driver.new(app, :browser => :chrome)
350
- end
351
-
352
- if ENV['DRIVER'] =~ /^ff/
353
- Capybara.javascript_driver = :selenium_with_firebug
354
- elsif ENV['DRIVER'] == 'chrome'
355
- Capybara.javascript_driver = :chrome
356
- else
357
- Capybara.javascript_driver = :poltergeist
358
- end
359
-
360
- include ComponentTestHelpers
361
-
362
- end
363
-
364
- FactoryGirl.define do
365
-
366
- sequence :seq_number do |n|
367
- " #{n}"
368
- end
369
-
370
- end if defined? FactoryGirl
371
-
372
- end
@@ -1,351 +0,0 @@
1
- # see component_test_helpers_spec.rb for examples
2
-
3
- require 'parser/current'
4
- require 'unparser'
5
- #require 'pry'
6
-
7
- module ComponentTestHelpers
8
-
9
- def self.compile_to_opal(&block)
10
- Opal.compile(block.source.split("\n")[1..-2].join("\n"))
11
- end
12
-
13
-
14
- TOP_LEVEL_COMPONENT_PATCH = lambda { |&block| Opal.compile(block.source.split("\n")[1..-2].join("\n"))}.call do #ComponentTestHelpers.compile_to_opal do
15
- module React
16
- class TopLevelRailsComponent
17
-
18
- class << self
19
- attr_accessor :event_history
20
-
21
- def callback_history_for(proc_name)
22
- event_history[proc_name]
23
- end
24
-
25
- def last_callback_for(proc_name)
26
- event_history[proc_name].last
27
- end
28
-
29
- def clear_callback_history_for(proc_name)
30
- event_history[proc_name] = []
31
- end
32
-
33
- def event_history_for(event_name)
34
- event_history["_on#{event_name.event_camelize}"]
35
- end
36
-
37
- def last_event_for(event_name)
38
- event_history["_on#{event_name.event_camelize}"].last
39
- end
40
-
41
- def clear_event_history_for(event_name)
42
- event_history["_on#{event_name.event_camelize}"] = []
43
- end
44
-
45
- end
46
-
47
- def component
48
- return @component if @component
49
- paths_searched = []
50
- if params.component_name.start_with? "::"
51
- paths_searched << params.component_name.gsub(/^\:\:/,"")
52
- @component = params.component_name.gsub(/^\:\:/,"").split("::").inject(Module) { |scope, next_const| scope.const_get(next_const, false) } rescue nil
53
- return @component if @component && @component.method_defined?(:render)
54
- else
55
- self.class.search_path.each do |path|
56
- # try each path + params.controller + params.component_name
57
- paths_searched << "#{path.name + '::' unless path == Module}#{params.controller}::#{params.component_name}"
58
- @component = "#{params.controller}::#{params.component_name}".split("::").inject(path) { |scope, next_const| scope.const_get(next_const, false) } rescue nil
59
- return @component if @component && @component.method_defined?(:render)
60
- end
61
- self.class.search_path.each do |path|
62
- # then try each path + params.component_name
63
- paths_searched << "#{path.name + '::' unless path == Module}#{params.component_name}"
64
- @component = "#{params.component_name}".split("::").inject(path) { |scope, next_const| scope.const_get(next_const, false) } rescue nil
65
- return @component if @component && @component.method_defined?(:render)
66
- end
67
- end
68
- @component = nil
69
- raise "Could not find component class '#{params.component_name}' for params.controller '#{params.controller}' in any component directory. Tried [#{paths_searched.join(", ")}]"
70
- end
71
-
72
- before_mount do
73
- TopLevelRailsComponent.event_history = Hash.new {|h,k| h[k] = [] }
74
- component.validator.rules.each do |name, rules|
75
- if rules[:type] == Proc
76
- TopLevelRailsComponent.event_history[name] = []
77
- params.render_params[name] = lambda { |*args| TopLevelRailsComponent.event_history[name] << args.collect { |arg| Native(arg).to_n } }
78
- end
79
- end
80
- end
81
-
82
- def render
83
- present component, params.render_params
84
- end
85
- end
86
- end
87
- end
88
-
89
- def build_test_url_for(controller)
90
-
91
- unless controller
92
- Object.const_set("ReactTestController", Class.new(ApplicationController)) unless defined?(::ReactTestController)
93
- controller = ::ReactTestController
94
- end
95
-
96
- route_root = controller.name.gsub(/Controller$/,"").underscore
97
-
98
- unless controller.method_defined? :test
99
- controller.class_eval do
100
- define_method(:test) do
101
- route_root = self.class.name.gsub(/Controller$/,"").underscore
102
- test_params = Rails.cache.read("/#{route_root}/#{params[:id]}")
103
- @component_name = test_params[0]
104
- @component_params = test_params[1]
105
- render_params = test_params[2]
106
- render_on = render_params.delete(:render_on) || :both
107
- mock_time = render_params.delete(:mock_time)
108
- style_sheet = render_params.delete(:style_sheet)
109
- javascript = render_params.delete(:javascript)
110
- code = render_params.delete(:code)
111
- page = "<%= react_component @component_name, @component_params, { prerender: false } %>" # false should be: "#{render_on != :client_only} } %>" but its not working in the gem testing harness
112
- page = "<script type='text/javascript'>\n#{TOP_LEVEL_COMPONENT_PATCH}\n</script>\n#{page}"
113
-
114
- if code
115
- page = "<script type='text/javascript'>\n#{code}\n</script>\n"+page
116
- end
117
-
118
- #TODO figure out how to auto insert this line???? something like:
119
- #page = "<%= javascript_include_tag 'reactrb-router' %>\n#{page}"
120
-
121
- if (render_on != :server_only && !render_params[:layout]) || javascript
122
- #page = "<script src='/assets/application.js?ts=#{Time.now.to_f}'></script>\n"+page
123
- page = "<%= javascript_include_tag '#{javascript || 'application'}' %>\n"+page
124
- end
125
- if mock_time || (defined?(Timecop) && Timecop.top_stack_item)
126
- puts "********** WARNING LOLEX NOT AVAILABLE TIME ON CLIENT WILL NOT MATCH SERVER **********"
127
- # unix_millis = ((mock_time || Time.now).to_f * 1000.0).to_i
128
- # page = "<%= javascript_include_tag 'spec/libs/lolex' %>\n"+
129
- # "<script type='text/javascript'>\n"+
130
- # " window.original_setInterval = setInterval;\n"+
131
- # " window.lolex_clock = lolex.install(#{unix_millis});\n"+
132
- # " window.original_setInterval(function() {window.lolex_clock.tick(10)}, 10);\n"+
133
- # "</script>\n"+page
134
- end
135
- if !render_params[:layout] || style_sheet
136
- page = "<%= stylesheet_link_tag '#{style_sheet || 'application'}' rescue nil %>\n"+page
137
- end
138
- if render_on == :server_only # so that test helper wait_for_ajax works
139
- page = "<script type='text/javascript'>window.jQuery = {'active': 0}</script>\n#{page}"
140
- else
141
- page = "<%= javascript_include_tag 'jquery' %>\n<%= javascript_include_tag 'jquery_ujs' %>\n#{page}"
142
- end
143
- page = "<script type='text/javascript'>go = function() {window.hyper_spec_waiting_for_go = false}</script>\n#{page}"
144
- title = view_context.escape_javascript(ComponentTestHelpers.current_example.description)
145
- title = "#{title}...continued." if ComponentTestHelpers.description_displayed
146
- page = "<script type='text/javascript'>console.log(console.log('%c#{title}','color:green; font-weight:bold; font-size: 200%'))</script>\n#{page}"
147
- ComponentTestHelpers.description_displayed = true
148
- render_params[:inline] = page
149
- render render_params
150
- end
151
- end
152
-
153
- # test_routes = Proc.new do
154
- # get "/#{route_root}/:id", to: "#{route_root}#test"
155
- # end
156
- # Rails.application.routes.eval_block(test_routes)
157
-
158
- begin
159
- routes = Rails.application.routes
160
- routes.disable_clear_and_finalize = true
161
- routes.clear!
162
- routes.draw do
163
- get "/#{route_root}/:id", to: "#{route_root}#test"
164
- end
165
- Rails.application.routes_reloader.paths.each{ |path| load(path) }
166
- routes.finalize!
167
- ActiveSupport.on_load(:action_controller) { routes.finalize! }
168
- ensure
169
- routes.disable_clear_and_finalize = false
170
- end
171
- end
172
-
173
- "/#{route_root}/#{@test_id = (@test_id || 0) + 1}"
174
-
175
- end
176
-
177
- def isomorphic(&block)
178
- yield
179
- on_client(&block)
180
- end
181
-
182
- def evaluate_ruby(str="", opts={}, &block)
183
- insure_mount
184
- str = "#{str}\n#{Unparser.unparse Parser::CurrentRuby.parse(block.source).children.last}" if block
185
- js = Opal.compile(str).gsub("\n","").gsub("(Opal);","(Opal)")
186
- JSON.parse(evaluate_script("[#{js}].$to_json()"), opts).first
187
- end
188
-
189
- def expect_evaluate_ruby(str = '', opts = {}, &block)
190
- insure_mount
191
- expect(evaluate_ruby(add_opal_block(str, block), opts))
192
- end
193
-
194
- def add_opal_block(str, block)
195
- # big assumption here is that we are going to follow this with a .to
196
- # hence .children.first followed by .children.last
197
- # probably should do some kind of "search" to make this work nicely
198
- return str unless block
199
- "#{str}\n"\
200
- "#{Unparser.unparse Parser::CurrentRuby.parse(block.source).children.first.children.last}"
201
- end
202
-
203
- def expect_promise(str = '', opts = {}, &block)
204
- insure_mount
205
- str = add_opal_block(str, block)
206
- str = "#{str}.then { |args| args = [args]; `window.hyper_spec_promise_result = args` }"
207
- js = Opal.compile(str).gsub("\n","").gsub("(Opal);","(Opal)")
208
- page.evaluate_script("window.hyper_spec_promise_result = false")
209
- page.execute_script(js)
210
- Timeout.timeout(Capybara.default_max_wait_time) do
211
- loop do
212
- sleep 0.25
213
- break if page.evaluate_script("!!window.hyper_spec_promise_result")
214
- end
215
- end
216
- expect(JSON.parse(page.evaluate_script("window.hyper_spec_promise_result.$to_json()"), opts).first)
217
- end
218
-
219
- def ppr(str)
220
- js = Opal.compile(str).gsub("\n","").gsub("(Opal);","(Opal)")
221
- execute_script("console.log(#{js})")
222
- end
223
-
224
-
225
- def on_client(&block)
226
- @client_code = "#{@client_code}#{Unparser.unparse Parser::CurrentRuby.parse(block.source).children.last}\n"
227
- end
228
-
229
- def debugger
230
- `debugger`
231
- nil
232
- end
233
-
234
- class << self
235
- attr_accessor :current_example
236
- attr_accessor :description_displayed
237
- def display_example_description
238
- "<script type='text/javascript'>console.log(console.log('%c#{current_example.description}','color:green; font-weight:bold; font-size: 200%'))</script>"
239
- end
240
- end
241
-
242
- def insure_mount
243
- # rescue in case page is not defined...
244
- mount unless page.instance_variable_get("@hyper_spec_mounted") rescue nil
245
- end
246
-
247
- def mount(component_name = nil, params = nil, opts = {}, &block)
248
- unless params
249
- params = opts
250
- opts = {}
251
- end
252
- test_url = build_test_url_for(opts.delete(:controller))
253
- if block || @client_code || component_name.nil?
254
- block_with_helpers = <<-code
255
- module ComponentHelpers
256
- def self.js_eval(s)
257
- `eval(s)`
258
- end
259
- def self.add_class(class_name, styles={})
260
- style = styles.collect { |attr, value| "\#{attr.dasherize}:\#{value}"}.join("; ")
261
- s = "<style type='text/css'> .\#{class_name}{ \#{style} } </style>"
262
- `$(\#{s}).appendTo("head");`
263
- end
264
- end
265
- class React::Component::HyperTestDummy < React::Component::Base
266
- def render; end
267
- end
268
- #{@client_code}
269
- #{Unparser.unparse(Parser::CurrentRuby.parse(block.source).children.last) if block}
270
- code
271
- opts[:code] = Opal.compile(block_with_helpers)
272
- end
273
- component_name ||= 'React::Component::HyperTestDummy'
274
- Rails.cache.write(test_url, [component_name, params, opts])
275
- visit test_url
276
- wait_for_ajax unless opts[:no_wait]
277
- page.instance_variable_set("@hyper_spec_mounted", true)
278
- end
279
-
280
- [:callback_history_for, :last_callback_for, :clear_callback_history_for, :event_history_for, :last_event_for, :clear_event_history_for].each do |method|
281
- define_method(method) { |event_name| evaluate_script("Opal.React.TopLevelRailsComponent.$#{method}('#{event_name}')") }
282
- end
283
-
284
- def run_on_client(&block)
285
- script = Opal.compile(Unparser.unparse Parser::CurrentRuby.parse(block.source).children.last)
286
- execute_script(script)
287
- end
288
-
289
- def open_in_chrome
290
- if false && ['linux', 'freebsd'].include?(`uname`.downcase)
291
- `google-chrome http://#{page.server.host}:#{page.server.port}#{page.current_path}`
292
- else
293
- `open http://#{page.server.host}:#{page.server.port}#{page.current_path}`
294
- end
295
- while true
296
- sleep 1.hour
297
- end
298
- end
299
-
300
- def pause(message = nil)
301
- if message
302
- puts message
303
- page.evaluate_ruby "puts #{message.inspect}.to_s + ' (type go() to continue)'"
304
- end
305
- page.evaluate_script("window.hyper_spec_waiting_for_go = true")
306
- loop do
307
- sleep 0.25
308
- break unless page.evaluate_script("window.hyper_spec_waiting_for_go")
309
- end
310
- end
311
-
312
- def size_window(width=nil, height=nil)
313
- width, height = width if width.is_a? Array
314
- portrait = true if height == :portrait
315
- case width
316
- when :small
317
- width, height = [480, 320]
318
- when :mobile
319
- width, height = [640, 480]
320
- when :tablet
321
- width, height = [960, 640]
322
- when :large
323
- width, height = [1920, 6000]
324
- when :default, nil
325
- width, height = [1024, 768]
326
- end
327
- if portrait
328
- width, height = [height, width]
329
- end
330
- if page.driver.browser.respond_to?(:manage)
331
- page.driver.browser.manage.window.resize_to(width, height)
332
- elsif page.driver.respond_to?(:resize)
333
- page.driver.resize(width, height)
334
- end
335
- end
336
-
337
- end
338
-
339
- RSpec.configure do |config|
340
- config.before(:each) do |example|
341
- ComponentTestHelpers.current_example = example
342
- ComponentTestHelpers.description_displayed = false
343
- end
344
- config.before(:all) do
345
- ActiveRecord::Base.class_eval do
346
- def attributes_on_client(page)
347
- page.evaluate_ruby("#{self.class.name}.find(#{id}).attributes", symbolize_names: true)
348
- end
349
- end
350
- end
351
- end