hyper-mesh 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (203) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -0
  3. data/README.md +10 -11
  4. data/docs/activerecord_api.md +55 -39
  5. data/docs/authorization-policies.md +62 -19
  6. data/docs/client_side_scoping.md +1 -1
  7. data/docs/word_game.md +26 -0
  8. data/examples/action-cable-production-mode/.gitignore +21 -0
  9. data/examples/action-cable-production-mode/Gemfile +57 -0
  10. data/examples/action-cable-production-mode/Gemfile.lock +231 -0
  11. data/examples/action-cable-production-mode/README.md +24 -0
  12. data/examples/action-cable-production-mode/Rakefile +6 -0
  13. data/examples/action-cable-production-mode/app/assets/config/manifest.js +3 -0
  14. data/examples/action-cable-production-mode/app/assets/images/.keep +0 -0
  15. data/examples/action-cable-production-mode/app/assets/javascripts/application.js +20 -0
  16. data/examples/action-cable-production-mode/app/assets/javascripts/cable.js +13 -0
  17. data/examples/action-cable-production-mode/app/assets/javascripts/channels/.keep +0 -0
  18. data/examples/action-cable-production-mode/app/assets/stylesheets/application.css +15 -0
  19. data/examples/action-cable-production-mode/app/channels/application_cable/channel.rb +4 -0
  20. data/examples/action-cable-production-mode/app/channels/application_cable/connection.rb +4 -0
  21. data/examples/action-cable-production-mode/app/controllers/application_controller.rb +3 -0
  22. data/examples/action-cable-production-mode/app/controllers/test_controller.rb +5 -0
  23. data/examples/action-cable-production-mode/app/models/models.rb +2 -0
  24. data/examples/action-cable-production-mode/app/models/public/application_record.rb +3 -0
  25. data/examples/action-cable-production-mode/app/models/public/word.rb +2 -0
  26. data/examples/action-cable-production-mode/app/policies/application_policy.rb +14 -0
  27. data/examples/action-cable-production-mode/app/views/components.rb +16 -0
  28. data/examples/action-cable-production-mode/app/views/components/app.rb +18 -0
  29. data/examples/action-cable-production-mode/app/views/layouts/application.html.erb +14 -0
  30. data/examples/action-cable-production-mode/bin/bundle +3 -0
  31. data/examples/action-cable-production-mode/bin/rails +9 -0
  32. data/examples/action-cable-production-mode/bin/rake +9 -0
  33. data/examples/action-cable-production-mode/bin/setup +34 -0
  34. data/examples/action-cable-production-mode/bin/spring +16 -0
  35. data/examples/action-cable-production-mode/bin/update +29 -0
  36. data/examples/action-cable-production-mode/config.ru +5 -0
  37. data/examples/action-cable-production-mode/config/application.rb +18 -0
  38. data/examples/action-cable-production-mode/config/boot.rb +3 -0
  39. data/examples/action-cable-production-mode/config/cable.yml +9 -0
  40. data/examples/action-cable-production-mode/config/database.yml +25 -0
  41. data/examples/action-cable-production-mode/config/environment.rb +5 -0
  42. data/examples/action-cable-production-mode/config/environments/development.rb +56 -0
  43. data/examples/action-cable-production-mode/config/environments/production.rb +89 -0
  44. data/examples/action-cable-production-mode/config/environments/test.rb +42 -0
  45. data/examples/action-cable-production-mode/config/initializers/application_controller_renderer.rb +6 -0
  46. data/examples/action-cable-production-mode/config/initializers/assets.rb +11 -0
  47. data/examples/action-cable-production-mode/config/initializers/backtrace_silencers.rb +7 -0
  48. data/examples/action-cable-production-mode/config/initializers/cookies_serializer.rb +5 -0
  49. data/examples/action-cable-production-mode/config/initializers/filter_parameter_logging.rb +4 -0
  50. data/examples/action-cable-production-mode/config/initializers/hyper_mesh.rb +4 -0
  51. data/examples/action-cable-production-mode/config/initializers/inflections.rb +16 -0
  52. data/examples/action-cable-production-mode/config/initializers/mime_types.rb +4 -0
  53. data/examples/action-cable-production-mode/config/initializers/new_framework_defaults.rb +24 -0
  54. data/examples/action-cable-production-mode/config/initializers/session_store.rb +3 -0
  55. data/examples/action-cable-production-mode/config/initializers/wrap_parameters.rb +14 -0
  56. data/examples/action-cable-production-mode/config/locales/en.yml +23 -0
  57. data/examples/action-cable-production-mode/config/puma.rb +47 -0
  58. data/examples/action-cable-production-mode/config/routes.rb +5 -0
  59. data/examples/action-cable-production-mode/config/secrets.yml +22 -0
  60. data/examples/action-cable-production-mode/config/spring.rb +6 -0
  61. data/examples/action-cable-production-mode/db/migrate/20161114213840_create_words.rb +9 -0
  62. data/examples/action-cable-production-mode/db/schema.rb +34 -0
  63. data/examples/action-cable-production-mode/db/seeds.rb +7 -0
  64. data/examples/action-cable-production-mode/lib/assets/.keep +0 -0
  65. data/examples/action-cable-production-mode/lib/tasks/.keep +0 -0
  66. data/examples/action-cable-production-mode/log/.keep +0 -0
  67. data/examples/action-cable-production-mode/public/404.html +67 -0
  68. data/examples/action-cable-production-mode/public/422.html +67 -0
  69. data/examples/action-cable-production-mode/public/500.html +66 -0
  70. data/examples/action-cable-production-mode/public/apple-touch-icon-precomposed.png +0 -0
  71. data/examples/action-cable-production-mode/public/apple-touch-icon.png +0 -0
  72. data/examples/action-cable-production-mode/public/assets/.sprockets-manifest-3e9abd3ee8ba47c39a55b61ae37ed9e1.json +1 -0
  73. data/examples/action-cable-production-mode/public/assets/application-90043e04e9e784054fd08159fa7aafe5e23d3ffb31584b1bea1e47043c9cfb5a.js +50 -0
  74. data/examples/action-cable-production-mode/public/assets/application-90043e04e9e784054fd08159fa7aafe5e23d3ffb31584b1bea1e47043c9cfb5a.js.gz +0 -0
  75. data/examples/action-cable-production-mode/public/assets/application-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css +0 -0
  76. data/examples/action-cable-production-mode/public/assets/application-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css.gz +0 -0
  77. data/examples/action-cable-production-mode/public/favicon.ico +0 -0
  78. data/examples/action-cable-production-mode/public/robots.txt +5 -0
  79. data/examples/action-cable-production-mode/test/controllers/.keep +0 -0
  80. data/examples/action-cable-production-mode/test/fixtures/.keep +0 -0
  81. data/examples/action-cable-production-mode/test/fixtures/files/.keep +0 -0
  82. data/examples/action-cable-production-mode/test/fixtures/words.yml +7 -0
  83. data/examples/action-cable-production-mode/test/helpers/.keep +0 -0
  84. data/examples/action-cable-production-mode/test/integration/.keep +0 -0
  85. data/examples/action-cable-production-mode/test/mailers/.keep +0 -0
  86. data/examples/action-cable-production-mode/test/models/.keep +0 -0
  87. data/examples/action-cable-production-mode/test/models/word_test.rb +7 -0
  88. data/examples/action-cable-production-mode/test/test_helper.rb +10 -0
  89. data/examples/action-cable-production-mode/tmp/.keep +0 -0
  90. data/examples/action-cable-production-mode/vendor/assets/javascripts/.keep +0 -0
  91. data/examples/action-cable-production-mode/vendor/assets/stylesheets/.keep +0 -0
  92. data/examples/action-cable/app/views/layouts/application.html.erb +1 -1
  93. data/examples/pusher-fake/app/views/layouts/application.html.erb +1 -1
  94. data/examples/pusher/app/views/layouts/application.html.erb +1 -1
  95. data/examples/simple-poller/app/views/layouts/application.html.erb +1 -1
  96. data/examples/word-game/.gitignore +21 -0
  97. data/examples/word-game/Gemfile +57 -0
  98. data/examples/word-game/Gemfile.lock +241 -0
  99. data/examples/word-game/README.md +24 -0
  100. data/examples/word-game/Rakefile +6 -0
  101. data/examples/word-game/app/assets/config/manifest.js +3 -0
  102. data/examples/word-game/app/assets/images/.keep +0 -0
  103. data/examples/word-game/app/assets/javascripts/application.js +20 -0
  104. data/examples/word-game/app/assets/javascripts/cable.js +13 -0
  105. data/examples/word-game/app/assets/javascripts/channels/.keep +0 -0
  106. data/examples/word-game/app/assets/stylesheets/application.css +15 -0
  107. data/examples/word-game/app/channels/application_cable/channel.rb +4 -0
  108. data/examples/word-game/app/channels/application_cable/connection.rb +4 -0
  109. data/examples/word-game/app/controllers/application_controller.rb +3 -0
  110. data/examples/word-game/app/controllers/concerns/.keep +0 -0
  111. data/examples/word-game/app/helpers/application_helper.rb +2 -0
  112. data/examples/word-game/app/jobs/application_job.rb +2 -0
  113. data/examples/word-game/app/mailers/application_mailer.rb +4 -0
  114. data/examples/word-game/app/models/application_record.rb +3 -0
  115. data/examples/word-game/app/models/concerns/.keep +0 -0
  116. data/examples/word-game/app/models/models.rb +2 -0
  117. data/examples/word-game/app/models/public/.keep +0 -0
  118. data/examples/word-game/app/policies/application_policy.rb +14 -0
  119. data/examples/word-game/app/views/components.rb +16 -0
  120. data/examples/word-game/app/views/components/.keep +0 -0
  121. data/examples/word-game/app/views/layouts/application.html.erb +14 -0
  122. data/examples/{action-cable → word-game}/app/views/layouts/mailer.html.erb +0 -0
  123. data/examples/{action-cable → word-game}/app/views/layouts/mailer.text.erb +0 -0
  124. data/examples/word-game/bin/bundle +3 -0
  125. data/examples/word-game/bin/rails +9 -0
  126. data/examples/word-game/bin/rake +9 -0
  127. data/examples/word-game/bin/setup +34 -0
  128. data/examples/word-game/bin/spring +16 -0
  129. data/examples/word-game/bin/update +29 -0
  130. data/examples/word-game/config.ru +5 -0
  131. data/examples/word-game/config/application.rb +20 -0
  132. data/examples/word-game/config/boot.rb +3 -0
  133. data/examples/word-game/config/cable.yml +9 -0
  134. data/examples/word-game/config/database.yml +25 -0
  135. data/examples/word-game/config/environment.rb +5 -0
  136. data/examples/word-game/config/environments/development.rb +56 -0
  137. data/examples/word-game/config/environments/production.rb +86 -0
  138. data/examples/word-game/config/environments/test.rb +42 -0
  139. data/examples/word-game/config/initializers/application_controller_renderer.rb +6 -0
  140. data/examples/word-game/config/initializers/assets.rb +11 -0
  141. data/examples/word-game/config/initializers/backtrace_silencers.rb +7 -0
  142. data/examples/word-game/config/initializers/cookies_serializer.rb +5 -0
  143. data/examples/word-game/config/initializers/filter_parameter_logging.rb +4 -0
  144. data/examples/word-game/config/initializers/hyper_mesh.rb +4 -0
  145. data/examples/word-game/config/initializers/inflections.rb +16 -0
  146. data/examples/word-game/config/initializers/mime_types.rb +4 -0
  147. data/examples/word-game/config/initializers/new_framework_defaults.rb +24 -0
  148. data/examples/word-game/config/initializers/session_store.rb +3 -0
  149. data/examples/word-game/config/initializers/wrap_parameters.rb +14 -0
  150. data/examples/word-game/config/locales/en.yml +23 -0
  151. data/examples/word-game/config/puma.rb +47 -0
  152. data/examples/word-game/config/routes.rb +4 -0
  153. data/examples/word-game/config/secrets.yml +22 -0
  154. data/examples/word-game/config/spring.rb +6 -0
  155. data/examples/word-game/db/seeds.rb +7 -0
  156. data/examples/word-game/lib/assets/.keep +0 -0
  157. data/examples/word-game/lib/tasks/.keep +0 -0
  158. data/examples/word-game/log/.keep +0 -0
  159. data/examples/word-game/public/404.html +67 -0
  160. data/examples/word-game/public/422.html +67 -0
  161. data/examples/word-game/public/500.html +66 -0
  162. data/examples/word-game/public/apple-touch-icon-precomposed.png +0 -0
  163. data/examples/word-game/public/apple-touch-icon.png +0 -0
  164. data/examples/word-game/public/favicon.ico +0 -0
  165. data/examples/word-game/public/robots.txt +5 -0
  166. data/examples/word-game/test/controllers/.keep +0 -0
  167. data/examples/word-game/test/fixtures/.keep +0 -0
  168. data/examples/word-game/test/fixtures/files/.keep +0 -0
  169. data/examples/word-game/test/helpers/.keep +0 -0
  170. data/examples/word-game/test/integration/.keep +0 -0
  171. data/examples/word-game/test/mailers/.keep +0 -0
  172. data/examples/word-game/test/models/.keep +0 -0
  173. data/examples/word-game/test/test_helper.rb +10 -0
  174. data/examples/word-game/tmp/.keep +0 -0
  175. data/examples/word-game/vendor/assets/javascripts/.keep +0 -0
  176. data/examples/word-game/vendor/assets/stylesheets/.keep +0 -0
  177. data/lib/active_record_base.rb +20 -1
  178. data/lib/hyper-mesh.rb +1 -0
  179. data/lib/hypermesh/version.rb +1 -1
  180. data/lib/kernel/itself.rb +5 -0
  181. data/lib/reactive_record/active_record/class_methods.rb +87 -11
  182. data/lib/reactive_record/active_record/instance_methods.rb +4 -2
  183. data/lib/reactive_record/active_record/reactive_record/collection.rb +9 -12
  184. data/lib/reactive_record/active_record/reactive_record/isomorphic_base.rb +52 -52
  185. data/lib/reactive_record/active_record/reactive_record/while_loading.rb +2 -3
  186. data/lib/reactive_record/scope_description.rb +8 -3
  187. data/lib/synchromesh/client_drivers.rb +1 -9
  188. data/lib/synchromesh/connection.rb +2 -2
  189. data/lib/synchromesh/synchromesh.rb +4 -4
  190. data/spec/reactive_record/auto_load_itself_spec.rb +24 -0
  191. data/spec/reactive_record/finder_method_spec.rb +67 -0
  192. data/spec/reactive_record/save_while_loading_spec.rb +44 -0
  193. data/spec/reactive_record/update_associations_spec.rb +0 -1
  194. data/spec/reactive_record/update_scopes_spec.rb +1 -1
  195. data/spec/spec_helper.rb +5 -0
  196. data/spec/synchromesh/examples/random_examples.rb +33 -0
  197. metadata +176 -10
  198. data/examples/pusher-fake/app/views/layouts/mailer.html.erb +0 -13
  199. data/examples/pusher-fake/app/views/layouts/mailer.text.erb +0 -1
  200. data/examples/pusher/app/views/layouts/mailer.html.erb +0 -13
  201. data/examples/pusher/app/views/layouts/mailer.text.erb +0 -1
  202. data/examples/simple-poller/app/views/layouts/mailer.html.erb +0 -13
  203. data/examples/simple-poller/app/views/layouts/mailer.text.erb +0 -1
@@ -2,7 +2,7 @@
2
2
 
3
3
  When the client receives notification that a record has changed HyperMesh finds the set of currently rendered scopes that might be effected, and requests them to be updated from the server.
4
4
 
5
- On the server scopes are a useful way to structure code. **On the client** scopes are vital as they limit the amount of data loaded, viewed, and updated on the client. Consider a factory floor management system that shows *job* state as work flows through the factory. There may be millions of jobs that a production floor browser is authorized to view, but at any time there are probably only 50 being shown. Using ActiveRecord scopes is the way HyperMesh keeps the data requested by the browser limited to a reasonable amount.
5
+ On the server scopes are a useful way to structure code. **On the client** scopes are vital as they limit the amount of data loaded, viewed, and updated in the browser. Consider a factory floor management system that shows *job* state as work flows through the factory. There may be millions of jobs that a production floor browser is authorized to view, but at any time there are probably only 50 being shown. Using ActiveRecord scopes is the way HyperMesh keeps the data requested by the browser limited to a reasonable amount.
6
6
 
7
7
  To make scopes work efficiently on the client HyperMesh adds some features to the ActiveRecord `scope` and `default_scope` macros. Note you must use the `scope` macro (and not class methods) for things to work with HyperMesh.
8
8
 
@@ -0,0 +1,26 @@
1
+ ## The 5 Letter Word Game in HyperMesh
2
+
3
+ We are going to implement a simple game (that is actually quite fun to play) using HyperMesh.
4
+
5
+ In the 5 letter word game two players each secretly pick a 5 letter word that have 5 different letters. *truck* and *knife* for example.
6
+
7
+ Each player guesses a word, and the other player responds with the number of correct letters.
8
+
9
+ Players continue to take turns until a player guesses the other players word.
10
+
11
+ Because we are playing on a computer we are going to add some additional rules.
12
+
13
+ Instead of playing until one of the players correctly guesses a word, we will play until both players correctly guess a word, or one of the players concedes.
14
+
15
+ Players win by having the *fewest* points.
16
+
17
+ Points are calculated as follows:
18
+
19
+ + 2 points for each guess
20
+ + 2 points for conceding
21
+ + 1 point if a player miscalculates the number of correct letters in the other players guess. The app will give the other player the true answer anyway.
22
+ + 3 points if a player asks the app to guess a word. The app will always guess an optimal word (i.e. given all the previous guesses, the app will calculate a word that could be correct.)
23
+
24
+ In addition the players agree on a time per turn. If time runs out then the app will guess, and the player will get 3 points instead of 2 (i.e. the last rule above will apply.)
25
+
26
+ Each
@@ -0,0 +1,21 @@
1
+ # See https://help.github.com/articles/ignoring-files for more about ignoring files.
2
+ #
3
+ # If you find yourself ignoring temporary files generated by your text editor
4
+ # or operating system, you probably want to add a global ignore instead:
5
+ # git config --global core.excludesfile '~/.gitignore_global'
6
+
7
+ # Ignore bundler config.
8
+ /.bundle
9
+
10
+ # Ignore the default SQLite database.
11
+ /db/*.sqlite3
12
+ /db/*.sqlite3-journal
13
+
14
+ # Ignore all logfiles and tempfiles.
15
+ /log/*
16
+ /tmp/*
17
+ !/log/.keep
18
+ !/tmp/.keep
19
+
20
+ # Ignore Byebug command history file.
21
+ .byebug_history
@@ -0,0 +1,57 @@
1
+ source 'https://rubygems.org'
2
+
3
+
4
+ # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
5
+ gem 'rails', '~> 5.0.0', '>= 5.0.0.1'
6
+ # Use sqlite3 as the database for Active Record
7
+ gem 'sqlite3'
8
+ # Use Puma as the app server
9
+ gem 'puma', '~> 3.0'
10
+ # Use SCSS for stylesheets
11
+ gem 'sass-rails', '~> 5.0'
12
+ # Use Uglifier as compressor for JavaScript assets
13
+ gem 'uglifier', '>= 1.3.0'
14
+ # Use CoffeeScript for .coffee assets and views
15
+ gem 'coffee-rails', '~> 4.2'
16
+ # See https://github.com/rails/execjs#readme for more supported runtimes
17
+ # gem 'therubyracer', platforms: :ruby
18
+
19
+ # Use jquery as the JavaScript library
20
+ gem 'jquery-rails'
21
+ # Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
22
+ gem 'turbolinks', '~> 5'
23
+ # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
24
+ gem 'jbuilder', '~> 2.5'
25
+ # Use Redis adapter to run Action Cable in production
26
+ gem 'redis', '~> 3.0'
27
+ # Use ActiveModel has_secure_password
28
+ # gem 'bcrypt', '~> 3.1.7'
29
+
30
+ # Use Capistrano for deployment
31
+ # gem 'capistrano-rails', group: :development
32
+
33
+ group :development, :test do
34
+ # Call 'byebug' anywhere in the code to stop execution and get a debugger console
35
+ gem 'byebug', platform: :mri
36
+ end
37
+
38
+ group :development do
39
+ # Access an IRB console on exception pages or by using <%= console %> anywhere in the code.
40
+ gem 'web-console'
41
+ gem 'listen', '~> 3.0.5'
42
+ # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
43
+ #gem 'spring'
44
+ #gem 'spring-watcher-listen', '~> 2.0.0'
45
+ gem 'hyper-rails'
46
+ end
47
+
48
+ # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
49
+ gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
50
+
51
+ gem 'opal-rails'
52
+ gem 'opal-browser'
53
+ gem 'hyper-react'
54
+ gem 'therubyracer', platforms: :ruby
55
+ gem 'react-router-rails', '~> 0.13.3'
56
+ gem 'hyper-router'
57
+ gem 'hyper-mesh'
@@ -0,0 +1,231 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ actioncable (5.0.0.1)
5
+ actionpack (= 5.0.0.1)
6
+ nio4r (~> 1.2)
7
+ websocket-driver (~> 0.6.1)
8
+ actionmailer (5.0.0.1)
9
+ actionpack (= 5.0.0.1)
10
+ actionview (= 5.0.0.1)
11
+ activejob (= 5.0.0.1)
12
+ mail (~> 2.5, >= 2.5.4)
13
+ rails-dom-testing (~> 2.0)
14
+ actionpack (5.0.0.1)
15
+ actionview (= 5.0.0.1)
16
+ activesupport (= 5.0.0.1)
17
+ rack (~> 2.0)
18
+ rack-test (~> 0.6.3)
19
+ rails-dom-testing (~> 2.0)
20
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
21
+ actionview (5.0.0.1)
22
+ activesupport (= 5.0.0.1)
23
+ builder (~> 3.1)
24
+ erubis (~> 2.7.0)
25
+ rails-dom-testing (~> 2.0)
26
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
27
+ activejob (5.0.0.1)
28
+ activesupport (= 5.0.0.1)
29
+ globalid (>= 0.3.6)
30
+ activemodel (5.0.0.1)
31
+ activesupport (= 5.0.0.1)
32
+ activerecord (5.0.0.1)
33
+ activemodel (= 5.0.0.1)
34
+ activesupport (= 5.0.0.1)
35
+ arel (~> 7.0)
36
+ activesupport (5.0.0.1)
37
+ concurrent-ruby (~> 1.0, >= 1.0.2)
38
+ i18n (~> 0.7)
39
+ minitest (~> 5.1)
40
+ tzinfo (~> 1.1)
41
+ arel (7.1.4)
42
+ babel-source (5.8.35)
43
+ babel-transpiler (0.7.0)
44
+ babel-source (>= 4.0, < 6)
45
+ execjs (~> 2.0)
46
+ builder (3.2.2)
47
+ byebug (9.0.6)
48
+ coffee-rails (4.2.1)
49
+ coffee-script (>= 2.2.0)
50
+ railties (>= 4.0.0, < 5.2.x)
51
+ coffee-script (2.4.1)
52
+ coffee-script-source
53
+ execjs
54
+ coffee-script-source (1.10.0)
55
+ concurrent-ruby (1.0.2)
56
+ connection_pool (2.2.1)
57
+ debug_inspector (0.0.2)
58
+ erubis (2.7.0)
59
+ execjs (2.7.0)
60
+ ffi (1.9.14)
61
+ globalid (0.3.7)
62
+ activesupport (>= 4.1.0)
63
+ hike (1.2.3)
64
+ hyper-mesh (0.5.0)
65
+ activerecord (>= 0.3.0)
66
+ hyper-react (>= 0.10.0)
67
+ hyper-rails (0.4.0)
68
+ rails (>= 4.0.0)
69
+ hyper-react (0.10.0)
70
+ opal (>= 0.8.0)
71
+ opal-activesupport (>= 0.2.0)
72
+ react-rails
73
+ hyper-router (2.4.0)
74
+ hyper-react
75
+ opal-browser
76
+ i18n (0.7.0)
77
+ jbuilder (2.6.0)
78
+ activesupport (>= 3.0.0, < 5.1)
79
+ multi_json (~> 1.2)
80
+ jquery-rails (4.2.1)
81
+ rails-dom-testing (>= 1, < 3)
82
+ railties (>= 4.2.0)
83
+ thor (>= 0.14, < 2.0)
84
+ libv8 (3.16.14.15)
85
+ listen (3.0.8)
86
+ rb-fsevent (~> 0.9, >= 0.9.4)
87
+ rb-inotify (~> 0.9, >= 0.9.7)
88
+ loofah (2.0.3)
89
+ nokogiri (>= 1.5.9)
90
+ mail (2.6.4)
91
+ mime-types (>= 1.16, < 4)
92
+ method_source (0.8.2)
93
+ mime-types (3.1)
94
+ mime-types-data (~> 3.2015)
95
+ mime-types-data (3.2016.0521)
96
+ mini_portile2 (2.1.0)
97
+ minitest (5.9.1)
98
+ multi_json (1.12.1)
99
+ nio4r (1.2.1)
100
+ nokogiri (1.6.8.1)
101
+ mini_portile2 (~> 2.1.0)
102
+ opal (0.10.3)
103
+ hike (~> 1.2)
104
+ sourcemap (~> 0.1.0)
105
+ sprockets (~> 3.1)
106
+ tilt (>= 1.4)
107
+ opal-activesupport (0.3.0)
108
+ opal (>= 0.5.0, < 1.0.0)
109
+ opal-browser (0.2.0)
110
+ opal
111
+ paggio
112
+ opal-jquery (0.4.2)
113
+ opal (>= 0.7.0, < 0.11.0)
114
+ opal-rails (0.9.0)
115
+ jquery-rails
116
+ opal (>= 0.8.0, < 0.11)
117
+ opal-activesupport (>= 0.0.5)
118
+ opal-jquery (~> 0.4.0)
119
+ rails (>= 4.0, < 6.0)
120
+ sprockets-rails (< 3.0)
121
+ paggio (0.2.6)
122
+ puma (3.6.0)
123
+ rack (2.0.1)
124
+ rack-test (0.6.3)
125
+ rack (>= 1.0)
126
+ rails (5.0.0.1)
127
+ actioncable (= 5.0.0.1)
128
+ actionmailer (= 5.0.0.1)
129
+ actionpack (= 5.0.0.1)
130
+ actionview (= 5.0.0.1)
131
+ activejob (= 5.0.0.1)
132
+ activemodel (= 5.0.0.1)
133
+ activerecord (= 5.0.0.1)
134
+ activesupport (= 5.0.0.1)
135
+ bundler (>= 1.3.0, < 2.0)
136
+ railties (= 5.0.0.1)
137
+ sprockets-rails (>= 2.0.0)
138
+ rails-dom-testing (2.0.1)
139
+ activesupport (>= 4.2.0, < 6.0)
140
+ nokogiri (~> 1.6.0)
141
+ rails-html-sanitizer (1.0.3)
142
+ loofah (~> 2.0)
143
+ railties (5.0.0.1)
144
+ actionpack (= 5.0.0.1)
145
+ activesupport (= 5.0.0.1)
146
+ method_source
147
+ rake (>= 0.8.7)
148
+ thor (>= 0.18.1, < 2.0)
149
+ rake (11.3.0)
150
+ rb-fsevent (0.9.8)
151
+ rb-inotify (0.9.7)
152
+ ffi (>= 0.5.0)
153
+ react-rails (1.4.2)
154
+ babel-transpiler (>= 0.7.0)
155
+ coffee-script-source (~> 1.8)
156
+ connection_pool
157
+ execjs
158
+ rails (>= 3.2)
159
+ tilt
160
+ react-router-rails (0.13.3.2)
161
+ rails (>= 3.1)
162
+ react-rails (~> 1.4.0)
163
+ redis (3.3.1)
164
+ ref (2.0.0)
165
+ sass (3.4.22)
166
+ sass-rails (5.0.6)
167
+ railties (>= 4.0.0, < 6)
168
+ sass (~> 3.1)
169
+ sprockets (>= 2.8, < 4.0)
170
+ sprockets-rails (>= 2.0, < 4.0)
171
+ tilt (>= 1.1, < 3)
172
+ sourcemap (0.1.1)
173
+ sprockets (3.7.0)
174
+ concurrent-ruby (~> 1.0)
175
+ rack (> 1, < 3)
176
+ sprockets-rails (2.3.3)
177
+ actionpack (>= 3.0)
178
+ activesupport (>= 3.0)
179
+ sprockets (>= 2.8, < 4.0)
180
+ sqlite3 (1.3.12)
181
+ therubyracer (0.12.2)
182
+ libv8 (~> 3.16.14.0)
183
+ ref
184
+ thor (0.19.1)
185
+ thread_safe (0.3.5)
186
+ tilt (2.0.5)
187
+ turbolinks (5.0.1)
188
+ turbolinks-source (~> 5)
189
+ turbolinks-source (5.0.0)
190
+ tzinfo (1.2.2)
191
+ thread_safe (~> 0.1)
192
+ uglifier (3.0.3)
193
+ execjs (>= 0.3.0, < 3)
194
+ web-console (3.4.0)
195
+ actionview (>= 5.0)
196
+ activemodel (>= 5.0)
197
+ debug_inspector
198
+ railties (>= 5.0)
199
+ websocket-driver (0.6.4)
200
+ websocket-extensions (>= 0.1.0)
201
+ websocket-extensions (0.1.2)
202
+
203
+ PLATFORMS
204
+ ruby
205
+
206
+ DEPENDENCIES
207
+ byebug
208
+ coffee-rails (~> 4.2)
209
+ hyper-mesh
210
+ hyper-rails
211
+ hyper-react
212
+ hyper-router
213
+ jbuilder (~> 2.5)
214
+ jquery-rails
215
+ listen (~> 3.0.5)
216
+ opal-browser
217
+ opal-rails
218
+ puma (~> 3.0)
219
+ rails (~> 5.0.0, >= 5.0.0.1)
220
+ react-router-rails (~> 0.13.3)
221
+ redis (~> 3.0)
222
+ sass-rails (~> 5.0)
223
+ sqlite3
224
+ therubyracer
225
+ turbolinks (~> 5)
226
+ tzinfo-data
227
+ uglifier (>= 1.3.0)
228
+ web-console
229
+
230
+ BUNDLED WITH
231
+ 1.12.5
@@ -0,0 +1,24 @@
1
+ # README
2
+
3
+ This README would normally document whatever steps are necessary to get the
4
+ application up and running.
5
+
6
+ Things you may want to cover:
7
+
8
+ * Ruby version
9
+
10
+ * System dependencies
11
+
12
+ * Configuration
13
+
14
+ * Database creation
15
+
16
+ * Database initialization
17
+
18
+ * How to run the test suite
19
+
20
+ * Services (job queues, cache servers, search engines, etc.)
21
+
22
+ * Deployment instructions
23
+
24
+ * ...
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require_relative 'config/application'
5
+
6
+ Rails.application.load_tasks
@@ -0,0 +1,3 @@
1
+ //= link_tree ../images
2
+ //= link_directory ../javascripts .js
3
+ //= link_directory ../stylesheets .css
@@ -0,0 +1,20 @@
1
+ // added by hyper-rails: These lines must preceed other requires especially turbo_links
2
+ //= require 'components'
3
+ //= require 'react_ujs'
4
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
5
+ // listed below.
6
+ //
7
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
8
+ // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
9
+ //
10
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
11
+ // compiled file. JavaScript code in this file should be added after the last require_* statement.
12
+ //
13
+ // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
14
+ // about supported directives.
15
+ //
16
+ //= require jquery
17
+ //= require jquery_ujs
18
+ //= require turbolinks
19
+ //= require_tree .
20
+ Opal.load('components');
@@ -0,0 +1,13 @@
1
+ // Action Cable provides the framework to deal with WebSockets in Rails.
2
+ // You can generate new channels where WebSocket features live using the rails generate channel command.
3
+ //
4
+ //= require action_cable
5
+ //= require_self
6
+ //= require_tree ./channels
7
+
8
+ (function() {
9
+ this.App || (this.App = {});
10
+
11
+ App.cable = ActionCable.createConsumer();
12
+
13
+ }).call(this);
@@ -0,0 +1,15 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
10
+ * files in this directory. Styles in this file should be added after the last require_* statement.
11
+ * It is generally better to create a new file per style scope.
12
+ *
13
+ *= require_tree .
14
+ *= require_self
15
+ */
@@ -0,0 +1,4 @@
1
+ module ApplicationCable
2
+ class Channel < ActionCable::Channel::Base
3
+ end
4
+ end