hyperstack-config 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +15 -0
  3. data/.travis.yml +29 -0
  4. data/Gemfile +3 -0
  5. data/Gemfile.lock +303 -0
  6. data/README.md +73 -0
  7. data/Rakefile +11 -0
  8. data/bin/hyperstack-hotloader +22 -0
  9. data/hyperstack-config.gemspec +45 -0
  10. data/lib/hyperstack-config.rb +45 -0
  11. data/lib/hyperstack-hotloader-config.js.erb +7 -0
  12. data/lib/hyperstack-loader-application.rb.erb +1 -0
  13. data/lib/hyperstack-loader-system-code.rb.erb +1 -0
  14. data/lib/hyperstack-loader.js +6 -0
  15. data/lib/hyperstack-prerender-loader-application.rb.erb +1 -0
  16. data/lib/hyperstack-prerender-loader-system-code.rb.erb +1 -0
  17. data/lib/hyperstack-prerender-loader.js +4 -0
  18. data/lib/hyperstack/active_support_string_inquirer.rb +32 -0
  19. data/lib/hyperstack/autoloader.rb +140 -0
  20. data/lib/hyperstack/autoloader_starter.rb +15 -0
  21. data/lib/hyperstack/boot.rb +41 -0
  22. data/lib/hyperstack/client_readers.rb +19 -0
  23. data/lib/hyperstack/client_stubs.rb +12 -0
  24. data/lib/hyperstack/config/version.rb +5 -0
  25. data/lib/hyperstack/config_settings.rb +49 -0
  26. data/lib/hyperstack/context.rb +36 -0
  27. data/lib/hyperstack/deprecation_warning.rb +10 -0
  28. data/lib/hyperstack/env.rb +10 -0
  29. data/lib/hyperstack/environment/development/hyperstack_env.rb +5 -0
  30. data/lib/hyperstack/environment/production/hyperstack_env.rb +5 -0
  31. data/lib/hyperstack/environment/staging/hyperstack_env.rb +5 -0
  32. data/lib/hyperstack/environment/test/hyperstack_env.rb +5 -0
  33. data/lib/hyperstack/hotloader.rb +129 -0
  34. data/lib/hyperstack/hotloader/add_error_boundry.rb +31 -0
  35. data/lib/hyperstack/hotloader/css_reloader.rb +41 -0
  36. data/lib/hyperstack/hotloader/server.rb +296 -0
  37. data/lib/hyperstack/hotloader/short_cut.js +9 -0
  38. data/lib/hyperstack/hotloader/socket.rb +136 -0
  39. data/lib/hyperstack/hotloader/stack-trace.js +2977 -0
  40. data/lib/hyperstack/hotloader/stub.rb +10 -0
  41. data/lib/hyperstack/imports.rb +104 -0
  42. data/lib/hyperstack/js_imports.rb +18 -0
  43. data/lib/hyperstack/on_client.rb +5 -0
  44. data/lib/hyperstack/on_error.rb +5 -0
  45. data/lib/hyperstack/rail_tie.rb +87 -0
  46. data/lib/hyperstack/string.rb +6 -0
  47. metadata +350 -0
@@ -0,0 +1,10 @@
1
+ # insure that stubs for Hyperstack::Hotloader.record and window.Hyperstack.hotloader are defined
2
+ # importing 'hyperstack/hotloader' will define/redefine these
3
+
4
+ module Hyperstack
5
+ unless defined? Hotloader
6
+ class Hotloader
7
+ def self.record(klass, instance_var, depth, *items); end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,104 @@
1
+ module Hyperstack
2
+
3
+ class << self
4
+ def import_list
5
+ @import_list ||= []
6
+ end
7
+
8
+ def import(value, gem: nil, cancelled: nil, client_only: nil, server_only: nil, tree: nil, js_import: nil, at_head: nil)
9
+ return if import_list.detect { |current_value, *_rest| value == current_value }
10
+ new_element = [
11
+ value, cancelled, !client_only, !server_only, (tree ? :tree : :gem), js_import
12
+ ]
13
+ import_list.send(at_head ? :unshift : :push, new_element)
14
+ end
15
+
16
+ alias imports import
17
+
18
+ def import_tree(value, cancelled: nil, client_only: nil, server_only: nil)
19
+ import(value, cancelled: cancelled, client_only: client_only, server_only: server_only, tree: true)
20
+ end
21
+
22
+ def cancel_import(value)
23
+ return unless value
24
+ current_spec = import_list.detect { |old_value, *_rest| value == old_value }
25
+ if current_spec
26
+ current_spec[1] = true
27
+ else
28
+ import_list << [value, true, true, true, false]
29
+ end
30
+ end
31
+
32
+ def cancel_webpack_imports
33
+ import_list.collect { |name, _c, _co, _so, _t, js_import, *_rest| js_import && name }
34
+ .each { |name| cancel_import name }
35
+ end
36
+
37
+ def handle_webpack
38
+ return unless defined? Webpacker
39
+ client_only_manifest = Webpacker.manifest.lookup("client_only.js")
40
+ client_and_server_manifest = Webpacker.manifest.lookup("client_and_server.js")
41
+ return unless client_only_manifest || client_and_server_manifest
42
+ cancel_webpack_imports
43
+ import client_only_manifest.split("/").last, client_only: true, at_head: true if client_only_manifest
44
+ import client_and_server_manifest.split("/").last, at_head: true if client_and_server_manifest
45
+ end
46
+
47
+ def generate_requires(mode, sys, file)
48
+ handle_webpack
49
+ import_list.collect do |value, cancelled, render_on_server, render_on_client, kind|
50
+ next if cancelled
51
+ next if (sys && kind == :tree) || (!sys && kind != :tree)
52
+ next if mode == :client && !render_on_client
53
+ next if mode == :server && !render_on_server
54
+ if kind == :tree
55
+ generate_require_tree(value, render_on_server, render_on_client)
56
+ elsif kind == :gem
57
+ r = "require '#{value}' #{client_guard(render_on_server, render_on_client)}"
58
+ puts " #{r}"
59
+ "puts \"#{r}\"; #{r}"
60
+ else
61
+ generate_directive(:require, value, file, render_on_server, render_on_client)
62
+ end
63
+ end.compact.join("\n")
64
+ end
65
+
66
+ def generate_directive(directive, to, file, render_on_server, render_on_client)
67
+ gem_path = File.expand_path('../', file).split('/')
68
+ comp_path = Rails.root.join('app', 'hyperstack', to).to_s.split('/')
69
+ while comp_path.first == gem_path.first do
70
+ gem_path.shift
71
+ comp_path.shift
72
+ end
73
+ r = "#{directive} '#{(['.'] + ['..'] * gem_path.length + comp_path).join('/')}' #{client_guard(render_on_server, render_on_client)}"
74
+ puts " #{r}"
75
+ "puts \"#{r}\"; #{r}"
76
+ end
77
+
78
+ def generate_require_tree(path, render_on_server, render_on_client)
79
+ base_name = Rails.root.join('app', path).to_s+'/'
80
+ Dir.glob(Rails.root.join('app', path, '**', '*')).sort.collect do |fname|
81
+ fname = fname.gsub(/^#{base_name}/, '')
82
+ fname = fname.gsub(/\.erb$/, '')
83
+ if fname =~ /(\.js$)|(\.rb$)/
84
+ fname = fname.gsub(/(\.js$)|(\.rb$)/, '')
85
+ r = "require '#{fname}' #{client_guard(render_on_server, render_on_client)}"
86
+ puts " #{r}"
87
+ "puts \"#{r}\"; #{r}"
88
+ end
89
+ end.compact.join("\n")
90
+ end
91
+
92
+ def client_guard(render_on_server, render_on_client)
93
+ if !render_on_server
94
+ '# CLIENT ONLY'
95
+ elsif !render_on_client
96
+ '# SERVER ONLY'
97
+ end
98
+ end
99
+
100
+ Hyperstack.define_setting(:compress_system_assets, true) do
101
+ puts "INFO: The configuration option 'compress_system_assets' is no longer used."
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,18 @@
1
+ module Hyperstack
2
+ class << self
3
+ def js_import(value, client_only: nil, server_only: nil, defines:)
4
+ defines = [*defines]
5
+ if RUBY_ENGINE != 'opal'
6
+ import(value, client_only: client_only, server_only: server_only, js_import: true)
7
+ else
8
+ on_server = `typeof Opal.global.document === 'undefined'`
9
+ return if (server_only && !on_server) || (client_only && on_server)
10
+ defines.each do |name|
11
+ next unless `Opal.global[#{name}] === undefined`
12
+ raise "The package #{name} was not found. Add it to the webpack "\
13
+ "#{client_only ? 'client_only.js' : 'client_and_server.js'} manifest."
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,5 @@
1
+ module Hyperstack
2
+ def self.on_client?
3
+ !(`typeof Opal.global.document === 'undefined'`) if RUBY_ENGINE == 'opal'
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Hyperstack
2
+ def self.on_error(err, reason, details)
3
+ # do whatever you want here... i.e. log, debug, etc
4
+ end
5
+ end
@@ -0,0 +1,87 @@
1
+ module Hyperstack
2
+
3
+ class Engine < ::Rails::Engine
4
+ end
5
+
6
+ define_setting :add_hyperstack_paths, true
7
+
8
+ define_setting :prerendering_files, ['hyperstack-prerender-loader.js']
9
+
10
+ class Railtie < ::Rails::Railtie
11
+
12
+ class Options < ActiveSupport::OrderedOptions
13
+ def delete_first(a, e)
14
+ a.delete_at(a.index(e) || a.length)
15
+ end
16
+
17
+ def auto_config=(on)
18
+ Rails.configuration.tap do |config|
19
+ if [:on, 'on', true].include?(on)
20
+ config.eager_load_paths += %W(#{config.root}/app/hyperstack/models)
21
+ config.eager_load_paths += %W(#{config.root}/app/hyperstack/models/concerns)
22
+ config.eager_load_paths += %W(#{config.root}/app/hyperstack/operations)
23
+ # rails will add everything immediately below app to eager and auto load, so we need to remove it
24
+ delete_first config.eager_load_paths, "#{config.root}/app/hyperstack"
25
+
26
+ unless Rails.env.production?
27
+ config.autoload_paths += %W(#{config.root}/app/hyperstack/models)
28
+ config.autoload_paths += %W(#{config.root}/app/hyperstack/models/concerns)
29
+ config.autoload_paths += %W(#{config.root}/app/hyperstack/operations)
30
+ # config.eager_load_paths += %W(#{config.root}/app/hyperstack/stores)
31
+ # config.autoload_paths += %W(#{config.root}/app/hyperstack/stores)
32
+ delete_first config.autoload_paths, "#{config.root}/app/hyperstack"
33
+ end
34
+ # possible alternative way in conjunction with below
35
+ # %w[stores operations models components].each do |hp|
36
+ # hps = ::Rails.root.join('app', 'hyperstack', hp).to_s
37
+ # config.assets.paths.delete(hps)
38
+ # config.assets.paths.unshift(hps)
39
+ # end
40
+ config.assets.paths.unshift ::Rails.root.join('app', 'hyperstack').to_s
41
+ if Rails.const_defined? 'Hyperstack::Console'
42
+ config.assets.precompile += %w( hyper-console-client.css )
43
+ config.assets.precompile += %w( hyper-console-client.min.js )
44
+ config.assets.precompile += %w( action_cable.js ) if Rails.const_defined? 'ActionCable'
45
+ end
46
+ else
47
+ delete_first config.eager_load_paths, "#{config.root}/app/hyperstack/models"
48
+ delete_first config.eager_load_paths, "#{config.root}/app/hyperstack/models/concerns"
49
+ delete_first config.autoload_paths, "#{config.root}/app/hyperstack/models"
50
+ delete_first config.autoload_paths, "#{config.root}/app/hyperstack/models/concerns"
51
+ # delete_first config.eager_load_paths, "#{config.root}/app/hyperstack/stores"
52
+ # delete_first config.autoload_paths, "#{config.root}/app/hyperstack/stores"
53
+ delete_first config.eager_load_paths, "#{config.root}/app/hyperstack/operations"
54
+ delete_first config.autoload_paths, "#{config.root}/app/hyperstack/operations"
55
+
56
+ delete_first config.assets.paths, ::Rails.root.join('app', 'hyperstack').to_s
57
+ end
58
+ end
59
+ super
60
+ end
61
+ end
62
+
63
+ # note in case of problems with eager load paths have a look at
64
+ # https://github.com/opal/opal-rails/blob/master/lib/opal/rails/engine.rb
65
+ config.hyperstack = Options.new
66
+
67
+ config.before_configuration do |app|
68
+ config.hyperstack.auto_config = true
69
+ end
70
+
71
+ config.after_initialize do |app|
72
+ next unless [:on, 'on', true].include?(config.hyperstack.auto_config)
73
+ # possible alternative way
74
+ # %w[stores operations models components].each do |hp|
75
+ # Hyperstack.import_tree('hyperstack/' + hp)
76
+ # end
77
+ Hyperstack.import_tree('hyperstack')
78
+ if config.respond_to?(:react)
79
+ if (opts = config.react.server_renderer_options)
80
+ opts.merge!(files: Hyperstack.prerendering_files)
81
+ else
82
+ config.react.server_renderer_options = {files: Hyperstack.prerendering_files}
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,6 @@
1
+ # This will eventually be moved into Opal
2
+ class String
3
+ def to_json
4
+ `JSON.stringify(#{self})`
5
+ end
6
+ end
metadata ADDED
@@ -0,0 +1,350 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hyperstack-config
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ platform: ruby
6
+ authors:
7
+ - Mitch VanDuyn
8
+ - Jan Biedermann
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2018-11-10 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: libv8
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: 6.3.0
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: 6.3.0
28
+ - !ruby/object:Gem::Dependency
29
+ name: listen
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '3.0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '3.0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: mini_racer
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: 0.1.15
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: 0.1.15
56
+ - !ruby/object:Gem::Dependency
57
+ name: opal
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 0.11.0
63
+ - - "<"
64
+ - !ruby/object:Gem::Version
65
+ version: 0.12.0
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 0.11.0
73
+ - - "<"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.12.0
76
+ - !ruby/object:Gem::Dependency
77
+ name: opal-browser
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.2.0
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.2.0
90
+ - !ruby/object:Gem::Dependency
91
+ name: uglifier
92
+ requirement: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ type: :runtime
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ - !ruby/object:Gem::Dependency
105
+ name: websocket
106
+ requirement: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ type: :runtime
112
+ prerelease: false
113
+ version_requirements: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ - !ruby/object:Gem::Dependency
119
+ name: bundler
120
+ requirement: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 1.16.0
125
+ type: :development
126
+ prerelease: false
127
+ version_requirements: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 1.16.0
132
+ - !ruby/object:Gem::Dependency
133
+ name: chromedriver-helper
134
+ requirement: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ type: :development
140
+ prerelease: false
141
+ version_requirements: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ - !ruby/object:Gem::Dependency
147
+ name: opal-rails
148
+ requirement: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 0.9.4
153
+ type: :development
154
+ prerelease: false
155
+ version_requirements: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: 0.9.4
160
+ - !ruby/object:Gem::Dependency
161
+ name: pry
162
+ requirement: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ type: :development
168
+ prerelease: false
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ - !ruby/object:Gem::Dependency
175
+ name: puma
176
+ requirement: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ type: :development
182
+ prerelease: false
183
+ version_requirements: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ - !ruby/object:Gem::Dependency
189
+ name: rails
190
+ requirement: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: 4.0.0
195
+ type: :development
196
+ prerelease: false
197
+ version_requirements: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: 4.0.0
202
+ - !ruby/object:Gem::Dependency
203
+ name: rake
204
+ requirement: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ type: :development
210
+ prerelease: false
211
+ version_requirements: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ - !ruby/object:Gem::Dependency
217
+ name: rspec
218
+ requirement: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - "~>"
221
+ - !ruby/object:Gem::Version
222
+ version: 3.7.0
223
+ type: :development
224
+ prerelease: false
225
+ version_requirements: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - "~>"
228
+ - !ruby/object:Gem::Version
229
+ version: 3.7.0
230
+ - !ruby/object:Gem::Dependency
231
+ name: rubocop
232
+ requirement: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - "~>"
235
+ - !ruby/object:Gem::Version
236
+ version: 0.51.0
237
+ type: :development
238
+ prerelease: false
239
+ version_requirements: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - "~>"
242
+ - !ruby/object:Gem::Version
243
+ version: 0.51.0
244
+ - !ruby/object:Gem::Dependency
245
+ name: sqlite3
246
+ requirement: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ type: :development
252
+ prerelease: false
253
+ version_requirements: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ - !ruby/object:Gem::Dependency
259
+ name: timecop
260
+ requirement: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - "~>"
263
+ - !ruby/object:Gem::Version
264
+ version: 0.8.1
265
+ type: :development
266
+ prerelease: false
267
+ version_requirements: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - "~>"
270
+ - !ruby/object:Gem::Version
271
+ version: 0.8.1
272
+ description:
273
+ email:
274
+ - mitch@catprint.com
275
+ - jan@kursator.com
276
+ executables:
277
+ - hyperstack-hotloader
278
+ extensions: []
279
+ extra_rdoc_files: []
280
+ files:
281
+ - ".gitignore"
282
+ - ".travis.yml"
283
+ - Gemfile
284
+ - Gemfile.lock
285
+ - README.md
286
+ - Rakefile
287
+ - bin/hyperstack-hotloader
288
+ - hyperstack-config.gemspec
289
+ - lib/hyperstack-config.rb
290
+ - lib/hyperstack-hotloader-config.js.erb
291
+ - lib/hyperstack-loader-application.rb.erb
292
+ - lib/hyperstack-loader-system-code.rb.erb
293
+ - lib/hyperstack-loader.js
294
+ - lib/hyperstack-prerender-loader-application.rb.erb
295
+ - lib/hyperstack-prerender-loader-system-code.rb.erb
296
+ - lib/hyperstack-prerender-loader.js
297
+ - lib/hyperstack/active_support_string_inquirer.rb
298
+ - lib/hyperstack/autoloader.rb
299
+ - lib/hyperstack/autoloader_starter.rb
300
+ - lib/hyperstack/boot.rb
301
+ - lib/hyperstack/client_readers.rb
302
+ - lib/hyperstack/client_stubs.rb
303
+ - lib/hyperstack/config/version.rb
304
+ - lib/hyperstack/config_settings.rb
305
+ - lib/hyperstack/context.rb
306
+ - lib/hyperstack/deprecation_warning.rb
307
+ - lib/hyperstack/env.rb
308
+ - lib/hyperstack/environment/development/hyperstack_env.rb
309
+ - lib/hyperstack/environment/production/hyperstack_env.rb
310
+ - lib/hyperstack/environment/staging/hyperstack_env.rb
311
+ - lib/hyperstack/environment/test/hyperstack_env.rb
312
+ - lib/hyperstack/hotloader.rb
313
+ - lib/hyperstack/hotloader/add_error_boundry.rb
314
+ - lib/hyperstack/hotloader/css_reloader.rb
315
+ - lib/hyperstack/hotloader/server.rb
316
+ - lib/hyperstack/hotloader/short_cut.js
317
+ - lib/hyperstack/hotloader/socket.rb
318
+ - lib/hyperstack/hotloader/stack-trace.js
319
+ - lib/hyperstack/hotloader/stub.rb
320
+ - lib/hyperstack/imports.rb
321
+ - lib/hyperstack/js_imports.rb
322
+ - lib/hyperstack/on_client.rb
323
+ - lib/hyperstack/on_error.rb
324
+ - lib/hyperstack/rail_tie.rb
325
+ - lib/hyperstack/string.rb
326
+ homepage: http://ruby-hyperstack.org
327
+ licenses:
328
+ - MIT
329
+ metadata: {}
330
+ post_install_message:
331
+ rdoc_options: []
332
+ require_paths:
333
+ - lib
334
+ required_ruby_version: !ruby/object:Gem::Requirement
335
+ requirements:
336
+ - - ">="
337
+ - !ruby/object:Gem::Version
338
+ version: '0'
339
+ required_rubygems_version: !ruby/object:Gem::Requirement
340
+ requirements:
341
+ - - ">="
342
+ - !ruby/object:Gem::Version
343
+ version: '0'
344
+ requirements: []
345
+ rubyforge_project:
346
+ rubygems_version: 2.7.8
347
+ signing_key:
348
+ specification_version: 4
349
+ summary: Provides a single point configuration module for hyperstack gems
350
+ test_files: []