hyper-mesh 0.6.0 → 1.0.0.lap22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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