hyper-mesh 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (469) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +27 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +11 -0
  5. data/.travis.yml +4 -0
  6. data/CODE_OF_CONDUCT.md +13 -0
  7. data/Gemfile +5 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +396 -0
  10. data/Rakefile +6 -0
  11. data/app/controllers/reactive_record/application_controller.rb +4 -0
  12. data/app/controllers/reactive_record/reactive_record_controller.rb +49 -0
  13. data/bin/console +14 -0
  14. data/bin/setup +7 -0
  15. data/codeship.database.yml +18 -0
  16. data/config/routes.rb +7 -0
  17. data/docs/action_cable_quickstart.md +151 -0
  18. data/docs/authorization-policies.md +449 -0
  19. data/docs/client_side_scoping.md +103 -0
  20. data/docs/pusher_quickstart.md +0 -0
  21. data/docs/simple_poller_quickstart.md +121 -0
  22. data/docs/todo-example.md +116 -0
  23. data/docs/words-example.md +65 -0
  24. data/examples/action-cable/.gitignore +21 -0
  25. data/examples/action-cable/Gemfile +58 -0
  26. data/examples/action-cable/Gemfile.lock +247 -0
  27. data/examples/action-cable/README.md +24 -0
  28. data/examples/action-cable/Rakefile +6 -0
  29. data/examples/action-cable/app/assets/config/manifest.js +3 -0
  30. data/examples/action-cable/app/assets/javascripts/application.js +18 -0
  31. data/examples/action-cable/app/assets/stylesheets/application.css +15 -0
  32. data/examples/action-cable/app/controllers/application_controller.rb +3 -0
  33. data/examples/action-cable/app/controllers/test_controller.rb +6 -0
  34. data/examples/action-cable/app/models/models.rb +2 -0
  35. data/examples/action-cable/app/models/public/application_record.rb +3 -0
  36. data/examples/action-cable/app/models/public/word.rb +2 -0
  37. data/examples/action-cable/app/policies/application_policy.rb +6 -0
  38. data/examples/action-cable/app/views/components.rb +17 -0
  39. data/examples/action-cable/app/views/components/app.rb +18 -0
  40. data/examples/action-cable/app/views/layouts/application.html.erb +14 -0
  41. data/examples/action-cable/app/views/layouts/mailer.html.erb +13 -0
  42. data/examples/action-cable/app/views/layouts/mailer.text.erb +1 -0
  43. data/examples/action-cable/bin/bundle +3 -0
  44. data/examples/action-cable/bin/rails +9 -0
  45. data/examples/action-cable/bin/rake +9 -0
  46. data/examples/action-cable/bin/setup +34 -0
  47. data/examples/action-cable/bin/spring +15 -0
  48. data/examples/action-cable/bin/update +29 -0
  49. data/examples/action-cable/config.ru +5 -0
  50. data/examples/action-cable/config/application.rb +30 -0
  51. data/examples/action-cable/config/boot.rb +3 -0
  52. data/examples/action-cable/config/cable.yml +9 -0
  53. data/examples/action-cable/config/database.yml +25 -0
  54. data/examples/action-cable/config/environment.rb +5 -0
  55. data/examples/action-cable/config/environments/development.rb +45 -0
  56. data/examples/action-cable/config/environments/production.rb +86 -0
  57. data/examples/action-cable/config/environments/test.rb +42 -0
  58. data/examples/action-cable/config/initializers/application_controller_renderer.rb +6 -0
  59. data/examples/action-cable/config/initializers/assets.rb +11 -0
  60. data/examples/action-cable/config/initializers/backtrace_silencers.rb +7 -0
  61. data/examples/action-cable/config/initializers/cookies_serializer.rb +5 -0
  62. data/examples/action-cable/config/initializers/filter_parameter_logging.rb +4 -0
  63. data/examples/action-cable/config/initializers/inflections.rb +16 -0
  64. data/examples/action-cable/config/initializers/mime_types.rb +4 -0
  65. data/examples/action-cable/config/initializers/new_framework_defaults.rb +24 -0
  66. data/examples/action-cable/config/initializers/session_store.rb +3 -0
  67. data/examples/action-cable/config/initializers/synchromesh.rb +5 -0
  68. data/examples/action-cable/config/initializers/wrap_parameters.rb +14 -0
  69. data/examples/action-cable/config/locales/en.yml +23 -0
  70. data/examples/action-cable/config/puma.rb +47 -0
  71. data/examples/action-cable/config/routes.rb +5 -0
  72. data/examples/action-cable/config/secrets.yml +22 -0
  73. data/examples/action-cable/config/spring.rb +6 -0
  74. data/examples/action-cable/db/migrate/20160921223808_create_words.rb +9 -0
  75. data/examples/action-cable/db/schema.rb +21 -0
  76. data/examples/action-cable/log/.keep +0 -0
  77. data/examples/action-cable/public/404.html +67 -0
  78. data/examples/action-cable/public/422.html +67 -0
  79. data/examples/action-cable/public/500.html +66 -0
  80. data/examples/action-cable/public/apple-touch-icon-precomposed.png +0 -0
  81. data/examples/action-cable/public/apple-touch-icon.png +0 -0
  82. data/examples/action-cable/public/favicon.ico +0 -0
  83. data/examples/action-cable/public/robots.txt +5 -0
  84. data/examples/action-cable/rails_cache_dir2/C91/480/synchromesh_active_connections +0 -0
  85. data/examples/action-cable/tmp/.keep +0 -0
  86. data/examples/action-cable/vendor/assets/javascripts/.keep +0 -0
  87. data/examples/action-cable/vendor/assets/stylesheets/.keep +0 -0
  88. data/examples/simple-poller/.gitignore +21 -0
  89. data/examples/simple-poller/Gemfile +64 -0
  90. data/examples/simple-poller/Gemfile.lock +272 -0
  91. data/examples/simple-poller/README.md +24 -0
  92. data/examples/simple-poller/Rakefile +6 -0
  93. data/examples/simple-poller/app/assets/config/manifest.js +3 -0
  94. data/examples/simple-poller/app/assets/images/.keep +0 -0
  95. data/examples/simple-poller/app/assets/javascripts/application.js +20 -0
  96. data/examples/simple-poller/app/assets/javascripts/channels/.keep +0 -0
  97. data/examples/simple-poller/app/assets/stylesheets/application.css +15 -0
  98. data/examples/simple-poller/app/channels/application_cable/channel.rb +4 -0
  99. data/examples/simple-poller/app/channels/application_cable/connection.rb +4 -0
  100. data/examples/simple-poller/app/controllers/application_controller.rb +3 -0
  101. data/examples/simple-poller/app/controllers/concerns/.keep +0 -0
  102. data/examples/simple-poller/app/controllers/test_controller.rb +6 -0
  103. data/examples/simple-poller/app/helpers/application_helper.rb +2 -0
  104. data/examples/simple-poller/app/jobs/application_job.rb +2 -0
  105. data/examples/simple-poller/app/mailers/application_mailer.rb +4 -0
  106. data/examples/simple-poller/app/models/concerns/.keep +0 -0
  107. data/examples/simple-poller/app/models/models.rb +2 -0
  108. data/examples/simple-poller/app/models/public/.keep +0 -0
  109. data/examples/simple-poller/app/models/public/application_record.rb +3 -0
  110. data/examples/simple-poller/app/models/public/word.rb +2 -0
  111. data/examples/simple-poller/app/policies/application_policy.rb +5 -0
  112. data/examples/simple-poller/app/views/components.rb +18 -0
  113. data/examples/simple-poller/app/views/components/.keep +0 -0
  114. data/examples/simple-poller/app/views/components/app.rb +40 -0
  115. data/examples/simple-poller/app/views/layouts/application.html.erb +14 -0
  116. data/examples/simple-poller/app/views/layouts/mailer.html.erb +13 -0
  117. data/examples/simple-poller/app/views/layouts/mailer.text.erb +1 -0
  118. data/examples/simple-poller/bin/bundle +3 -0
  119. data/examples/simple-poller/bin/rails +9 -0
  120. data/examples/simple-poller/bin/rake +9 -0
  121. data/examples/simple-poller/bin/setup +34 -0
  122. data/examples/simple-poller/bin/spring +16 -0
  123. data/examples/simple-poller/bin/update +29 -0
  124. data/examples/simple-poller/config.ru +5 -0
  125. data/examples/simple-poller/config/application.rb +20 -0
  126. data/examples/simple-poller/config/boot.rb +3 -0
  127. data/examples/simple-poller/config/cable.yml +9 -0
  128. data/examples/simple-poller/config/database.yml +25 -0
  129. data/examples/simple-poller/config/environment.rb +5 -0
  130. data/examples/simple-poller/config/environments/development.rb +44 -0
  131. data/examples/simple-poller/config/environments/production.rb +86 -0
  132. data/examples/simple-poller/config/environments/test.rb +42 -0
  133. data/examples/simple-poller/config/initializers/application_controller_renderer.rb +6 -0
  134. data/examples/simple-poller/config/initializers/assets.rb +11 -0
  135. data/examples/simple-poller/config/initializers/backtrace_silencers.rb +7 -0
  136. data/examples/simple-poller/config/initializers/cookies_serializer.rb +5 -0
  137. data/examples/simple-poller/config/initializers/filter_parameter_logging.rb +4 -0
  138. data/examples/simple-poller/config/initializers/inflections.rb +16 -0
  139. data/examples/simple-poller/config/initializers/mime_types.rb +4 -0
  140. data/examples/simple-poller/config/initializers/new_framework_defaults.rb +24 -0
  141. data/examples/simple-poller/config/initializers/session_store.rb +3 -0
  142. data/examples/simple-poller/config/initializers/synchromesh.rb +15 -0
  143. data/examples/simple-poller/config/initializers/wrap_parameters.rb +14 -0
  144. data/examples/simple-poller/config/locales/en.yml +23 -0
  145. data/examples/simple-poller/config/puma.rb +47 -0
  146. data/examples/simple-poller/config/routes.rb +5 -0
  147. data/examples/simple-poller/config/secrets.yml +22 -0
  148. data/examples/simple-poller/config/spring.rb +6 -0
  149. data/examples/simple-poller/db/migrate/20161013220135_create_words.rb +9 -0
  150. data/examples/simple-poller/db/schema.rb +21 -0
  151. data/examples/simple-poller/db/seeds.rb +7 -0
  152. data/examples/simple-poller/lib/assets/.keep +0 -0
  153. data/examples/simple-poller/lib/tasks/.keep +0 -0
  154. data/examples/simple-poller/log/.keep +0 -0
  155. data/examples/simple-poller/public/404.html +67 -0
  156. data/examples/simple-poller/public/422.html +67 -0
  157. data/examples/simple-poller/public/500.html +66 -0
  158. data/examples/simple-poller/public/apple-touch-icon-precomposed.png +0 -0
  159. data/examples/simple-poller/public/apple-touch-icon.png +0 -0
  160. data/examples/simple-poller/public/favicon.ico +0 -0
  161. data/examples/simple-poller/public/robots.txt +5 -0
  162. data/examples/simple-poller/test/controllers/.keep +0 -0
  163. data/examples/simple-poller/test/fixtures/.keep +0 -0
  164. data/examples/simple-poller/test/fixtures/files/.keep +0 -0
  165. data/examples/simple-poller/test/fixtures/words.yml +7 -0
  166. data/examples/simple-poller/test/helpers/.keep +0 -0
  167. data/examples/simple-poller/test/integration/.keep +0 -0
  168. data/examples/simple-poller/test/mailers/.keep +0 -0
  169. data/examples/simple-poller/test/models/.keep +0 -0
  170. data/examples/simple-poller/test/models/word_test.rb +7 -0
  171. data/examples/simple-poller/test/test_helper.rb +10 -0
  172. data/examples/simple-poller/tmp/.keep +0 -0
  173. data/examples/simple-poller/vendor/assets/javascripts/.keep +0 -0
  174. data/examples/simple-poller/vendor/assets/stylesheets/.keep +0 -0
  175. data/examples/words/.gitignore +21 -0
  176. data/examples/words/Gemfile +58 -0
  177. data/examples/words/Gemfile.lock +247 -0
  178. data/examples/words/README.md +24 -0
  179. data/examples/words/Rakefile +6 -0
  180. data/examples/words/app/assets/config/manifest.js +3 -0
  181. data/examples/words/app/assets/javascripts/application.js +18 -0
  182. data/examples/words/app/assets/stylesheets/application.css +15 -0
  183. data/examples/words/app/controllers/application_controller.rb +3 -0
  184. data/examples/words/app/controllers/test_controller.rb +6 -0
  185. data/examples/words/app/models/models.rb +2 -0
  186. data/examples/words/app/models/public/application_record.rb +3 -0
  187. data/examples/words/app/models/public/word.rb +10 -0
  188. data/examples/words/app/policies/application_policy.rb +6 -0
  189. data/examples/words/app/views/components.rb +16 -0
  190. data/examples/words/app/views/components/app.rb +31 -0
  191. data/examples/words/app/views/layouts/application.html.erb +14 -0
  192. data/examples/words/app/views/layouts/mailer.html.erb +13 -0
  193. data/examples/words/app/views/layouts/mailer.text.erb +1 -0
  194. data/examples/words/bin/bundle +3 -0
  195. data/examples/words/bin/rails +9 -0
  196. data/examples/words/bin/rake +9 -0
  197. data/examples/words/bin/setup +34 -0
  198. data/examples/words/bin/spring +15 -0
  199. data/examples/words/bin/update +29 -0
  200. data/examples/words/config.ru +5 -0
  201. data/examples/words/config/application.rb +30 -0
  202. data/examples/words/config/boot.rb +3 -0
  203. data/examples/words/config/cable.yml +9 -0
  204. data/examples/words/config/database.yml +25 -0
  205. data/examples/words/config/environment.rb +5 -0
  206. data/examples/words/config/environments/development.rb +45 -0
  207. data/examples/words/config/environments/production.rb +86 -0
  208. data/examples/words/config/environments/test.rb +42 -0
  209. data/examples/words/config/initializers/application_controller_renderer.rb +6 -0
  210. data/examples/words/config/initializers/assets.rb +11 -0
  211. data/examples/words/config/initializers/backtrace_silencers.rb +7 -0
  212. data/examples/words/config/initializers/cookies_serializer.rb +5 -0
  213. data/examples/words/config/initializers/filter_parameter_logging.rb +4 -0
  214. data/examples/words/config/initializers/inflections.rb +16 -0
  215. data/examples/words/config/initializers/mime_types.rb +4 -0
  216. data/examples/words/config/initializers/new_framework_defaults.rb +24 -0
  217. data/examples/words/config/initializers/session_store.rb +3 -0
  218. data/examples/words/config/initializers/synchromesh.rb +5 -0
  219. data/examples/words/config/initializers/wrap_parameters.rb +14 -0
  220. data/examples/words/config/locales/en.yml +23 -0
  221. data/examples/words/config/puma.rb +47 -0
  222. data/examples/words/config/routes.rb +5 -0
  223. data/examples/words/config/secrets.yml +22 -0
  224. data/examples/words/config/spring.rb +6 -0
  225. data/examples/words/db/migrate/20160921223808_create_words.rb +9 -0
  226. data/examples/words/db/schema.rb +28 -0
  227. data/examples/words/log/.keep +0 -0
  228. data/examples/words/public/404.html +67 -0
  229. data/examples/words/public/422.html +67 -0
  230. data/examples/words/public/500.html +66 -0
  231. data/examples/words/public/apple-touch-icon-precomposed.png +0 -0
  232. data/examples/words/public/apple-touch-icon.png +0 -0
  233. data/examples/words/public/favicon.ico +0 -0
  234. data/examples/words/public/robots.txt +5 -0
  235. data/examples/words/tmp/.keep +0 -0
  236. data/examples/words/vendor/assets/javascripts/.keep +0 -0
  237. data/examples/words/vendor/assets/stylesheets/.keep +0 -0
  238. data/hyper-mesh.gemspec +82 -0
  239. data/lib/active_record_base.rb +152 -0
  240. data/lib/enumerable/pluck.rb +6 -0
  241. data/lib/hyper-mesh.rb +62 -0
  242. data/lib/hypermesh/version.rb +3 -0
  243. data/lib/opal/equality_patches.rb +15 -0
  244. data/lib/opal/parse_patch.rb +14 -0
  245. data/lib/opal/set_patches.rb +8 -0
  246. data/lib/reactive_record/active_record/aggregations.rb +69 -0
  247. data/lib/reactive_record/active_record/associations.rb +111 -0
  248. data/lib/reactive_record/active_record/base.rb +9 -0
  249. data/lib/reactive_record/active_record/class_methods.rb +177 -0
  250. data/lib/reactive_record/active_record/error.rb +26 -0
  251. data/lib/reactive_record/active_record/instance_methods.rb +129 -0
  252. data/lib/reactive_record/active_record/public_columns_hash.rb +19 -0
  253. data/lib/reactive_record/active_record/reactive_record/base.rb +520 -0
  254. data/lib/reactive_record/active_record/reactive_record/collection.rb +517 -0
  255. data/lib/reactive_record/active_record/reactive_record/column_types.rb +67 -0
  256. data/lib/reactive_record/active_record/reactive_record/dummy_value.rb +218 -0
  257. data/lib/reactive_record/active_record/reactive_record/isomorphic_base.rb +532 -0
  258. data/lib/reactive_record/active_record/reactive_record/reactive_set_relationship_helpers.rb +189 -0
  259. data/lib/reactive_record/active_record/reactive_record/scoped_collection.rb +62 -0
  260. data/lib/reactive_record/active_record/reactive_record/unscoped_collection.rb +16 -0
  261. data/lib/reactive_record/active_record/reactive_record/while_loading.rb +299 -0
  262. data/lib/reactive_record/engine.rb +13 -0
  263. data/lib/reactive_record/interval.rb +190 -0
  264. data/lib/reactive_record/permissions.rb +102 -0
  265. data/lib/reactive_record/pry.rb +13 -0
  266. data/lib/reactive_record/reactive_scope.rb +18 -0
  267. data/lib/reactive_record/scope_description.rb +108 -0
  268. data/lib/reactive_record/serializers.rb +7 -0
  269. data/lib/reactive_record/server_data_cache.rb +347 -0
  270. data/lib/reactive_record/version.rb +3 -0
  271. data/lib/sources/hyper-mesh/pusher.js +98 -0
  272. data/lib/synchromesh/action_cable.rb +39 -0
  273. data/lib/synchromesh/client_drivers.rb +357 -0
  274. data/lib/synchromesh/configuration.rb +40 -0
  275. data/lib/synchromesh/connection.rb +144 -0
  276. data/lib/synchromesh/policy.rb +504 -0
  277. data/lib/synchromesh/reactive_record/permission_patches.rb +43 -0
  278. data/lib/synchromesh/synchromesh.rb +155 -0
  279. data/lib/synchromesh/synchromesh_controller.rb +154 -0
  280. data/logo.jpg +0 -0
  281. data/path_release_steps.md +0 -0
  282. data/reactive_record_test_app/Gemfile +15 -0
  283. data/reactive_record_test_app/Gemfile.lock +209 -0
  284. data/reactive_record_test_app/README.rdoc +261 -0
  285. data/reactive_record_test_app/Rakefile +7 -0
  286. data/reactive_record_test_app/app/assets/javascripts/application.rb +5 -0
  287. data/reactive_record_test_app/app/assets/javascripts/components/another_component.rb +24 -0
  288. data/reactive_record_test_app/app/assets/javascripts/components/empty_component.rb +6 -0
  289. data/reactive_record_test_app/app/assets/javascripts/components/todo_item_component.js.rb +16 -0
  290. data/reactive_record_test_app/app/assets/javascripts/components/todos_component.js.rb +42 -0
  291. data/reactive_record_test_app/app/assets/javascripts/components/todos_main_component.rb +49 -0
  292. data/reactive_record_test_app/app/assets/javascripts/react_js_test_only.js +21618 -0
  293. data/reactive_record_test_app/app/assets/javascripts/reactive_record_config.js +2 -0
  294. data/reactive_record_test_app/app/assets/javascripts/spec/reactive_record_xspec.js.rb +42 -0
  295. data/reactive_record_test_app/app/assets/stylesheets/application.css +13 -0
  296. data/reactive_record_test_app/app/controllers/application_controller.rb +8 -0
  297. data/reactive_record_test_app/app/controllers/home_controller.rb +7 -0
  298. data/reactive_record_test_app/app/controllers/test_controller.rb +7 -0
  299. data/reactive_record_test_app/app/helpers/application_helper.rb +2 -0
  300. data/reactive_record_test_app/app/mailers/.gitkeep +0 -0
  301. data/reactive_record_test_app/app/models/.gitkeep +0 -0
  302. data/reactive_record_test_app/app/policies/application_policy.rb +5 -0
  303. data/reactive_record_test_app/app/views/components.rb +4 -0
  304. data/reactive_record_test_app/app/views/components/test.rb +18 -0
  305. data/reactive_record_test_app/app/views/home/index.html.erb +1 -0
  306. data/reactive_record_test_app/app/views/layouts/application.html.erb +17 -0
  307. data/reactive_record_test_app/app/views/models.rb +1 -0
  308. data/reactive_record_test_app/app/views/models/address.rb +13 -0
  309. data/reactive_record_test_app/app/views/models/comment.rb +19 -0
  310. data/reactive_record_test_app/app/views/models/todo_item.rb +36 -0
  311. data/reactive_record_test_app/app/views/models/user.rb +78 -0
  312. data/reactive_record_test_app/config.ru +33 -0
  313. data/reactive_record_test_app/config/application.rb +73 -0
  314. data/reactive_record_test_app/config/boot.rb +10 -0
  315. data/reactive_record_test_app/config/database.yml +25 -0
  316. data/reactive_record_test_app/config/environment.rb +5 -0
  317. data/reactive_record_test_app/config/environments/development.rb +43 -0
  318. data/reactive_record_test_app/config/environments/production.rb +70 -0
  319. data/reactive_record_test_app/config/environments/test.rb +41 -0
  320. data/reactive_record_test_app/config/initializers/backtrace_silencers.rb +7 -0
  321. data/reactive_record_test_app/config/initializers/inflections.rb +15 -0
  322. data/reactive_record_test_app/config/initializers/mime_types.rb +5 -0
  323. data/reactive_record_test_app/config/initializers/secret_token.rb +7 -0
  324. data/reactive_record_test_app/config/initializers/session_store.rb +8 -0
  325. data/reactive_record_test_app/config/initializers/wrap_parameters.rb +14 -0
  326. data/reactive_record_test_app/config/locales/en.yml +5 -0
  327. data/reactive_record_test_app/config/routes.rb +7 -0
  328. data/reactive_record_test_app/db/migrate/20150617002932_create_todo_items.rb +11 -0
  329. data/reactive_record_test_app/db/migrate/20150617134028_create_users.rb +14 -0
  330. data/reactive_record_test_app/db/migrate/20150729195556_add_address_to_user.rb +20 -0
  331. data/reactive_record_test_app/db/migrate/20150826142045_create_comments.rb +10 -0
  332. data/reactive_record_test_app/db/migrate/20150828172008_add_single_comment_to_todo_item.rb +5 -0
  333. data/reactive_record_test_app/db/migrate/20150908184118_add_address_id_to_user.rb +5 -0
  334. data/reactive_record_test_app/db/migrate/20150917220236_add_second_address_to_user.rb +10 -0
  335. data/reactive_record_test_app/db/migrate/20151009000111_add_test_data_attributes_to_user.rb +6 -0
  336. data/reactive_record_test_app/db/migrate/20160129182544_add_test_enum_to_user.rb +5 -0
  337. data/reactive_record_test_app/db/schema.rb +63 -0
  338. data/reactive_record_test_app/db/seeds.rb +60 -0
  339. data/reactive_record_test_app/public/404.html +26 -0
  340. data/reactive_record_test_app/public/422.html +26 -0
  341. data/reactive_record_test_app/public/500.html +25 -0
  342. data/reactive_record_test_app/public/favicon.ico +0 -0
  343. data/reactive_record_test_app/script/rails +6 -0
  344. data/reactive_record_test_app/spec-opal/active-record/aggregations_spec.rb +41 -0
  345. data/reactive_record_test_app/spec-opal/active-record/associations_spec.rb +75 -0
  346. data/reactive_record_test_app/spec-opal/active-record/base_spec.rb +126 -0
  347. data/reactive_record_test_app/spec-opal/active-record/dummy_value_spec.rb +27 -0
  348. data/reactive_record_test_app/spec-opal/active-record/edge_cases_spec.rb +116 -0
  349. data/reactive_record_test_app/spec-opal/active-record/enum_spec.rb +43 -0
  350. data/reactive_record_test_app/spec-opal/active-record/instance_methods_spec.rb +53 -0
  351. data/reactive_record_test_app/spec-opal/active-record/non_ar_aggregations_spec.rb +74 -0
  352. data/reactive_record_test_app/spec-opal/active-record/permissions_spec.rb +170 -0
  353. data/reactive_record_test_app/spec-opal/active-record/prerendering_spec.rb +49 -0
  354. data/reactive_record_test_app/spec-opal/active-record/reactive_record_load_spec.rb +23 -0
  355. data/reactive_record_test_app/spec-opal/active-record/rendering_spec.rb +221 -0
  356. data/reactive_record_test_app/spec-opal/active-record/save_spec.rb +125 -0
  357. data/reactive_record_test_app/spec-opal/active-record/scope_spec.rb +85 -0
  358. data/reactive_record_test_app/spec-opal/active-record/update_aggregations_spec.rb +76 -0
  359. data/reactive_record_test_app/spec-opal/active-record/update_attributes_spec.rb +186 -0
  360. data/reactive_record_test_app/spec-opal/active-record/virtual_methods_spec.rb +71 -0
  361. data/reactive_record_test_app/spec-opal/index.html.erb +11 -0
  362. data/reactive_record_test_app/spec-opal/spec_helper.js.rb +268 -0
  363. data/reactive_record_test_app/spec-opal/vendor/es5-shim.min.js +6 -0
  364. data/reactive_record_test_app/spec_dont_run/README.md +26 -0
  365. data/reactive_record_test_app/spec_dont_run/moved_to_main_spec_dir/zzzmany_to_many_spec_moved_to_main_suite.rb +30 -0
  366. data/reactive_record_test_app/spec_dont_run/moved_to_main_spec_dir/zzzrevert_record_spec_moved.rb +78 -0
  367. data/reactive_record_test_app/spec_dont_run/moved_to_main_spec_dir/zzzupdate_associations_spec_moved.rb +142 -0
  368. data/reactive_record_test_app/spec_dont_run/moved_to_main_spec_dir/zzzupdate_scopes_movedspec.rb +48 -0
  369. data/remote.md +115 -0
  370. data/spec/bin/firebug-2.0.13-fx.xpi +0 -0
  371. data/spec/component_helpers_xspec.rb +49 -0
  372. data/spec/factories/child_model.rb +5 -0
  373. data/spec/factories/comment.rb +5 -0
  374. data/spec/factories/test_models.rb +5 -0
  375. data/spec/factories/todo.rb +5 -0
  376. data/spec/factories/user.rb +5 -0
  377. data/spec/reactive_record/edge_cases_spec.rb +31 -0
  378. data/spec/reactive_record/factory.rb +62 -0
  379. data/spec/reactive_record/many_to_many_spec.rb +50 -0
  380. data/spec/reactive_record/play.rb +64 -0
  381. data/spec/reactive_record/pry_rescue_xspec.rb +48 -0
  382. data/spec/reactive_record/revert_spec.rb +112 -0
  383. data/spec/reactive_record/update_associations_spec.rb +189 -0
  384. data/spec/reactive_record/update_scopes_spec.rb +53 -0
  385. data/spec/spec_helper.rb +366 -0
  386. data/spec/support/component_helpers.rb +351 -0
  387. data/spec/synchromesh/column_types/column_type_spec.rb +302 -0
  388. data/spec/synchromesh/connection_spec.rb +144 -0
  389. data/spec/synchromesh/crud_access_regulation/broadcast_controls_access_spec.rb +105 -0
  390. data/spec/synchromesh/crud_access_regulation/model_policies_spec.rb +131 -0
  391. data/spec/synchromesh/examples/dictionary.rb +239 -0
  392. data/spec/synchromesh/examples/dictionary_with_client_scopes.rb +196 -0
  393. data/spec/synchromesh/examples/random_examples.rb +100 -0
  394. data/spec/synchromesh/examples/scoped_todos_spec.rb +167 -0
  395. data/spec/synchromesh/integration/authorization_spec.rb +111 -0
  396. data/spec/synchromesh/integration/default_scope_spec.rb +121 -0
  397. data/spec/synchromesh/integration/has_many_through_spec.rb +173 -0
  398. data/spec/synchromesh/integration/relationships_spec.rb +263 -0
  399. data/spec/synchromesh/integration/scope_spec.rb +553 -0
  400. data/spec/synchromesh/integration/synchromesh_spec.rb +80 -0
  401. data/spec/synchromesh/integration/test_components.rb +18 -0
  402. data/spec/synchromesh/integration/transports_spec.rb +308 -0
  403. data/spec/synchromesh/policies/auto_connect_spec.rb +60 -0
  404. data/spec/synchromesh/policies/auto_loader_spec.rb +34 -0
  405. data/spec/synchromesh/policies/policy_methods_spec.rb +85 -0
  406. data/spec/synchromesh/policies/regulate_all_broadcasts_spec.rb +315 -0
  407. data/spec/synchromesh/policies/regulate_broadcast_spec.rb +370 -0
  408. data/spec/synchromesh/policies/regulate_class_connection_spec.rb +50 -0
  409. data/spec/synchromesh/policies/regulate_instance_connection_spec.rb +66 -0
  410. data/spec/test_app/Gemfile +61 -0
  411. data/spec/test_app/Gemfile.lock +253 -0
  412. data/spec/test_app/Rakefile +6 -0
  413. data/spec/test_app/app/assets/javascripts/application.js +6 -0
  414. data/spec/test_app/app/assets/stylesheets/application.css +15 -0
  415. data/spec/test_app/app/controllers/application_controller.rb +13 -0
  416. data/spec/test_app/app/controllers/test_controller.rb +5 -0
  417. data/spec/test_app/app/models/_react_public_models.rb +2 -0
  418. data/spec/test_app/app/models/public/address.rb +13 -0
  419. data/spec/test_app/app/models/public/child_model.rb +3 -0
  420. data/spec/test_app/app/models/public/comment.rb +25 -0
  421. data/spec/test_app/app/models/public/test_model.rb +5 -0
  422. data/spec/test_app/app/models/public/todo.rb +6 -0
  423. data/spec/test_app/app/models/public/todo_item.rb +36 -0
  424. data/spec/test_app/app/models/public/user.rb +88 -0
  425. data/spec/test_app/app/policies/auto_loader_test_classa_policy.rb +3 -0
  426. data/spec/test_app/app/policies/auto_loader_test_classb_policy.rb +3 -0
  427. data/spec/test_app/app/policies/auto_loader_test_classc_policy.rb +3 -0
  428. data/spec/test_app/app/policies/auto_loader_test_classd_policy.rb +3 -0
  429. data/spec/test_app/app/views/components.rb +14 -0
  430. data/spec/test_app/app/views/components/show.rb +5 -0
  431. data/spec/test_app/app/views/layouts/application.html.erb +14 -0
  432. data/spec/test_app/bin/bundle +3 -0
  433. data/spec/test_app/bin/rails +4 -0
  434. data/spec/test_app/bin/rake +4 -0
  435. data/spec/test_app/bin/setup +29 -0
  436. data/spec/test_app/config.ru +4 -0
  437. data/spec/test_app/config/application.rb +42 -0
  438. data/spec/test_app/config/boot.rb +6 -0
  439. data/spec/test_app/config/cable.yml +10 -0
  440. data/spec/test_app/config/database.yml +47 -0
  441. data/spec/test_app/config/environment.rb +5 -0
  442. data/spec/test_app/config/environments/development.rb +41 -0
  443. data/spec/test_app/config/environments/production.rb +79 -0
  444. data/spec/test_app/config/environments/test.rb +42 -0
  445. data/spec/test_app/config/initializers/assets.rb +11 -0
  446. data/spec/test_app/config/initializers/backtrace_silencers.rb +7 -0
  447. data/spec/test_app/config/initializers/cookies_serializer.rb +3 -0
  448. data/spec/test_app/config/initializers/filter_parameter_logging.rb +4 -0
  449. data/spec/test_app/config/initializers/inflections.rb +16 -0
  450. data/spec/test_app/config/initializers/mime_types.rb +4 -0
  451. data/spec/test_app/config/initializers/session_store.rb +3 -0
  452. data/spec/test_app/config/initializers/synchromesh.rb +11 -0
  453. data/spec/test_app/config/initializers/wrap_parameters.rb +14 -0
  454. data/spec/test_app/config/locales/en.yml +23 -0
  455. data/spec/test_app/config/routes.rb +61 -0
  456. data/spec/test_app/config/secrets.yml +22 -0
  457. data/spec/test_app/db/development.sqlite3 +0 -0
  458. data/spec/test_app/db/migrate/20160731182106_create_test_models.rb +75 -0
  459. data/spec/test_app/db/schema.rb +88 -0
  460. data/spec/test_app/db/seeds.rb +7 -0
  461. data/spec/test_app/lib/assets/.keep +0 -0
  462. data/spec/test_app/log/.keep +0 -0
  463. data/spec/test_app/public/404.html +67 -0
  464. data/spec/test_app/public/422.html +67 -0
  465. data/spec/test_app/public/500.html +66 -0
  466. data/spec/test_app/public/favicon.ico +0 -0
  467. data/spec/vendor/es5-shim.min.js +6 -0
  468. data/terminal.md +66 -0
  469. metadata +1175 -0
@@ -0,0 +1,88 @@
1
+ # This file is auto-generated from the current state of the database. Instead
2
+ # of editing this file, please use the migrations feature of Active Record to
3
+ # incrementally modify your database, and then regenerate this schema definition.
4
+ #
5
+ # Note that this schema.rb definition is the authoritative source for your
6
+ # database schema. If you need to create the application database on another
7
+ # system, you should be using db:schema:load, not running all the migrations
8
+ # from scratch. The latter is a flawed and unsustainable approach (the more migrations
9
+ # you'll amass, the slower it'll run and the greater likelihood for issues).
10
+ #
11
+ # It's strongly recommended that you check this file into your version control system.
12
+
13
+ ActiveRecord::Schema.define(version: 20160731182106) do
14
+
15
+ create_table "addresses", force: :cascade do |t|
16
+ t.string "street"
17
+ t.string "city"
18
+ t.string "state"
19
+ t.string "zip"
20
+ t.datetime "created_at"
21
+ t.datetime "updated_at"
22
+ end
23
+
24
+ create_table "child_models", force: :cascade do |t|
25
+ t.string "child_attribute"
26
+ t.integer "test_model_id"
27
+ end
28
+
29
+ create_table "comments", force: :cascade do |t|
30
+ t.text "comment"
31
+ t.datetime "created_at"
32
+ t.datetime "updated_at"
33
+ t.integer "todo_id"
34
+ t.integer "author_id"
35
+ t.integer "user_id"
36
+ t.integer "todo_item_id"
37
+ end
38
+
39
+ create_table "test_models", force: :cascade do |t|
40
+ t.string "test_attribute"
41
+ t.boolean "completed"
42
+ t.datetime "created_at", null: false
43
+ t.datetime "updated_at", null: false
44
+ end
45
+
46
+ create_table "todo_items", force: :cascade do |t|
47
+ t.string "title"
48
+ t.text "description"
49
+ t.boolean "complete"
50
+ t.datetime "created_at"
51
+ t.datetime "updated_at"
52
+ t.integer "user_id"
53
+ t.integer "comment_id"
54
+ end
55
+
56
+ create_table "todos", force: :cascade do |t|
57
+ t.string "title"
58
+ t.text "description"
59
+ t.datetime "created_at", null: false
60
+ t.datetime "updated_at", null: false
61
+ t.boolean "completed", default: false, null: false
62
+ t.integer "created_by_id"
63
+ t.integer "owner_id"
64
+ end
65
+
66
+ create_table "users", force: :cascade do |t|
67
+ t.string "role"
68
+ t.integer "manager_id"
69
+ t.string "first_name"
70
+ t.string "last_name"
71
+ t.string "email"
72
+ t.datetime "created_at"
73
+ t.datetime "updated_at"
74
+ t.string "address_street"
75
+ t.string "address_city"
76
+ t.string "address_state"
77
+ t.string "address_zip"
78
+ t.integer "address_id"
79
+ t.string "address2_street"
80
+ t.string "address2_city"
81
+ t.string "address2_state"
82
+ t.string "address2_zip"
83
+ t.string "data_string"
84
+ t.integer "data_times"
85
+ t.integer "test_enum"
86
+ end
87
+
88
+ end
@@ -0,0 +1,7 @@
1
+ # This file should contain all the record creation needed to seed the database with its default values.
2
+ # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
3
+ #
4
+ # Examples:
5
+ #
6
+ # cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
7
+ # Mayor.create(name: 'Emanuel', city: cities.first)
File without changes
File without changes
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/404.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The page you were looking for doesn't exist.</h1>
62
+ <p>You may have mistyped the address or the page may have moved.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/422.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>The change you wanted was rejected.</h1>
62
+ <p>Maybe you tried to change something you didn't have access to.</p>
63
+ </div>
64
+ <p>If you are the application owner check the logs for more information.</p>
65
+ </div>
66
+ </body>
67
+ </html>
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ body {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body>
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
File without changes
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * https://github.com/es-shims/es5-shim
3
+ * @license es5-shim Copyright 2009-2014 by contributors, MIT License
4
+ * see https://github.com/es-shims/es5-shim/blob/v4.1.0/LICENSE
5
+ */
6
+ (function(t,e){"use strict";if(typeof define==="function"&&define.amd){define(e)}else if(typeof exports==="object"){module.exports=e()}else{t.returnExports=e()}})(this,function(){var t=Array.prototype;var e=Object.prototype;var r=Function.prototype;var n=String.prototype;var i=Number.prototype;var a=t.slice;var o=t.splice;var u=t.push;var l=t.unshift;var f=r.call;var s=e.toString;var c=Array.isArray||function ye(t){return s.call(t)==="[object Array]"};var p=typeof Symbol==="function"&&typeof Symbol.toStringTag==="symbol";var h;var v=Function.prototype.toString,g=function de(t){try{v.call(t);return true}catch(e){return false}},y="[object Function]",d="[object GeneratorFunction]";h=function me(t){if(typeof t!=="function"){return false}if(p){return g(t)}var e=s.call(t);return e===y||e===d};var m;var b=RegExp.prototype.exec,w=function be(t){try{b.call(t);return true}catch(e){return false}},T="[object RegExp]";m=function we(t){if(typeof t!=="object"){return false}return p?w(t):s.call(t)===T};var x;var O=String.prototype.valueOf,j=function Te(t){try{O.call(t);return true}catch(e){return false}},S="[object String]";x=function xe(t){if(typeof t==="string"){return true}if(typeof t!=="object"){return false}return p?j(t):s.call(t)===S};var E=function Oe(t){var e=s.call(t);var r=e==="[object Arguments]";if(!r){r=!c(t)&&t!==null&&typeof t==="object"&&typeof t.length==="number"&&t.length>=0&&h(t.callee)}return r};var N=function(t){var e=Object.defineProperty&&function(){try{Object.defineProperty({},"x",{});return true}catch(t){return false}}();var r;if(e){r=function(t,e,r,n){if(!n&&e in t){return}Object.defineProperty(t,e,{configurable:true,enumerable:false,writable:true,value:r})}}else{r=function(t,e,r,n){if(!n&&e in t){return}t[e]=r}}return function n(e,i,a){for(var o in i){if(t.call(i,o)){r(e,o,i[o],a)}}}}(e.hasOwnProperty);function I(t){var e=typeof t;return t===null||e==="undefined"||e==="boolean"||e==="number"||e==="string"}var D={ToInteger:function je(t){var e=+t;if(e!==e){e=0}else if(e!==0&&e!==1/0&&e!==-(1/0)){e=(e>0||-1)*Math.floor(Math.abs(e))}return e},ToPrimitive:function Se(t){var e,r,n;if(I(t)){return t}r=t.valueOf;if(h(r)){e=r.call(t);if(I(e)){return e}}n=t.toString;if(h(n)){e=n.call(t);if(I(e)){return e}}throw new TypeError},ToObject:function(t){if(t==null){throw new TypeError("can't convert "+t+" to object")}return Object(t)},ToUint32:function Ee(t){return t>>>0}};var M=function Ne(){};N(r,{bind:function Ie(t){var e=this;if(!h(e)){throw new TypeError("Function.prototype.bind called on incompatible "+e)}var r=a.call(arguments,1);var n;var i=function(){if(this instanceof n){var i=e.apply(this,r.concat(a.call(arguments)));if(Object(i)===i){return i}return this}else{return e.apply(t,r.concat(a.call(arguments)))}};var o=Math.max(0,e.length-r.length);var u=[];for(var l=0;l<o;l++){u.push("$"+l)}n=Function("binder","return function ("+u.join(",")+"){ return binder.apply(this, arguments); }")(i);if(e.prototype){M.prototype=e.prototype;n.prototype=new M;M.prototype=null}return n}});var F=f.bind(e.hasOwnProperty);var R=function(){var t=[1,2];var e=t.splice();return t.length===2&&c(e)&&e.length===0}();N(t,{splice:function De(t,e){if(arguments.length===0){return[]}else{return o.apply(this,arguments)}}},!R);var U=function(){var e={};t.splice.call(e,0,0,1);return e.length===1}();N(t,{splice:function Me(t,e){if(arguments.length===0){return[]}var r=arguments;this.length=Math.max(D.ToInteger(this.length),0);if(arguments.length>0&&typeof e!=="number"){r=a.call(arguments);if(r.length<2){r.push(this.length-t)}else{r[1]=D.ToInteger(e)}}return o.apply(this,r)}},!U);var k=[].unshift(0)!==1;N(t,{unshift:function(){l.apply(this,arguments);return this.length}},k);N(Array,{isArray:c});var A=Object("a");var C=A[0]!=="a"||!(0 in A);var P=function Fe(t){var e=true;var r=true;if(t){t.call("foo",function(t,r,n){if(typeof n!=="object"){e=false}});t.call([1],function(){"use strict";r=typeof this==="string"},"x")}return!!t&&e&&r};N(t,{forEach:function Re(t){var e=D.ToObject(this),r=C&&x(this)?this.split(""):e,n=arguments[1],i=-1,a=r.length>>>0;if(!h(t)){throw new TypeError}while(++i<a){if(i in r){t.call(n,r[i],i,e)}}}},!P(t.forEach));N(t,{map:function Ue(t){var e=D.ToObject(this),r=C&&x(this)?this.split(""):e,n=r.length>>>0,i=Array(n),a=arguments[1];if(!h(t)){throw new TypeError(t+" is not a function")}for(var o=0;o<n;o++){if(o in r){i[o]=t.call(a,r[o],o,e)}}return i}},!P(t.map));N(t,{filter:function ke(t){var e=D.ToObject(this),r=C&&x(this)?this.split(""):e,n=r.length>>>0,i=[],a,o=arguments[1];if(!h(t)){throw new TypeError(t+" is not a function")}for(var u=0;u<n;u++){if(u in r){a=r[u];if(t.call(o,a,u,e)){i.push(a)}}}return i}},!P(t.filter));N(t,{every:function Ae(t){var e=D.ToObject(this),r=C&&x(this)?this.split(""):e,n=r.length>>>0,i=arguments[1];if(!h(t)){throw new TypeError(t+" is not a function")}for(var a=0;a<n;a++){if(a in r&&!t.call(i,r[a],a,e)){return false}}return true}},!P(t.every));N(t,{some:function Ce(t){var e=D.ToObject(this),r=C&&x(this)?this.split(""):e,n=r.length>>>0,i=arguments[1];if(!h(t)){throw new TypeError(t+" is not a function")}for(var a=0;a<n;a++){if(a in r&&t.call(i,r[a],a,e)){return true}}return false}},!P(t.some));var Z=false;if(t.reduce){Z=typeof t.reduce.call("es5",function(t,e,r,n){return n})==="object"}N(t,{reduce:function Pe(t){var e=D.ToObject(this),r=C&&x(this)?this.split(""):e,n=r.length>>>0;if(!h(t)){throw new TypeError(t+" is not a function")}if(!n&&arguments.length===1){throw new TypeError("reduce of empty array with no initial value")}var i=0;var a;if(arguments.length>=2){a=arguments[1]}else{do{if(i in r){a=r[i++];break}if(++i>=n){throw new TypeError("reduce of empty array with no initial value")}}while(true)}for(;i<n;i++){if(i in r){a=t.call(void 0,a,r[i],i,e)}}return a}},!Z);var J=false;if(t.reduceRight){J=typeof t.reduceRight.call("es5",function(t,e,r,n){return n})==="object"}N(t,{reduceRight:function Ze(t){var e=D.ToObject(this),r=C&&x(this)?this.split(""):e,n=r.length>>>0;if(!h(t)){throw new TypeError(t+" is not a function")}if(!n&&arguments.length===1){throw new TypeError("reduceRight of empty array with no initial value")}var i,a=n-1;if(arguments.length>=2){i=arguments[1]}else{do{if(a in r){i=r[a--];break}if(--a<0){throw new TypeError("reduceRight of empty array with no initial value")}}while(true)}if(a<0){return i}do{if(a in r){i=t.call(void 0,i,r[a],a,e)}}while(a--);return i}},!J);var z=Array.prototype.indexOf&&[0,1].indexOf(1,2)!==-1;N(t,{indexOf:function Je(t){var e=C&&x(this)?this.split(""):D.ToObject(this),r=e.length>>>0;if(!r){return-1}var n=0;if(arguments.length>1){n=D.ToInteger(arguments[1])}n=n>=0?n:Math.max(0,r+n);for(;n<r;n++){if(n in e&&e[n]===t){return n}}return-1}},z);var $=Array.prototype.lastIndexOf&&[0,1].lastIndexOf(0,-3)!==-1;N(t,{lastIndexOf:function ze(t){var e=C&&x(this)?this.split(""):D.ToObject(this),r=e.length>>>0;if(!r){return-1}var n=r-1;if(arguments.length>1){n=Math.min(n,D.ToInteger(arguments[1]))}n=n>=0?n:r-Math.abs(n);for(;n>=0;n--){if(n in e&&t===e[n]){return n}}return-1}},$);var B=!{toString:null}.propertyIsEnumerable("toString"),G=function(){}.propertyIsEnumerable("prototype"),H=!F("x","0"),L=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],X=L.length;N(Object,{keys:function $e(t){var e=h(t),r=E(t),n=t!==null&&typeof t==="object",i=n&&x(t);if(!n&&!e&&!r){throw new TypeError("Object.keys called on a non-object")}var a=[];var o=G&&e;if(i&&H||r){for(var u=0;u<t.length;++u){a.push(String(u))}}if(!r){for(var l in t){if(!(o&&l==="prototype")&&F(t,l)){a.push(String(l))}}}if(B){var f=t.constructor,s=f&&f.prototype===t;for(var c=0;c<X;c++){var p=L[c];if(!(s&&p==="constructor")&&F(t,p)){a.push(p)}}}return a}});var Y=Object.keys&&function(){return Object.keys(arguments).length===2}(1,2);var q=Object.keys;N(Object,{keys:function Be(e){if(E(e)){return q(t.slice.call(e))}else{return q(e)}}},!Y);var K=-621987552e5;var Q="-000001";var V=Date.prototype.toISOString&&new Date(K).toISOString().indexOf(Q)===-1;N(Date.prototype,{toISOString:function Ge(){var t,e,r,n,i;if(!isFinite(this)){throw new RangeError("Date.prototype.toISOString called on non-finite value.")}n=this.getUTCFullYear();i=this.getUTCMonth();n+=Math.floor(i/12);i=(i%12+12)%12;t=[i+1,this.getUTCDate(),this.getUTCHours(),this.getUTCMinutes(),this.getUTCSeconds()];n=(n<0?"-":n>9999?"+":"")+("00000"+Math.abs(n)).slice(0<=n&&n<=9999?-4:-6);e=t.length;while(e--){r=t[e];if(r<10){t[e]="0"+r}}return n+"-"+t.slice(0,2).join("-")+"T"+t.slice(2).join(":")+"."+("000"+this.getUTCMilliseconds()).slice(-3)+"Z"}},V);var W=false;try{W=Date.prototype.toJSON&&new Date(NaN).toJSON()===null&&new Date(K).toJSON().indexOf(Q)!==-1&&Date.prototype.toJSON.call({toISOString:function(){return true}})}catch(_){}if(!W){Date.prototype.toJSON=function He(t){var e=Object(this),r=D.ToPrimitive(e),n;if(typeof r==="number"&&!isFinite(r)){return null}n=e.toISOString;if(typeof n!=="function"){throw new TypeError("toISOString property is not callable")}return n.call(e)}}var te=Date.parse("+033658-09-27T01:46:40.000Z")===1e15;var ee=!isNaN(Date.parse("2012-04-04T24:00:00.500Z"))||!isNaN(Date.parse("2012-11-31T23:59:59.000Z"));var re=isNaN(Date.parse("2000-01-01T00:00:00.000Z"));if(!Date.parse||re||ee||!te){Date=function(t){function e(r,n,i,a,o,u,l){var f=arguments.length;if(this instanceof t){var s=f===1&&String(r)===r?new t(e.parse(r)):f>=7?new t(r,n,i,a,o,u,l):f>=6?new t(r,n,i,a,o,u):f>=5?new t(r,n,i,a,o):f>=4?new t(r,n,i,a):f>=3?new t(r,n,i):f>=2?new t(r,n):f>=1?new t(r):new t;s.constructor=e;return s}return t.apply(this,arguments)}var r=new RegExp("^"+"(\\d{4}|[+-]\\d{6})"+"(?:-(\\d{2})"+"(?:-(\\d{2})"+"(?:"+"T(\\d{2})"+":(\\d{2})"+"(?:"+":(\\d{2})"+"(?:(\\.\\d{1,}))?"+")?"+"("+"Z|"+"(?:"+"([-+])"+"(\\d{2})"+":(\\d{2})"+")"+")?)?)?)?"+"$");var n=[0,31,59,90,120,151,181,212,243,273,304,334,365];function i(t,e){var r=e>1?1:0;return n[e]+Math.floor((t-1969+r)/4)-Math.floor((t-1901+r)/100)+Math.floor((t-1601+r)/400)+365*(t-1970)}function a(e){return Number(new t(1970,0,1,0,0,0,e))}for(var o in t){e[o]=t[o]}e.now=t.now;e.UTC=t.UTC;e.prototype=t.prototype;e.prototype.constructor=e;e.parse=function u(e){var n=r.exec(e);if(n){var o=Number(n[1]),u=Number(n[2]||1)-1,l=Number(n[3]||1)-1,f=Number(n[4]||0),s=Number(n[5]||0),c=Number(n[6]||0),p=Math.floor(Number(n[7]||0)*1e3),h=Boolean(n[4]&&!n[8]),v=n[9]==="-"?1:-1,g=Number(n[10]||0),y=Number(n[11]||0),d;if(f<(s>0||c>0||p>0?24:25)&&s<60&&c<60&&p<1e3&&u>-1&&u<12&&g<24&&y<60&&l>-1&&l<i(o,u+1)-i(o,u)){d=((i(o,u)+l)*24+f+g*v)*60;d=((d+s+y*v)*60+c)*1e3+p;if(h){d=a(d)}if(-864e13<=d&&d<=864e13){return d}}return NaN}return t.parse.apply(this,arguments)};return e}(Date)}if(!Date.now){Date.now=function Le(){return(new Date).getTime()}}var ne=i.toFixed&&(8e-5.toFixed(3)!=="0.000"||.9.toFixed(0)!=="1"||1.255.toFixed(2)!=="1.25"||0xde0b6b3a7640080.toFixed(0)!=="1000000000000000128");var ie={base:1e7,size:6,data:[0,0,0,0,0,0],multiply:function Xe(t,e){var r=-1;while(++r<ie.size){e+=t*ie.data[r];ie.data[r]=e%ie.base;e=Math.floor(e/ie.base)}},divide:function Ye(t){var e=ie.size,r=0;while(--e>=0){r+=ie.data[e];ie.data[e]=Math.floor(r/t);r=r%t*ie.base}},numToString:function qe(){var t=ie.size;var e="";while(--t>=0){if(e!==""||t===0||ie.data[t]!==0){var r=String(ie.data[t]);if(e===""){e=r}else{e+="0000000".slice(0,7-r.length)+r}}}return e},pow:function Ke(t,e,r){return e===0?r:e%2===1?Ke(t,e-1,r*t):Ke(t*t,e/2,r)},log:function Qe(t){var e=0;while(t>=4096){e+=12;t/=4096}while(t>=2){e+=1;t/=2}return e}};N(i,{toFixed:function Ve(t){var e,r,n,i,a,o,u,l;e=Number(t);e=e!==e?0:Math.floor(e);if(e<0||e>20){throw new RangeError("Number.toFixed called with invalid number of decimals")}r=Number(this);if(r!==r){return"NaN"}if(r<=-1e21||r>=1e21){return String(r)}n="";if(r<0){n="-";r=-r}i="0";if(r>1e-21){a=ie.log(r*ie.pow(2,69,1))-69;o=a<0?r*ie.pow(2,-a,1):r/ie.pow(2,a,1);o*=4503599627370496;a=52-a;if(a>0){ie.multiply(0,o);u=e;while(u>=7){ie.multiply(1e7,0);u-=7}ie.multiply(ie.pow(10,u,1),0);u=a-1;while(u>=23){ie.divide(1<<23);u-=23}ie.divide(1<<u);ie.multiply(1,1);ie.divide(2);i=ie.numToString()}else{ie.multiply(0,o);ie.multiply(1<<-a,0);i=ie.numToString()+"0.00000000000000000000".slice(2,2+e)}}if(e>0){l=i.length;if(l<=e){i=n+"0.0000000000000000000".slice(0,e-l+2)+i}else{i=n+i.slice(0,l-e)+"."+i.slice(l-e)}}else{i=n+i}return i}},ne);var ae=n.split;if("ab".split(/(?:ab)*/).length!==2||".".split(/(.?)(.?)/).length!==4||"tesst".split(/(s)*/)[1]==="t"||"test".split(/(?:)/,-1).length!==4||"".split(/.?/).length||".".split(/()()/).length>1){(function(){var t=typeof/()??/.exec("")[1]==="undefined";n.split=function(e,r){var n=this;if(typeof e==="undefined"&&r===0){return[]}if(!m(e)){return ae.call(this,e,r)}var i=[],a=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":""),o=0,l,f,s,c;e=new RegExp(e.source,a+"g");n+="";if(!t){l=new RegExp("^"+e.source+"$(?!\\s)",a)}r=typeof r==="undefined"?-1>>>0:D.ToUint32(r);f=e.exec(n);while(f){s=f.index+f[0].length;if(s>o){i.push(n.slice(o,f.index));if(!t&&f.length>1){f[0].replace(l,function(){for(var t=1;t<arguments.length-2;t++){if(typeof arguments[t]==="undefined"){f[t]=void 0}}})}if(f.length>1&&f.index<n.length){u.apply(i,f.slice(1))}c=f[0].length;o=s;if(i.length>=r){break}}if(e.lastIndex===f.index){e.lastIndex++}f=e.exec(n)}if(o===n.length){if(c||!e.test("")){i.push("")}}else{i.push(n.slice(o))}return i.length>r?i.slice(0,r):i}})()}else if("0".split(void 0,0).length){n.split=function We(t,e){if(typeof t==="undefined"&&e===0){return[]}return ae.call(this,t,e)}}var oe=n.replace;var ue=function(){var t=[];"x".replace(/x(.)?/g,function(e,r){t.push(r)});return t.length===1&&typeof t[0]==="undefined"}();if(!ue){n.replace=function _e(t,e){var r=h(e);var n=m(t)&&/\)[*?]/.test(t.source);if(!r||!n){return oe.call(this,t,e)}else{var i=function(r){var n=arguments.length;var i=t.lastIndex;t.lastIndex=0;var a=t.exec(r)||[];t.lastIndex=i;a.push(arguments[n-2],arguments[n-1]);return e.apply(this,a)};return oe.call(this,t,i)}}}var le=n.substr;var fe="".substr&&"0b".substr(-1)!=="b";N(n,{substr:function tr(t,e){return le.call(this,t<0?(t=this.length+t)<0?0:t:t,e)}},fe);var se=" \n \f\r \xa0\u1680\u180e\u2000\u2001\u2002\u2003"+"\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028"+"\u2029\ufeff";var ce="\u200b";var pe="["+se+"]";var he=new RegExp("^"+pe+pe+"*");var ve=new RegExp(pe+pe+"*$");var ge=n.trim&&(se.trim()||!ce.trim());N(n,{trim:function er(){if(typeof this==="undefined"||this===null){throw new TypeError("can't convert "+this+" to object")}return String(this).replace(he,"").replace(ve,"")}},ge);if(parseInt(se+"08")!==8||parseInt(se+"0x16")!==22){parseInt=function(t){var e=/^0[xX]/;return function r(n,i){n=String(n).trim();if(!Number(i)){i=e.test(n)?16:10}return t(n,i)}}(parseInt)}});
data/terminal.md ADDED
@@ -0,0 +1,66 @@
1
+ console helpfulness
2
+
3
+ need to make things work with rails console, and async mode.
4
+
5
+ Okay...
6
+
7
+ detect where we are... am I running the server, or the console... if console then I do a post to server
8
+
9
+ after-commit/change-or-destroy/model/id
10
+
11
+
12
+
13
+ execute `rubycon` to bring up console in a new window
14
+
15
+ uses <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.terminal/0.11.7/js/jquery.terminal.min.js"></script>
16
+
17
+ <link href="https://cdnjs.cloudflare.com/ajax/libs/jquery.terminal/0.11.7/css/jquery.terminal.min.css" rel="stylesheet"/>
18
+
19
+ the rubycon function will bring up a new browser window running the terminal emulator.
20
+
21
+ the rubycon function will intercept all console.log/warn/error function calls and send them to the server, the server will push these out
22
+
23
+ As each line is typed it is passed to the opal compiler
24
+
25
+ once the compiler can parse the input it will be compiled to JS, and sent the server
26
+
27
+ the server will then push using a dedicated debug channel out to the browser window.
28
+
29
+ any result will be be sent back to the console.
30
+
31
+ get new-console/clientid
32
+
33
+ post client-to-console/clientid log-message
34
+ post console-to-client/clientid js-code-string
35
+ post console-to-server/clientid js-code-string (only accepts in dev mode)
36
+
37
+ channel ClientToConsole-clientid log-message
38
+ channel ConsoleToClient-clientid js-code-string
39
+
40
+ 1) `rubycon()` will generate a GUID
41
+ 2) then open a popup window with url syncromesh-root/new-console/GUID
42
+ 3) then open channel connection ConsoleToClient-GUID
43
+ 4) then patch window.log/warn/error
44
+ 5) the `new-console` page will bring up a terminal window
45
+ 6) then open channel connection ClientToConsole-GUID
46
+
47
+ when either channel terminates, that will get resent to the other channel
48
+ 7) the client window will disconnect the log/warn/error window, and disconnect the channel
49
+ 8) the console window will close
50
+
51
+ 1-4 + 7 are in a class RubyCon
52
+ 5-6 + 8 use hyper-react-express in SAP
53
+
54
+
55
+
56
+
57
+ nothing works whilst in debugger
58
+
59
+ sooo... one place to hook in is render: if in debug mode when hitting render we render out a message, then wait for an event, then message the debugger with the component... debugger can poke around in the component, see what the state is, change state, whatever.. in otherwords we want to execute some opal code as if self were that component... fine! debugger can set state and finally leave.
60
+
61
+ so render method is wrapped like this:
62
+
63
+ if React::State(Debugger, :debugging_in_session)
64
+ "DEBUGGING IN SESSSION"
65
+ else
66
+ ...normal code...
metadata ADDED
@@ -0,0 +1,1175 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hyper-mesh
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.0
5
+ platform: ruby
6
+ authors:
7
+ - Mitch VanDuyn
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-11-11 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activerecord
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.3.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 0.3.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: hyper-react
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.10.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 0.10.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.8'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.8'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec-rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: timecop
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rails
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 5.0.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 5.0.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: react-rails
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: opal-rails
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: opal-activesupport
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: factory_girl_rails
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: reactrb-rails-generator
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rspec-wait
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: puma
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: pusher
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: pusher-fake
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: opal-browser
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: sqlite3
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - '='
256
+ - !ruby/object:Gem::Version
257
+ version: 1.3.10
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - '='
263
+ - !ruby/object:Gem::Version
264
+ version: 1.3.10
265
+ - !ruby/object:Gem::Dependency
266
+ name: mysql2
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - ">="
270
+ - !ruby/object:Gem::Version
271
+ version: '0'
272
+ type: :development
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - ">="
277
+ - !ruby/object:Gem::Version
278
+ version: '0'
279
+ - !ruby/object:Gem::Dependency
280
+ name: therubyracer
281
+ requirement: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - '='
284
+ - !ruby/object:Gem::Version
285
+ version: 0.12.2
286
+ type: :development
287
+ prerelease: false
288
+ version_requirements: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - '='
291
+ - !ruby/object:Gem::Version
292
+ version: 0.12.2
293
+ - !ruby/object:Gem::Dependency
294
+ name: rspec-mocks
295
+ requirement: !ruby/object:Gem::Requirement
296
+ requirements:
297
+ - - ">="
298
+ - !ruby/object:Gem::Version
299
+ version: '0'
300
+ type: :development
301
+ prerelease: false
302
+ version_requirements: !ruby/object:Gem::Requirement
303
+ requirements:
304
+ - - ">="
305
+ - !ruby/object:Gem::Version
306
+ version: '0'
307
+ - !ruby/object:Gem::Dependency
308
+ name: rspec-expectations
309
+ requirement: !ruby/object:Gem::Requirement
310
+ requirements:
311
+ - - ">="
312
+ - !ruby/object:Gem::Version
313
+ version: '0'
314
+ type: :development
315
+ prerelease: false
316
+ version_requirements: !ruby/object:Gem::Requirement
317
+ requirements:
318
+ - - ">="
319
+ - !ruby/object:Gem::Version
320
+ version: '0'
321
+ - !ruby/object:Gem::Dependency
322
+ name: pry
323
+ requirement: !ruby/object:Gem::Requirement
324
+ requirements:
325
+ - - ">="
326
+ - !ruby/object:Gem::Version
327
+ version: '0'
328
+ type: :development
329
+ prerelease: false
330
+ version_requirements: !ruby/object:Gem::Requirement
331
+ requirements:
332
+ - - ">="
333
+ - !ruby/object:Gem::Version
334
+ version: '0'
335
+ - !ruby/object:Gem::Dependency
336
+ name: pry-rescue
337
+ requirement: !ruby/object:Gem::Requirement
338
+ requirements:
339
+ - - ">="
340
+ - !ruby/object:Gem::Version
341
+ version: '0'
342
+ type: :development
343
+ prerelease: false
344
+ version_requirements: !ruby/object:Gem::Requirement
345
+ requirements:
346
+ - - ">="
347
+ - !ruby/object:Gem::Version
348
+ version: '0'
349
+ - !ruby/object:Gem::Dependency
350
+ name: pry-stack_explorer
351
+ requirement: !ruby/object:Gem::Requirement
352
+ requirements:
353
+ - - ">="
354
+ - !ruby/object:Gem::Version
355
+ version: '0'
356
+ type: :development
357
+ prerelease: false
358
+ version_requirements: !ruby/object:Gem::Requirement
359
+ requirements:
360
+ - - ">="
361
+ - !ruby/object:Gem::Version
362
+ version: '0'
363
+ - !ruby/object:Gem::Dependency
364
+ name: shoulda
365
+ requirement: !ruby/object:Gem::Requirement
366
+ requirements:
367
+ - - ">="
368
+ - !ruby/object:Gem::Version
369
+ version: '0'
370
+ type: :development
371
+ prerelease: false
372
+ version_requirements: !ruby/object:Gem::Requirement
373
+ requirements:
374
+ - - ">="
375
+ - !ruby/object:Gem::Version
376
+ version: '0'
377
+ - !ruby/object:Gem::Dependency
378
+ name: shoulda-matchers
379
+ requirement: !ruby/object:Gem::Requirement
380
+ requirements:
381
+ - - ">="
382
+ - !ruby/object:Gem::Version
383
+ version: '0'
384
+ type: :development
385
+ prerelease: false
386
+ version_requirements: !ruby/object:Gem::Requirement
387
+ requirements:
388
+ - - ">="
389
+ - !ruby/object:Gem::Version
390
+ version: '0'
391
+ - !ruby/object:Gem::Dependency
392
+ name: rspec-its
393
+ requirement: !ruby/object:Gem::Requirement
394
+ requirements:
395
+ - - ">="
396
+ - !ruby/object:Gem::Version
397
+ version: '0'
398
+ type: :development
399
+ prerelease: false
400
+ version_requirements: !ruby/object:Gem::Requirement
401
+ requirements:
402
+ - - ">="
403
+ - !ruby/object:Gem::Version
404
+ version: '0'
405
+ - !ruby/object:Gem::Dependency
406
+ name: rspec-collection_matchers
407
+ requirement: !ruby/object:Gem::Requirement
408
+ requirements:
409
+ - - ">="
410
+ - !ruby/object:Gem::Version
411
+ version: '0'
412
+ type: :development
413
+ prerelease: false
414
+ version_requirements: !ruby/object:Gem::Requirement
415
+ requirements:
416
+ - - ">="
417
+ - !ruby/object:Gem::Version
418
+ version: '0'
419
+ - !ruby/object:Gem::Dependency
420
+ name: database_cleaner
421
+ requirement: !ruby/object:Gem::Requirement
422
+ requirements:
423
+ - - ">="
424
+ - !ruby/object:Gem::Version
425
+ version: '0'
426
+ type: :development
427
+ prerelease: false
428
+ version_requirements: !ruby/object:Gem::Requirement
429
+ requirements:
430
+ - - ">="
431
+ - !ruby/object:Gem::Version
432
+ version: '0'
433
+ - !ruby/object:Gem::Dependency
434
+ name: capybara
435
+ requirement: !ruby/object:Gem::Requirement
436
+ requirements:
437
+ - - ">="
438
+ - !ruby/object:Gem::Version
439
+ version: '0'
440
+ type: :development
441
+ prerelease: false
442
+ version_requirements: !ruby/object:Gem::Requirement
443
+ requirements:
444
+ - - ">="
445
+ - !ruby/object:Gem::Version
446
+ version: '0'
447
+ - !ruby/object:Gem::Dependency
448
+ name: selenium-webdriver
449
+ requirement: !ruby/object:Gem::Requirement
450
+ requirements:
451
+ - - ">="
452
+ - !ruby/object:Gem::Version
453
+ version: '0'
454
+ type: :development
455
+ prerelease: false
456
+ version_requirements: !ruby/object:Gem::Requirement
457
+ requirements:
458
+ - - ">="
459
+ - !ruby/object:Gem::Version
460
+ version: '0'
461
+ - !ruby/object:Gem::Dependency
462
+ name: poltergeist
463
+ requirement: !ruby/object:Gem::Requirement
464
+ requirements:
465
+ - - ">="
466
+ - !ruby/object:Gem::Version
467
+ version: '0'
468
+ type: :development
469
+ prerelease: false
470
+ version_requirements: !ruby/object:Gem::Requirement
471
+ requirements:
472
+ - - ">="
473
+ - !ruby/object:Gem::Version
474
+ version: '0'
475
+ - !ruby/object:Gem::Dependency
476
+ name: spring-commands-rspec
477
+ requirement: !ruby/object:Gem::Requirement
478
+ requirements:
479
+ - - ">="
480
+ - !ruby/object:Gem::Version
481
+ version: '0'
482
+ type: :development
483
+ prerelease: false
484
+ version_requirements: !ruby/object:Gem::Requirement
485
+ requirements:
486
+ - - ">="
487
+ - !ruby/object:Gem::Version
488
+ version: '0'
489
+ - !ruby/object:Gem::Dependency
490
+ name: chromedriver-helper
491
+ requirement: !ruby/object:Gem::Requirement
492
+ requirements:
493
+ - - ">="
494
+ - !ruby/object:Gem::Version
495
+ version: '0'
496
+ type: :development
497
+ prerelease: false
498
+ version_requirements: !ruby/object:Gem::Requirement
499
+ requirements:
500
+ - - ">="
501
+ - !ruby/object:Gem::Version
502
+ version: '0'
503
+ - !ruby/object:Gem::Dependency
504
+ name: rspec-steps
505
+ requirement: !ruby/object:Gem::Requirement
506
+ requirements:
507
+ - - ">="
508
+ - !ruby/object:Gem::Version
509
+ version: '0'
510
+ type: :development
511
+ prerelease: false
512
+ version_requirements: !ruby/object:Gem::Requirement
513
+ requirements:
514
+ - - ">="
515
+ - !ruby/object:Gem::Version
516
+ version: '0'
517
+ - !ruby/object:Gem::Dependency
518
+ name: parser
519
+ requirement: !ruby/object:Gem::Requirement
520
+ requirements:
521
+ - - ">="
522
+ - !ruby/object:Gem::Version
523
+ version: '0'
524
+ type: :development
525
+ prerelease: false
526
+ version_requirements: !ruby/object:Gem::Requirement
527
+ requirements:
528
+ - - ">="
529
+ - !ruby/object:Gem::Version
530
+ version: '0'
531
+ - !ruby/object:Gem::Dependency
532
+ name: unparser
533
+ requirement: !ruby/object:Gem::Requirement
534
+ requirements:
535
+ - - ">="
536
+ - !ruby/object:Gem::Version
537
+ version: '0'
538
+ type: :development
539
+ prerelease: false
540
+ version_requirements: !ruby/object:Gem::Requirement
541
+ requirements:
542
+ - - ">="
543
+ - !ruby/object:Gem::Version
544
+ version: '0'
545
+ - !ruby/object:Gem::Dependency
546
+ name: jquery-rails
547
+ requirement: !ruby/object:Gem::Requirement
548
+ requirements:
549
+ - - ">="
550
+ - !ruby/object:Gem::Version
551
+ version: '0'
552
+ type: :development
553
+ prerelease: false
554
+ version_requirements: !ruby/object:Gem::Requirement
555
+ requirements:
556
+ - - ">="
557
+ - !ruby/object:Gem::Version
558
+ version: '0'
559
+ - !ruby/object:Gem::Dependency
560
+ name: pry-byebug
561
+ requirement: !ruby/object:Gem::Requirement
562
+ requirements:
563
+ - - ">="
564
+ - !ruby/object:Gem::Version
565
+ version: '0'
566
+ type: :development
567
+ prerelease: false
568
+ version_requirements: !ruby/object:Gem::Requirement
569
+ requirements:
570
+ - - ">="
571
+ - !ruby/object:Gem::Version
572
+ version: '0'
573
+ description: HyperMesh gives your HyperReact components CRUD access to your ActiveRecord
574
+ models on the client, using the the standard ActiveRecord API. HyperMesh also implements
575
+ push notifications (via a number of possible technologies) so changes to records
576
+ on the server are dynamically updated on all authorised clients.
577
+ email:
578
+ - mitch@catprint.com
579
+ executables:
580
+ - console
581
+ - setup
582
+ extensions: []
583
+ extra_rdoc_files: []
584
+ files:
585
+ - ".gitignore"
586
+ - ".rspec"
587
+ - ".rubocop.yml"
588
+ - ".travis.yml"
589
+ - CODE_OF_CONDUCT.md
590
+ - Gemfile
591
+ - LICENSE.txt
592
+ - README.md
593
+ - Rakefile
594
+ - app/controllers/reactive_record/application_controller.rb
595
+ - app/controllers/reactive_record/reactive_record_controller.rb
596
+ - bin/console
597
+ - bin/setup
598
+ - codeship.database.yml
599
+ - config/routes.rb
600
+ - docs/action_cable_quickstart.md
601
+ - docs/authorization-policies.md
602
+ - docs/client_side_scoping.md
603
+ - docs/pusher_quickstart.md
604
+ - docs/simple_poller_quickstart.md
605
+ - docs/todo-example.md
606
+ - docs/words-example.md
607
+ - examples/action-cable/.gitignore
608
+ - examples/action-cable/Gemfile
609
+ - examples/action-cable/Gemfile.lock
610
+ - examples/action-cable/README.md
611
+ - examples/action-cable/Rakefile
612
+ - examples/action-cable/app/assets/config/manifest.js
613
+ - examples/action-cable/app/assets/javascripts/application.js
614
+ - examples/action-cable/app/assets/stylesheets/application.css
615
+ - examples/action-cable/app/controllers/application_controller.rb
616
+ - examples/action-cable/app/controllers/test_controller.rb
617
+ - examples/action-cable/app/models/models.rb
618
+ - examples/action-cable/app/models/public/application_record.rb
619
+ - examples/action-cable/app/models/public/word.rb
620
+ - examples/action-cable/app/policies/application_policy.rb
621
+ - examples/action-cable/app/views/components.rb
622
+ - examples/action-cable/app/views/components/app.rb
623
+ - examples/action-cable/app/views/layouts/application.html.erb
624
+ - examples/action-cable/app/views/layouts/mailer.html.erb
625
+ - examples/action-cable/app/views/layouts/mailer.text.erb
626
+ - examples/action-cable/bin/bundle
627
+ - examples/action-cable/bin/rails
628
+ - examples/action-cable/bin/rake
629
+ - examples/action-cable/bin/setup
630
+ - examples/action-cable/bin/spring
631
+ - examples/action-cable/bin/update
632
+ - examples/action-cable/config.ru
633
+ - examples/action-cable/config/application.rb
634
+ - examples/action-cable/config/boot.rb
635
+ - examples/action-cable/config/cable.yml
636
+ - examples/action-cable/config/database.yml
637
+ - examples/action-cable/config/environment.rb
638
+ - examples/action-cable/config/environments/development.rb
639
+ - examples/action-cable/config/environments/production.rb
640
+ - examples/action-cable/config/environments/test.rb
641
+ - examples/action-cable/config/initializers/application_controller_renderer.rb
642
+ - examples/action-cable/config/initializers/assets.rb
643
+ - examples/action-cable/config/initializers/backtrace_silencers.rb
644
+ - examples/action-cable/config/initializers/cookies_serializer.rb
645
+ - examples/action-cable/config/initializers/filter_parameter_logging.rb
646
+ - examples/action-cable/config/initializers/inflections.rb
647
+ - examples/action-cable/config/initializers/mime_types.rb
648
+ - examples/action-cable/config/initializers/new_framework_defaults.rb
649
+ - examples/action-cable/config/initializers/session_store.rb
650
+ - examples/action-cable/config/initializers/synchromesh.rb
651
+ - examples/action-cable/config/initializers/wrap_parameters.rb
652
+ - examples/action-cable/config/locales/en.yml
653
+ - examples/action-cable/config/puma.rb
654
+ - examples/action-cable/config/routes.rb
655
+ - examples/action-cable/config/secrets.yml
656
+ - examples/action-cable/config/spring.rb
657
+ - examples/action-cable/db/migrate/20160921223808_create_words.rb
658
+ - examples/action-cable/db/schema.rb
659
+ - examples/action-cable/log/.keep
660
+ - examples/action-cable/public/404.html
661
+ - examples/action-cable/public/422.html
662
+ - examples/action-cable/public/500.html
663
+ - examples/action-cable/public/apple-touch-icon-precomposed.png
664
+ - examples/action-cable/public/apple-touch-icon.png
665
+ - examples/action-cable/public/favicon.ico
666
+ - examples/action-cable/public/robots.txt
667
+ - examples/action-cable/rails_cache_dir2/C91/480/synchromesh_active_connections
668
+ - examples/action-cable/tmp/.keep
669
+ - examples/action-cable/vendor/assets/javascripts/.keep
670
+ - examples/action-cable/vendor/assets/stylesheets/.keep
671
+ - examples/simple-poller/.gitignore
672
+ - examples/simple-poller/Gemfile
673
+ - examples/simple-poller/Gemfile.lock
674
+ - examples/simple-poller/README.md
675
+ - examples/simple-poller/Rakefile
676
+ - examples/simple-poller/app/assets/config/manifest.js
677
+ - examples/simple-poller/app/assets/images/.keep
678
+ - examples/simple-poller/app/assets/javascripts/application.js
679
+ - examples/simple-poller/app/assets/javascripts/channels/.keep
680
+ - examples/simple-poller/app/assets/stylesheets/application.css
681
+ - examples/simple-poller/app/channels/application_cable/channel.rb
682
+ - examples/simple-poller/app/channels/application_cable/connection.rb
683
+ - examples/simple-poller/app/controllers/application_controller.rb
684
+ - examples/simple-poller/app/controllers/concerns/.keep
685
+ - examples/simple-poller/app/controllers/test_controller.rb
686
+ - examples/simple-poller/app/helpers/application_helper.rb
687
+ - examples/simple-poller/app/jobs/application_job.rb
688
+ - examples/simple-poller/app/mailers/application_mailer.rb
689
+ - examples/simple-poller/app/models/concerns/.keep
690
+ - examples/simple-poller/app/models/models.rb
691
+ - examples/simple-poller/app/models/public/.keep
692
+ - examples/simple-poller/app/models/public/application_record.rb
693
+ - examples/simple-poller/app/models/public/word.rb
694
+ - examples/simple-poller/app/policies/application_policy.rb
695
+ - examples/simple-poller/app/views/components.rb
696
+ - examples/simple-poller/app/views/components/.keep
697
+ - examples/simple-poller/app/views/components/app.rb
698
+ - examples/simple-poller/app/views/layouts/application.html.erb
699
+ - examples/simple-poller/app/views/layouts/mailer.html.erb
700
+ - examples/simple-poller/app/views/layouts/mailer.text.erb
701
+ - examples/simple-poller/bin/bundle
702
+ - examples/simple-poller/bin/rails
703
+ - examples/simple-poller/bin/rake
704
+ - examples/simple-poller/bin/setup
705
+ - examples/simple-poller/bin/spring
706
+ - examples/simple-poller/bin/update
707
+ - examples/simple-poller/config.ru
708
+ - examples/simple-poller/config/application.rb
709
+ - examples/simple-poller/config/boot.rb
710
+ - examples/simple-poller/config/cable.yml
711
+ - examples/simple-poller/config/database.yml
712
+ - examples/simple-poller/config/environment.rb
713
+ - examples/simple-poller/config/environments/development.rb
714
+ - examples/simple-poller/config/environments/production.rb
715
+ - examples/simple-poller/config/environments/test.rb
716
+ - examples/simple-poller/config/initializers/application_controller_renderer.rb
717
+ - examples/simple-poller/config/initializers/assets.rb
718
+ - examples/simple-poller/config/initializers/backtrace_silencers.rb
719
+ - examples/simple-poller/config/initializers/cookies_serializer.rb
720
+ - examples/simple-poller/config/initializers/filter_parameter_logging.rb
721
+ - examples/simple-poller/config/initializers/inflections.rb
722
+ - examples/simple-poller/config/initializers/mime_types.rb
723
+ - examples/simple-poller/config/initializers/new_framework_defaults.rb
724
+ - examples/simple-poller/config/initializers/session_store.rb
725
+ - examples/simple-poller/config/initializers/synchromesh.rb
726
+ - examples/simple-poller/config/initializers/wrap_parameters.rb
727
+ - examples/simple-poller/config/locales/en.yml
728
+ - examples/simple-poller/config/puma.rb
729
+ - examples/simple-poller/config/routes.rb
730
+ - examples/simple-poller/config/secrets.yml
731
+ - examples/simple-poller/config/spring.rb
732
+ - examples/simple-poller/db/migrate/20161013220135_create_words.rb
733
+ - examples/simple-poller/db/schema.rb
734
+ - examples/simple-poller/db/seeds.rb
735
+ - examples/simple-poller/lib/assets/.keep
736
+ - examples/simple-poller/lib/tasks/.keep
737
+ - examples/simple-poller/log/.keep
738
+ - examples/simple-poller/public/404.html
739
+ - examples/simple-poller/public/422.html
740
+ - examples/simple-poller/public/500.html
741
+ - examples/simple-poller/public/apple-touch-icon-precomposed.png
742
+ - examples/simple-poller/public/apple-touch-icon.png
743
+ - examples/simple-poller/public/favicon.ico
744
+ - examples/simple-poller/public/robots.txt
745
+ - examples/simple-poller/test/controllers/.keep
746
+ - examples/simple-poller/test/fixtures/.keep
747
+ - examples/simple-poller/test/fixtures/files/.keep
748
+ - examples/simple-poller/test/fixtures/words.yml
749
+ - examples/simple-poller/test/helpers/.keep
750
+ - examples/simple-poller/test/integration/.keep
751
+ - examples/simple-poller/test/mailers/.keep
752
+ - examples/simple-poller/test/models/.keep
753
+ - examples/simple-poller/test/models/word_test.rb
754
+ - examples/simple-poller/test/test_helper.rb
755
+ - examples/simple-poller/tmp/.keep
756
+ - examples/simple-poller/vendor/assets/javascripts/.keep
757
+ - examples/simple-poller/vendor/assets/stylesheets/.keep
758
+ - examples/words/.gitignore
759
+ - examples/words/Gemfile
760
+ - examples/words/Gemfile.lock
761
+ - examples/words/README.md
762
+ - examples/words/Rakefile
763
+ - examples/words/app/assets/config/manifest.js
764
+ - examples/words/app/assets/javascripts/application.js
765
+ - examples/words/app/assets/stylesheets/application.css
766
+ - examples/words/app/controllers/application_controller.rb
767
+ - examples/words/app/controllers/test_controller.rb
768
+ - examples/words/app/models/models.rb
769
+ - examples/words/app/models/public/application_record.rb
770
+ - examples/words/app/models/public/word.rb
771
+ - examples/words/app/policies/application_policy.rb
772
+ - examples/words/app/views/components.rb
773
+ - examples/words/app/views/components/app.rb
774
+ - examples/words/app/views/layouts/application.html.erb
775
+ - examples/words/app/views/layouts/mailer.html.erb
776
+ - examples/words/app/views/layouts/mailer.text.erb
777
+ - examples/words/bin/bundle
778
+ - examples/words/bin/rails
779
+ - examples/words/bin/rake
780
+ - examples/words/bin/setup
781
+ - examples/words/bin/spring
782
+ - examples/words/bin/update
783
+ - examples/words/config.ru
784
+ - examples/words/config/application.rb
785
+ - examples/words/config/boot.rb
786
+ - examples/words/config/cable.yml
787
+ - examples/words/config/database.yml
788
+ - examples/words/config/environment.rb
789
+ - examples/words/config/environments/development.rb
790
+ - examples/words/config/environments/production.rb
791
+ - examples/words/config/environments/test.rb
792
+ - examples/words/config/initializers/application_controller_renderer.rb
793
+ - examples/words/config/initializers/assets.rb
794
+ - examples/words/config/initializers/backtrace_silencers.rb
795
+ - examples/words/config/initializers/cookies_serializer.rb
796
+ - examples/words/config/initializers/filter_parameter_logging.rb
797
+ - examples/words/config/initializers/inflections.rb
798
+ - examples/words/config/initializers/mime_types.rb
799
+ - examples/words/config/initializers/new_framework_defaults.rb
800
+ - examples/words/config/initializers/session_store.rb
801
+ - examples/words/config/initializers/synchromesh.rb
802
+ - examples/words/config/initializers/wrap_parameters.rb
803
+ - examples/words/config/locales/en.yml
804
+ - examples/words/config/puma.rb
805
+ - examples/words/config/routes.rb
806
+ - examples/words/config/secrets.yml
807
+ - examples/words/config/spring.rb
808
+ - examples/words/db/migrate/20160921223808_create_words.rb
809
+ - examples/words/db/schema.rb
810
+ - examples/words/log/.keep
811
+ - examples/words/public/404.html
812
+ - examples/words/public/422.html
813
+ - examples/words/public/500.html
814
+ - examples/words/public/apple-touch-icon-precomposed.png
815
+ - examples/words/public/apple-touch-icon.png
816
+ - examples/words/public/favicon.ico
817
+ - examples/words/public/robots.txt
818
+ - examples/words/tmp/.keep
819
+ - examples/words/vendor/assets/javascripts/.keep
820
+ - examples/words/vendor/assets/stylesheets/.keep
821
+ - hyper-mesh.gemspec
822
+ - lib/active_record_base.rb
823
+ - lib/enumerable/pluck.rb
824
+ - lib/hyper-mesh.rb
825
+ - lib/hypermesh/version.rb
826
+ - lib/opal/equality_patches.rb
827
+ - lib/opal/parse_patch.rb
828
+ - lib/opal/set_patches.rb
829
+ - lib/reactive_record/active_record/aggregations.rb
830
+ - lib/reactive_record/active_record/associations.rb
831
+ - lib/reactive_record/active_record/base.rb
832
+ - lib/reactive_record/active_record/class_methods.rb
833
+ - lib/reactive_record/active_record/error.rb
834
+ - lib/reactive_record/active_record/instance_methods.rb
835
+ - lib/reactive_record/active_record/public_columns_hash.rb
836
+ - lib/reactive_record/active_record/reactive_record/base.rb
837
+ - lib/reactive_record/active_record/reactive_record/collection.rb
838
+ - lib/reactive_record/active_record/reactive_record/column_types.rb
839
+ - lib/reactive_record/active_record/reactive_record/dummy_value.rb
840
+ - lib/reactive_record/active_record/reactive_record/isomorphic_base.rb
841
+ - lib/reactive_record/active_record/reactive_record/reactive_set_relationship_helpers.rb
842
+ - lib/reactive_record/active_record/reactive_record/scoped_collection.rb
843
+ - lib/reactive_record/active_record/reactive_record/unscoped_collection.rb
844
+ - lib/reactive_record/active_record/reactive_record/while_loading.rb
845
+ - lib/reactive_record/engine.rb
846
+ - lib/reactive_record/interval.rb
847
+ - lib/reactive_record/permissions.rb
848
+ - lib/reactive_record/pry.rb
849
+ - lib/reactive_record/reactive_scope.rb
850
+ - lib/reactive_record/scope_description.rb
851
+ - lib/reactive_record/serializers.rb
852
+ - lib/reactive_record/server_data_cache.rb
853
+ - lib/reactive_record/version.rb
854
+ - lib/sources/hyper-mesh/pusher.js
855
+ - lib/synchromesh/action_cable.rb
856
+ - lib/synchromesh/client_drivers.rb
857
+ - lib/synchromesh/configuration.rb
858
+ - lib/synchromesh/connection.rb
859
+ - lib/synchromesh/policy.rb
860
+ - lib/synchromesh/reactive_record/permission_patches.rb
861
+ - lib/synchromesh/synchromesh.rb
862
+ - lib/synchromesh/synchromesh_controller.rb
863
+ - logo.jpg
864
+ - path_release_steps.md
865
+ - reactive_record_test_app/Gemfile
866
+ - reactive_record_test_app/Gemfile.lock
867
+ - reactive_record_test_app/README.rdoc
868
+ - reactive_record_test_app/Rakefile
869
+ - reactive_record_test_app/app/assets/javascripts/application.rb
870
+ - reactive_record_test_app/app/assets/javascripts/components/another_component.rb
871
+ - reactive_record_test_app/app/assets/javascripts/components/empty_component.rb
872
+ - reactive_record_test_app/app/assets/javascripts/components/todo_item_component.js.rb
873
+ - reactive_record_test_app/app/assets/javascripts/components/todos_component.js.rb
874
+ - reactive_record_test_app/app/assets/javascripts/components/todos_main_component.rb
875
+ - reactive_record_test_app/app/assets/javascripts/react_js_test_only.js
876
+ - reactive_record_test_app/app/assets/javascripts/reactive_record_config.js
877
+ - reactive_record_test_app/app/assets/javascripts/spec/reactive_record_xspec.js.rb
878
+ - reactive_record_test_app/app/assets/stylesheets/application.css
879
+ - reactive_record_test_app/app/controllers/application_controller.rb
880
+ - reactive_record_test_app/app/controllers/home_controller.rb
881
+ - reactive_record_test_app/app/controllers/test_controller.rb
882
+ - reactive_record_test_app/app/helpers/application_helper.rb
883
+ - reactive_record_test_app/app/mailers/.gitkeep
884
+ - reactive_record_test_app/app/models/.gitkeep
885
+ - reactive_record_test_app/app/policies/application_policy.rb
886
+ - reactive_record_test_app/app/views/components.rb
887
+ - reactive_record_test_app/app/views/components/test.rb
888
+ - reactive_record_test_app/app/views/home/index.html.erb
889
+ - reactive_record_test_app/app/views/layouts/application.html.erb
890
+ - reactive_record_test_app/app/views/models.rb
891
+ - reactive_record_test_app/app/views/models/address.rb
892
+ - reactive_record_test_app/app/views/models/comment.rb
893
+ - reactive_record_test_app/app/views/models/todo_item.rb
894
+ - reactive_record_test_app/app/views/models/user.rb
895
+ - reactive_record_test_app/config.ru
896
+ - reactive_record_test_app/config/application.rb
897
+ - reactive_record_test_app/config/boot.rb
898
+ - reactive_record_test_app/config/database.yml
899
+ - reactive_record_test_app/config/environment.rb
900
+ - reactive_record_test_app/config/environments/development.rb
901
+ - reactive_record_test_app/config/environments/production.rb
902
+ - reactive_record_test_app/config/environments/test.rb
903
+ - reactive_record_test_app/config/initializers/backtrace_silencers.rb
904
+ - reactive_record_test_app/config/initializers/inflections.rb
905
+ - reactive_record_test_app/config/initializers/mime_types.rb
906
+ - reactive_record_test_app/config/initializers/secret_token.rb
907
+ - reactive_record_test_app/config/initializers/session_store.rb
908
+ - reactive_record_test_app/config/initializers/wrap_parameters.rb
909
+ - reactive_record_test_app/config/locales/en.yml
910
+ - reactive_record_test_app/config/routes.rb
911
+ - reactive_record_test_app/db/migrate/20150617002932_create_todo_items.rb
912
+ - reactive_record_test_app/db/migrate/20150617134028_create_users.rb
913
+ - reactive_record_test_app/db/migrate/20150729195556_add_address_to_user.rb
914
+ - reactive_record_test_app/db/migrate/20150826142045_create_comments.rb
915
+ - reactive_record_test_app/db/migrate/20150828172008_add_single_comment_to_todo_item.rb
916
+ - reactive_record_test_app/db/migrate/20150908184118_add_address_id_to_user.rb
917
+ - reactive_record_test_app/db/migrate/20150917220236_add_second_address_to_user.rb
918
+ - reactive_record_test_app/db/migrate/20151009000111_add_test_data_attributes_to_user.rb
919
+ - reactive_record_test_app/db/migrate/20160129182544_add_test_enum_to_user.rb
920
+ - reactive_record_test_app/db/schema.rb
921
+ - reactive_record_test_app/db/seeds.rb
922
+ - reactive_record_test_app/public/404.html
923
+ - reactive_record_test_app/public/422.html
924
+ - reactive_record_test_app/public/500.html
925
+ - reactive_record_test_app/public/favicon.ico
926
+ - reactive_record_test_app/script/rails
927
+ - reactive_record_test_app/spec-opal/active-record/aggregations_spec.rb
928
+ - reactive_record_test_app/spec-opal/active-record/associations_spec.rb
929
+ - reactive_record_test_app/spec-opal/active-record/base_spec.rb
930
+ - reactive_record_test_app/spec-opal/active-record/dummy_value_spec.rb
931
+ - reactive_record_test_app/spec-opal/active-record/edge_cases_spec.rb
932
+ - reactive_record_test_app/spec-opal/active-record/enum_spec.rb
933
+ - reactive_record_test_app/spec-opal/active-record/instance_methods_spec.rb
934
+ - reactive_record_test_app/spec-opal/active-record/non_ar_aggregations_spec.rb
935
+ - reactive_record_test_app/spec-opal/active-record/permissions_spec.rb
936
+ - reactive_record_test_app/spec-opal/active-record/prerendering_spec.rb
937
+ - reactive_record_test_app/spec-opal/active-record/reactive_record_load_spec.rb
938
+ - reactive_record_test_app/spec-opal/active-record/rendering_spec.rb
939
+ - reactive_record_test_app/spec-opal/active-record/save_spec.rb
940
+ - reactive_record_test_app/spec-opal/active-record/scope_spec.rb
941
+ - reactive_record_test_app/spec-opal/active-record/update_aggregations_spec.rb
942
+ - reactive_record_test_app/spec-opal/active-record/update_attributes_spec.rb
943
+ - reactive_record_test_app/spec-opal/active-record/virtual_methods_spec.rb
944
+ - reactive_record_test_app/spec-opal/index.html.erb
945
+ - reactive_record_test_app/spec-opal/spec_helper.js.rb
946
+ - reactive_record_test_app/spec-opal/vendor/es5-shim.min.js
947
+ - reactive_record_test_app/spec_dont_run/README.md
948
+ - reactive_record_test_app/spec_dont_run/moved_to_main_spec_dir/zzzmany_to_many_spec_moved_to_main_suite.rb
949
+ - reactive_record_test_app/spec_dont_run/moved_to_main_spec_dir/zzzrevert_record_spec_moved.rb
950
+ - reactive_record_test_app/spec_dont_run/moved_to_main_spec_dir/zzzupdate_associations_spec_moved.rb
951
+ - reactive_record_test_app/spec_dont_run/moved_to_main_spec_dir/zzzupdate_scopes_movedspec.rb
952
+ - remote.md
953
+ - spec/bin/firebug-2.0.13-fx.xpi
954
+ - spec/component_helpers_xspec.rb
955
+ - spec/factories/child_model.rb
956
+ - spec/factories/comment.rb
957
+ - spec/factories/test_models.rb
958
+ - spec/factories/todo.rb
959
+ - spec/factories/user.rb
960
+ - spec/reactive_record/edge_cases_spec.rb
961
+ - spec/reactive_record/factory.rb
962
+ - spec/reactive_record/many_to_many_spec.rb
963
+ - spec/reactive_record/play.rb
964
+ - spec/reactive_record/pry_rescue_xspec.rb
965
+ - spec/reactive_record/revert_spec.rb
966
+ - spec/reactive_record/update_associations_spec.rb
967
+ - spec/reactive_record/update_scopes_spec.rb
968
+ - spec/spec_helper.rb
969
+ - spec/support/component_helpers.rb
970
+ - spec/synchromesh/column_types/column_type_spec.rb
971
+ - spec/synchromesh/connection_spec.rb
972
+ - spec/synchromesh/crud_access_regulation/broadcast_controls_access_spec.rb
973
+ - spec/synchromesh/crud_access_regulation/model_policies_spec.rb
974
+ - spec/synchromesh/examples/dictionary.rb
975
+ - spec/synchromesh/examples/dictionary_with_client_scopes.rb
976
+ - spec/synchromesh/examples/random_examples.rb
977
+ - spec/synchromesh/examples/scoped_todos_spec.rb
978
+ - spec/synchromesh/integration/authorization_spec.rb
979
+ - spec/synchromesh/integration/default_scope_spec.rb
980
+ - spec/synchromesh/integration/has_many_through_spec.rb
981
+ - spec/synchromesh/integration/relationships_spec.rb
982
+ - spec/synchromesh/integration/scope_spec.rb
983
+ - spec/synchromesh/integration/synchromesh_spec.rb
984
+ - spec/synchromesh/integration/test_components.rb
985
+ - spec/synchromesh/integration/transports_spec.rb
986
+ - spec/synchromesh/policies/auto_connect_spec.rb
987
+ - spec/synchromesh/policies/auto_loader_spec.rb
988
+ - spec/synchromesh/policies/policy_methods_spec.rb
989
+ - spec/synchromesh/policies/regulate_all_broadcasts_spec.rb
990
+ - spec/synchromesh/policies/regulate_broadcast_spec.rb
991
+ - spec/synchromesh/policies/regulate_class_connection_spec.rb
992
+ - spec/synchromesh/policies/regulate_instance_connection_spec.rb
993
+ - spec/test_app/Gemfile
994
+ - spec/test_app/Gemfile.lock
995
+ - spec/test_app/Rakefile
996
+ - spec/test_app/app/assets/javascripts/application.js
997
+ - spec/test_app/app/assets/stylesheets/application.css
998
+ - spec/test_app/app/controllers/application_controller.rb
999
+ - spec/test_app/app/controllers/test_controller.rb
1000
+ - spec/test_app/app/models/_react_public_models.rb
1001
+ - spec/test_app/app/models/public/address.rb
1002
+ - spec/test_app/app/models/public/child_model.rb
1003
+ - spec/test_app/app/models/public/comment.rb
1004
+ - spec/test_app/app/models/public/test_model.rb
1005
+ - spec/test_app/app/models/public/todo.rb
1006
+ - spec/test_app/app/models/public/todo_item.rb
1007
+ - spec/test_app/app/models/public/user.rb
1008
+ - spec/test_app/app/policies/auto_loader_test_classa_policy.rb
1009
+ - spec/test_app/app/policies/auto_loader_test_classb_policy.rb
1010
+ - spec/test_app/app/policies/auto_loader_test_classc_policy.rb
1011
+ - spec/test_app/app/policies/auto_loader_test_classd_policy.rb
1012
+ - spec/test_app/app/views/components.rb
1013
+ - spec/test_app/app/views/components/show.rb
1014
+ - spec/test_app/app/views/layouts/application.html.erb
1015
+ - spec/test_app/bin/bundle
1016
+ - spec/test_app/bin/rails
1017
+ - spec/test_app/bin/rake
1018
+ - spec/test_app/bin/setup
1019
+ - spec/test_app/config.ru
1020
+ - spec/test_app/config/application.rb
1021
+ - spec/test_app/config/boot.rb
1022
+ - spec/test_app/config/cable.yml
1023
+ - spec/test_app/config/database.yml
1024
+ - spec/test_app/config/environment.rb
1025
+ - spec/test_app/config/environments/development.rb
1026
+ - spec/test_app/config/environments/production.rb
1027
+ - spec/test_app/config/environments/test.rb
1028
+ - spec/test_app/config/initializers/assets.rb
1029
+ - spec/test_app/config/initializers/backtrace_silencers.rb
1030
+ - spec/test_app/config/initializers/cookies_serializer.rb
1031
+ - spec/test_app/config/initializers/filter_parameter_logging.rb
1032
+ - spec/test_app/config/initializers/inflections.rb
1033
+ - spec/test_app/config/initializers/mime_types.rb
1034
+ - spec/test_app/config/initializers/session_store.rb
1035
+ - spec/test_app/config/initializers/synchromesh.rb
1036
+ - spec/test_app/config/initializers/wrap_parameters.rb
1037
+ - spec/test_app/config/locales/en.yml
1038
+ - spec/test_app/config/routes.rb
1039
+ - spec/test_app/config/secrets.yml
1040
+ - spec/test_app/db/development.sqlite3
1041
+ - spec/test_app/db/migrate/20160731182106_create_test_models.rb
1042
+ - spec/test_app/db/schema.rb
1043
+ - spec/test_app/db/seeds.rb
1044
+ - spec/test_app/lib/assets/.keep
1045
+ - spec/test_app/log/.keep
1046
+ - spec/test_app/public/404.html
1047
+ - spec/test_app/public/422.html
1048
+ - spec/test_app/public/500.html
1049
+ - spec/test_app/public/favicon.ico
1050
+ - spec/vendor/es5-shim.min.js
1051
+ - terminal.md
1052
+ homepage: https://github.com/reactive-ruby/hyper-mesh
1053
+ licenses:
1054
+ - MIT
1055
+ metadata: {}
1056
+ post_install_message:
1057
+ rdoc_options: []
1058
+ require_paths:
1059
+ - lib
1060
+ required_ruby_version: !ruby/object:Gem::Requirement
1061
+ requirements:
1062
+ - - ">="
1063
+ - !ruby/object:Gem::Version
1064
+ version: '0'
1065
+ required_rubygems_version: !ruby/object:Gem::Requirement
1066
+ requirements:
1067
+ - - ">="
1068
+ - !ruby/object:Gem::Version
1069
+ version: '0'
1070
+ requirements: []
1071
+ rubyforge_project:
1072
+ rubygems_version: 2.5.1
1073
+ signing_key:
1074
+ specification_version: 4
1075
+ summary: React based CRUD access and Synchronization of active record models across
1076
+ multiple clients
1077
+ test_files:
1078
+ - spec/bin/firebug-2.0.13-fx.xpi
1079
+ - spec/component_helpers_xspec.rb
1080
+ - spec/factories/child_model.rb
1081
+ - spec/factories/comment.rb
1082
+ - spec/factories/test_models.rb
1083
+ - spec/factories/todo.rb
1084
+ - spec/factories/user.rb
1085
+ - spec/reactive_record/edge_cases_spec.rb
1086
+ - spec/reactive_record/factory.rb
1087
+ - spec/reactive_record/many_to_many_spec.rb
1088
+ - spec/reactive_record/play.rb
1089
+ - spec/reactive_record/pry_rescue_xspec.rb
1090
+ - spec/reactive_record/revert_spec.rb
1091
+ - spec/reactive_record/update_associations_spec.rb
1092
+ - spec/reactive_record/update_scopes_spec.rb
1093
+ - spec/spec_helper.rb
1094
+ - spec/support/component_helpers.rb
1095
+ - spec/synchromesh/column_types/column_type_spec.rb
1096
+ - spec/synchromesh/connection_spec.rb
1097
+ - spec/synchromesh/crud_access_regulation/broadcast_controls_access_spec.rb
1098
+ - spec/synchromesh/crud_access_regulation/model_policies_spec.rb
1099
+ - spec/synchromesh/examples/dictionary.rb
1100
+ - spec/synchromesh/examples/dictionary_with_client_scopes.rb
1101
+ - spec/synchromesh/examples/random_examples.rb
1102
+ - spec/synchromesh/examples/scoped_todos_spec.rb
1103
+ - spec/synchromesh/integration/authorization_spec.rb
1104
+ - spec/synchromesh/integration/default_scope_spec.rb
1105
+ - spec/synchromesh/integration/has_many_through_spec.rb
1106
+ - spec/synchromesh/integration/relationships_spec.rb
1107
+ - spec/synchromesh/integration/scope_spec.rb
1108
+ - spec/synchromesh/integration/synchromesh_spec.rb
1109
+ - spec/synchromesh/integration/test_components.rb
1110
+ - spec/synchromesh/integration/transports_spec.rb
1111
+ - spec/synchromesh/policies/auto_connect_spec.rb
1112
+ - spec/synchromesh/policies/auto_loader_spec.rb
1113
+ - spec/synchromesh/policies/policy_methods_spec.rb
1114
+ - spec/synchromesh/policies/regulate_all_broadcasts_spec.rb
1115
+ - spec/synchromesh/policies/regulate_broadcast_spec.rb
1116
+ - spec/synchromesh/policies/regulate_class_connection_spec.rb
1117
+ - spec/synchromesh/policies/regulate_instance_connection_spec.rb
1118
+ - spec/test_app/Gemfile
1119
+ - spec/test_app/Gemfile.lock
1120
+ - spec/test_app/Rakefile
1121
+ - spec/test_app/app/assets/javascripts/application.js
1122
+ - spec/test_app/app/assets/stylesheets/application.css
1123
+ - spec/test_app/app/controllers/application_controller.rb
1124
+ - spec/test_app/app/controllers/test_controller.rb
1125
+ - spec/test_app/app/models/_react_public_models.rb
1126
+ - spec/test_app/app/models/public/address.rb
1127
+ - spec/test_app/app/models/public/child_model.rb
1128
+ - spec/test_app/app/models/public/comment.rb
1129
+ - spec/test_app/app/models/public/test_model.rb
1130
+ - spec/test_app/app/models/public/todo.rb
1131
+ - spec/test_app/app/models/public/todo_item.rb
1132
+ - spec/test_app/app/models/public/user.rb
1133
+ - spec/test_app/app/policies/auto_loader_test_classa_policy.rb
1134
+ - spec/test_app/app/policies/auto_loader_test_classb_policy.rb
1135
+ - spec/test_app/app/policies/auto_loader_test_classc_policy.rb
1136
+ - spec/test_app/app/policies/auto_loader_test_classd_policy.rb
1137
+ - spec/test_app/app/views/components.rb
1138
+ - spec/test_app/app/views/components/show.rb
1139
+ - spec/test_app/app/views/layouts/application.html.erb
1140
+ - spec/test_app/bin/bundle
1141
+ - spec/test_app/bin/rails
1142
+ - spec/test_app/bin/rake
1143
+ - spec/test_app/bin/setup
1144
+ - spec/test_app/config.ru
1145
+ - spec/test_app/config/application.rb
1146
+ - spec/test_app/config/boot.rb
1147
+ - spec/test_app/config/cable.yml
1148
+ - spec/test_app/config/database.yml
1149
+ - spec/test_app/config/environment.rb
1150
+ - spec/test_app/config/environments/development.rb
1151
+ - spec/test_app/config/environments/production.rb
1152
+ - spec/test_app/config/environments/test.rb
1153
+ - spec/test_app/config/initializers/assets.rb
1154
+ - spec/test_app/config/initializers/backtrace_silencers.rb
1155
+ - spec/test_app/config/initializers/cookies_serializer.rb
1156
+ - spec/test_app/config/initializers/filter_parameter_logging.rb
1157
+ - spec/test_app/config/initializers/inflections.rb
1158
+ - spec/test_app/config/initializers/mime_types.rb
1159
+ - spec/test_app/config/initializers/session_store.rb
1160
+ - spec/test_app/config/initializers/synchromesh.rb
1161
+ - spec/test_app/config/initializers/wrap_parameters.rb
1162
+ - spec/test_app/config/locales/en.yml
1163
+ - spec/test_app/config/routes.rb
1164
+ - spec/test_app/config/secrets.yml
1165
+ - spec/test_app/db/development.sqlite3
1166
+ - spec/test_app/db/migrate/20160731182106_create_test_models.rb
1167
+ - spec/test_app/db/schema.rb
1168
+ - spec/test_app/db/seeds.rb
1169
+ - spec/test_app/lib/assets/.keep
1170
+ - spec/test_app/log/.keep
1171
+ - spec/test_app/public/404.html
1172
+ - spec/test_app/public/422.html
1173
+ - spec/test_app/public/500.html
1174
+ - spec/test_app/public/favicon.ico
1175
+ - spec/vendor/es5-shim.min.js