hyperloop-config 0.9.11 → 0.99.0

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.
@@ -0,0 +1,5 @@
1
+ module Hyperloop
2
+ def self.on_error(err, reason, details)
3
+ # do whatever you want here... i.e. log, debug, etc
4
+ end
5
+ end
@@ -1,5 +1,8 @@
1
1
  module Hyperloop
2
2
  define_setting :add_hyperloop_paths, true
3
+
4
+ define_setting :prerendering_files, ['hyperloop-prerender-loader.js']
5
+
3
6
  class Railtie < ::Rails::Railtie
4
7
 
5
8
  class Options < ActiveSupport::OrderedOptions
@@ -9,18 +12,38 @@ module Hyperloop
9
12
 
10
13
  def auto_config=(on)
11
14
  Rails.configuration.tap do |config|
12
- if on
15
+ if [:on, 'on', true].include?(on)
13
16
  config.eager_load_paths += %W(#{config.root}/app/hyperloop/models)
14
- config.autoload_paths += %W(#{config.root}/app/hyperloop/models)
15
- # config.eager_load_paths += %W(#{config.root}/app/hyperloop/stores)
16
- # config.autoload_paths += %W(#{config.root}/app/hyperloop/stores)
17
+ config.eager_load_paths += %W(#{config.root}/app/hyperloop/models/concerns)
17
18
  config.eager_load_paths += %W(#{config.root}/app/hyperloop/operations)
18
- config.autoload_paths += %W(#{config.root}/app/hyperloop/operations)
19
+ # rails will add everything immediately below app to eager and auto load, so we need to remove it
20
+ delete_first config.eager_load_paths, "#{config.root}/app/hyperloop"
19
21
 
22
+ unless Rails.env.production?
23
+ config.autoload_paths += %W(#{config.root}/app/hyperloop/models)
24
+ config.autoload_paths += %W(#{config.root}/app/hyperloop/models/concerns)
25
+ config.autoload_paths += %W(#{config.root}/app/hyperloop/operations)
26
+ # config.eager_load_paths += %W(#{config.root}/app/hyperloop/stores)
27
+ # config.autoload_paths += %W(#{config.root}/app/hyperloop/stores)
28
+ delete_first config.autoload_paths, "#{config.root}/app/hyperloop"
29
+ end
30
+ # possible alternative way in conjunction with below
31
+ # %w[stores operations models components].each do |hp|
32
+ # hps = ::Rails.root.join('app', 'hyperloop', hp).to_s
33
+ # config.assets.paths.delete(hps)
34
+ # config.assets.paths.unshift(hps)
35
+ # end
20
36
  config.assets.paths.unshift ::Rails.root.join('app', 'hyperloop').to_s
37
+ if Rails.const_defined? 'Hyperloop::Console'
38
+ config.assets.precompile += %w( hyper-console-client.css )
39
+ config.assets.precompile += %w( hyper-console-client.min.js )
40
+ config.assets.precompile += %w( action_cable.js ) if Rails.const_defined? 'ActionCable'
41
+ end
21
42
  else
22
43
  delete_first config.eager_load_paths, "#{config.root}/app/hyperloop/models"
44
+ delete_first config.eager_load_paths, "#{config.root}/app/hyperloop/models/concerns"
23
45
  delete_first config.autoload_paths, "#{config.root}/app/hyperloop/models"
46
+ delete_first config.autoload_paths, "#{config.root}/app/hyperloop/models/concerns"
24
47
  # delete_first config.eager_load_paths, "#{config.root}/app/hyperloop/stores"
25
48
  # delete_first config.autoload_paths, "#{config.root}/app/hyperloop/stores"
26
49
  delete_first config.eager_load_paths, "#{config.root}/app/hyperloop/operations"
@@ -41,20 +64,20 @@ module Hyperloop
41
64
  config.hyperloop.auto_config = true
42
65
  end
43
66
 
44
- FILES = {files: ['hyperloop-prerender-loader.js']}
45
-
46
67
  config.after_initialize do |app|
47
- next unless config.hyperloop.auto_config
68
+ next unless [:on, 'on', true].include?(config.hyperloop.auto_config)
69
+ # possible alternative way
70
+ # %w[stores operations models components].each do |hp|
71
+ # Hyperloop.import_tree('hyperloop/' + hp)
72
+ # end
48
73
  Hyperloop.import_tree('hyperloop')
49
74
  if config.respond_to?(:react)
50
75
  if (opts = config.react.server_renderer_options)
51
- opts.merge! FILES
76
+ opts.merge!(files: Hyperloop.prerendering_files)
52
77
  else
53
- config.react.server_renderer_options = FILES
78
+ config.react.server_renderer_options = {files: Hyperloop.prerendering_files}
54
79
  end
55
80
  end
56
- app.assets.find_asset('hyperloop-prerender-loader-system')
57
- app.assets.find_asset('hyperloop-loader-system')
58
81
  end
59
82
  end
60
83
  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
@@ -1,17 +1,35 @@
1
1
  if RUBY_ENGINE == 'opal'
2
+ require 'hyperloop/string'
2
3
  require 'hyperloop/client_stubs'
3
4
  require 'hyperloop/context'
5
+ require 'hyperloop/js_imports'
4
6
  require 'hyperloop/on_client'
7
+ require 'hyperloop/active_support_string_inquirer.rb'
8
+ require 'hyperloop_env'
5
9
  else
6
10
  require 'opal'
11
+ require 'opal-browser'
12
+ begin
13
+ require 'opal-rails' if defined? Rails
14
+ rescue LoadError
15
+ end
7
16
  require 'hyperloop/config_settings'
8
17
  require 'hyperloop/context'
9
18
  require 'hyperloop/imports'
19
+ require 'hyperloop/js_imports'
10
20
  require 'hyperloop/client_readers'
11
21
  require 'hyperloop/on_client'
12
22
  require 'hyperloop/rail_tie' if defined? Rails
23
+ require 'hyperloop/active_support_string_inquirer.rb' unless defined? ActiveSupport
24
+ require 'hyperloop/env'
25
+ require 'hyperloop/on_error'
13
26
  Hyperloop.import 'opal', gem: true
14
27
  Hyperloop.import 'browser', client_only: true
15
28
  Hyperloop.import 'hyperloop-config', gem: true
29
+ Hyperloop.import 'hyperloop/autoloader'
30
+ Hyperloop.import 'hyperloop/autoloader_starter'
31
+ # based on the environment pick the directory containing the file with the matching
32
+ # value for the client. This avoids use of ERB for builds outside of sprockets environment
33
+ Opal.append_path(File.expand_path("../hyperloop/environment/#{Hyperloop.env}/", __FILE__).untaint)
16
34
  Opal.append_path(File.expand_path('../', __FILE__).untaint)
17
35
  end
@@ -1,4 +1,4 @@
1
- //= require hyperloop-loader-system
1
+ //= require hyperloop-loader-system-code
2
2
  //= require hyperloop-loader-application
3
3
  Opal.load('hyperloop-loader-system-code')
4
4
  Opal.load('hyperloop-loader-application')
@@ -1,4 +1,4 @@
1
- //= require hyperloop-prerender-loader-system
1
+ //= require hyperloop-prerender-loader-system-code
2
2
  //= require hyperloop-prerender-loader-application
3
3
  Opal.load('hyperloop-prerender-loader-system-code')
4
4
  Opal.load('hyperloop-prerender-loader-application')
metadata CHANGED
@@ -1,31 +1,80 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hyperloop-config
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.11
4
+ version: 0.99.0
5
5
  platform: ruby
6
6
  authors:
7
- - catmando
7
+ - Mitch VanDuyn
8
+ - Jan Biedermann
8
9
  autorequire:
9
10
  bindir: exe
10
11
  cert_chain: []
11
- date: 2017-09-17 00:00:00.000000000 Z
12
+ date: 2018-09-24 00:00:00.000000000 Z
12
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: mini_racer
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: 0.1.15
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: 0.1.15
13
42
  - !ruby/object:Gem::Dependency
14
43
  name: opal
15
44
  requirement: !ruby/object:Gem::Requirement
16
45
  requirements:
17
46
  - - ">="
18
47
  - !ruby/object:Gem::Version
19
- version: '0'
48
+ version: 0.11.0
49
+ - - "<"
50
+ - !ruby/object:Gem::Version
51
+ version: 0.12.0
20
52
  type: :runtime
21
53
  prerelease: false
22
54
  version_requirements: !ruby/object:Gem::Requirement
23
55
  requirements:
24
56
  - - ">="
25
57
  - !ruby/object:Gem::Version
26
- version: '0'
58
+ version: 0.11.0
59
+ - - "<"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.12.0
27
62
  - !ruby/object:Gem::Dependency
28
63
  name: opal-browser
64
+ requirement: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.2.0
69
+ type: :runtime
70
+ prerelease: false
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.2.0
76
+ - !ruby/object:Gem::Dependency
77
+ name: uglifier
29
78
  requirement: !ruby/object:Gem::Requirement
30
79
  requirements:
31
80
  - - ">="
@@ -44,58 +93,58 @@ dependencies:
44
93
  requirements:
45
94
  - - "~>"
46
95
  - !ruby/object:Gem::Version
47
- version: '1.12'
96
+ version: 1.16.0
48
97
  type: :development
49
98
  prerelease: false
50
99
  version_requirements: !ruby/object:Gem::Requirement
51
100
  requirements:
52
101
  - - "~>"
53
102
  - !ruby/object:Gem::Version
54
- version: '1.12'
103
+ version: 1.16.0
55
104
  - !ruby/object:Gem::Dependency
56
- name: rake
105
+ name: chromedriver-helper
57
106
  requirement: !ruby/object:Gem::Requirement
58
107
  requirements:
59
- - - "~>"
108
+ - - ">="
60
109
  - !ruby/object:Gem::Version
61
- version: '10.0'
110
+ version: '0'
62
111
  type: :development
63
112
  prerelease: false
64
113
  version_requirements: !ruby/object:Gem::Requirement
65
114
  requirements:
66
- - - "~>"
115
+ - - ">="
67
116
  - !ruby/object:Gem::Version
68
- version: '10.0'
117
+ version: '0'
69
118
  - !ruby/object:Gem::Dependency
70
119
  name: hyper-spec
71
120
  requirement: !ruby/object:Gem::Requirement
72
121
  requirements:
73
- - - ">="
122
+ - - '='
74
123
  - !ruby/object:Gem::Version
75
- version: '0'
124
+ version: 0.99.0
76
125
  type: :development
77
126
  prerelease: false
78
127
  version_requirements: !ruby/object:Gem::Requirement
79
128
  requirements:
80
- - - ">="
129
+ - - '='
81
130
  - !ruby/object:Gem::Version
82
- version: '0'
131
+ version: 0.99.0
83
132
  - !ruby/object:Gem::Dependency
84
- name: rspec
133
+ name: opal-rails
85
134
  requirement: !ruby/object:Gem::Requirement
86
135
  requirements:
87
- - - ">="
136
+ - - "~>"
88
137
  - !ruby/object:Gem::Version
89
- version: '0'
138
+ version: 0.9.4
90
139
  type: :development
91
140
  prerelease: false
92
141
  version_requirements: !ruby/object:Gem::Requirement
93
142
  requirements:
94
- - - ">="
143
+ - - "~>"
95
144
  - !ruby/object:Gem::Version
96
- version: '0'
145
+ version: 0.9.4
97
146
  - !ruby/object:Gem::Dependency
98
- name: timecop
147
+ name: pry
99
148
  requirement: !ruby/object:Gem::Requirement
100
149
  requirements:
101
150
  - - ">="
@@ -109,7 +158,7 @@ dependencies:
109
158
  - !ruby/object:Gem::Version
110
159
  version: '0'
111
160
  - !ruby/object:Gem::Dependency
112
- name: opal-rails
161
+ name: puma
113
162
  requirement: !ruby/object:Gem::Requirement
114
163
  requirements:
115
164
  - - ">="
@@ -123,21 +172,21 @@ dependencies:
123
172
  - !ruby/object:Gem::Version
124
173
  version: '0'
125
174
  - !ruby/object:Gem::Dependency
126
- name: sqlite3
175
+ name: rails
127
176
  requirement: !ruby/object:Gem::Requirement
128
177
  requirements:
129
178
  - - ">="
130
179
  - !ruby/object:Gem::Version
131
- version: '0'
180
+ version: 4.0.0
132
181
  type: :development
133
182
  prerelease: false
134
183
  version_requirements: !ruby/object:Gem::Requirement
135
184
  requirements:
136
185
  - - ">="
137
186
  - !ruby/object:Gem::Version
138
- version: '0'
187
+ version: 4.0.0
139
188
  - !ruby/object:Gem::Dependency
140
- name: rails
189
+ name: rake
141
190
  requirement: !ruby/object:Gem::Requirement
142
191
  requirements:
143
192
  - - ">="
@@ -151,21 +200,35 @@ dependencies:
151
200
  - !ruby/object:Gem::Version
152
201
  version: '0'
153
202
  - !ruby/object:Gem::Dependency
154
- name: jquery-rails
203
+ name: rspec
155
204
  requirement: !ruby/object:Gem::Requirement
156
205
  requirements:
157
- - - ">="
206
+ - - "~>"
158
207
  - !ruby/object:Gem::Version
159
- version: '0'
208
+ version: 3.7.0
160
209
  type: :development
161
210
  prerelease: false
162
211
  version_requirements: !ruby/object:Gem::Requirement
163
212
  requirements:
164
- - - ">="
213
+ - - "~>"
165
214
  - !ruby/object:Gem::Version
166
- version: '0'
215
+ version: 3.7.0
167
216
  - !ruby/object:Gem::Dependency
168
217
  name: rubocop
218
+ requirement: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - "~>"
221
+ - !ruby/object:Gem::Version
222
+ version: 0.51.0
223
+ type: :development
224
+ prerelease: false
225
+ version_requirements: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - "~>"
228
+ - !ruby/object:Gem::Version
229
+ version: 0.51.0
230
+ - !ruby/object:Gem::Dependency
231
+ name: sqlite3
169
232
  requirement: !ruby/object:Gem::Requirement
170
233
  requirements:
171
234
  - - ">="
@@ -178,37 +241,63 @@ dependencies:
178
241
  - - ">="
179
242
  - !ruby/object:Gem::Version
180
243
  version: '0'
244
+ - !ruby/object:Gem::Dependency
245
+ name: timecop
246
+ requirement: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - "~>"
249
+ - !ruby/object:Gem::Version
250
+ version: 0.8.1
251
+ type: :development
252
+ prerelease: false
253
+ version_requirements: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - "~>"
256
+ - !ruby/object:Gem::Version
257
+ version: 0.8.1
181
258
  description:
182
259
  email:
183
260
  - mitch@catprint.com
261
+ - jan@kursator.com
184
262
  executables: []
185
263
  extensions: []
186
264
  extra_rdoc_files: []
187
265
  files:
188
266
  - ".gitignore"
189
- - CODE_OF_CONDUCT.md
267
+ - ".travis.yml"
268
+ - DOCS.md
190
269
  - Gemfile
191
- - LICENSE.txt
270
+ - Gemfile.lock
192
271
  - README.md
193
272
  - Rakefile
194
273
  - hyperloop-config.gemspec
195
274
  - lib/hyperloop-config.rb
196
275
  - lib/hyperloop-loader-application.rb.erb
197
276
  - lib/hyperloop-loader-system-code.rb.erb
198
- - lib/hyperloop-loader-system.js.erb
199
277
  - lib/hyperloop-loader.js
200
278
  - lib/hyperloop-prerender-loader-application.rb.erb
201
279
  - lib/hyperloop-prerender-loader-system-code.rb.erb
202
- - lib/hyperloop-prerender-loader-system.js.erb
203
280
  - lib/hyperloop-prerender-loader.js
281
+ - lib/hyperloop/active_support_string_inquirer.rb
282
+ - lib/hyperloop/autoloader.rb
283
+ - lib/hyperloop/autoloader_starter.rb
204
284
  - lib/hyperloop/client_readers.rb
205
285
  - lib/hyperloop/client_stubs.rb
286
+ - lib/hyperloop/config/version.rb
206
287
  - lib/hyperloop/config_settings.rb
207
288
  - lib/hyperloop/context.rb
289
+ - lib/hyperloop/env.rb
290
+ - lib/hyperloop/environment/development/hyperloop_env.rb
291
+ - lib/hyperloop/environment/production/hyperloop_env.rb
292
+ - lib/hyperloop/environment/staging/hyperloop_env.rb
293
+ - lib/hyperloop/environment/test/hyperloop_env.rb
208
294
  - lib/hyperloop/imports.rb
295
+ - lib/hyperloop/js_imports.rb
209
296
  - lib/hyperloop/on_client.rb
297
+ - lib/hyperloop/on_error.rb
210
298
  - lib/hyperloop/rail_tie.rb
211
- homepage: http://ruby-hyperloop.io
299
+ - lib/hyperloop/string.rb
300
+ homepage: http://ruby-hyperloop.org
212
301
  licenses:
213
302
  - MIT
214
303
  metadata: {}
@@ -228,7 +317,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
228
317
  version: '0'
229
318
  requirements: []
230
319
  rubyforge_project:
231
- rubygems_version: 2.6.12
320
+ rubygems_version: 2.7.7
232
321
  signing_key:
233
322
  specification_version: 4
234
323
  summary: Provides a single point configuration module for hyperloop gems