isomorfeus-installer 1.0.0.delta6 → 1.0.0.delta7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 94b21b92089fa246ecb9c6781b0be126cd02e5f7c9b1b38bfe7c57744368788c
4
- data.tar.gz: 8fa5982cd3e3d929b8d7d5efd9d9d667dfa295e7476b4105db13b7b31ce1f186
3
+ metadata.gz: 29383601375ed55792f3e0aa675aed0ed26d6d3c8156ec156ed1dd0e502cc1ce
4
+ data.tar.gz: 1973625a51378a42e2e25dd686853c4907dfaeb85a035476f8e4a33bb91d8492
5
5
  SHA512:
6
- metadata.gz: 4f01bf9346b9c163f68138cac2de3b0ce7972ed9ced96ebc1c1442fec7108efb85f888dc07066ada2f9c782c3347622fd7e33f23d63132a9ff9cfaaff877e507
7
- data.tar.gz: 5543ec01e5664027e4d58616332a64a4eaa2e10c0ec510de52511c244ba611e19db28b557879003aeb6e84a12c25e6481d46b57cb4509d2b3c440be5b3c23c4e
6
+ metadata.gz: cdc547f0573241d5b959af4c6e56079f790ccdc0d7b753c3a65124f7ac1cce2dc36745f28ec57fc39b168b11d8c0279ce37711078cf478632a231f9e90dac106
7
+ data.tar.gz: 3913830a97ed5c32c61b87e1d3fbfd90c369e0b21300b2c247c7b0f774a77f121a7b47b05bd43525c6ff5a6169e906d3119027469d430b1e90ff8cf863d8c92b
@@ -22,14 +22,6 @@ module Isomorfeus
22
22
  rack_servers[name] = props
23
23
  end
24
24
 
25
- def self.add_transport_module(name, props)
26
- transports[name] = props
27
- end
28
-
29
- def self.add_transport_store_module(name, props)
30
- transport_stores[name] = props
31
- end
32
-
33
25
  class << self
34
26
  # application options
35
27
  attr_reader :app_class
@@ -43,8 +35,6 @@ module Isomorfeus
43
35
  attr_reader :project_name
44
36
  attr_accessor :rack_server
45
37
  attr_accessor :rack_server_name
46
- attr_accessor :transport
47
- attr_accessor :transport_store
48
38
 
49
39
  # installer options
50
40
  attr_reader :options
@@ -82,14 +72,6 @@ module Isomorfeus
82
72
  rack_servers.keys.sort
83
73
  end
84
74
 
85
- def self.sorted_transports
86
- transports.keys
87
- end
88
-
89
- def self.sorted_transport_stores
90
- transport_stores.keys
91
- end
92
-
93
75
  def self.databases
94
76
  @databases ||= {}
95
77
  end
@@ -110,18 +92,10 @@ module Isomorfeus
110
92
  @rack_servers ||= {}
111
93
  end
112
94
 
113
- def self.transports
114
- @transports ||= {}
115
- end
116
-
117
- def self.transport_stores
118
- @transport_stores ||= {}
119
- end
120
-
121
95
  # installer options and config
122
96
 
123
97
  def self.module_directories
124
- %w[databases transports transport_stores]
98
+ %w[databases]
125
99
  end
126
100
 
127
101
  # installer paths
@@ -194,12 +168,9 @@ module Isomorfeus
194
168
  isomorfeus_config: create_isomorfeus_config,
195
169
  middlewares: create_middlewares,
196
170
  middlewares_includes: middlewares_includes,
197
- transport_rack_app_mount_path: transport&.rack_app_mount_path,
198
- transport_rack_app: transport&.rack_app,
199
- transport_config: transport&.config,
200
- use_transport: use_transport?,
201
- use_transport_rack_app: use_transport_rack_app? }
171
+ rack_server_init: rack_server[:rack_server_init] }
202
172
  create_file_from_template('app.rb.erb', "#{@project_name}_app.rb", data_hash)
173
+ create_file_from_template( rack_server[:init_template], rack_server[:init_template][0..-5], {})
203
174
  data_hash = { app_require: app_require, app_class: app_class }
204
175
  create_file_from_template('config.ru.erb', 'config.ru', data_hash)
205
176
  create_file_from_template(File.join('app_loader.rb.erb'), 'app_loader.rb', {})
@@ -210,19 +181,13 @@ module Isomorfeus
210
181
  use_database: use_database?,
211
182
  use_i18n: use_i18n?,
212
183
  use_operation: use_operation?,
213
- use_policy: use_policy?,
214
- use_transport: use_transport?,
215
- transport_requires: use_transport? ? transport.requires : nil }
216
-
184
+ use_policy: use_policy? }
217
185
  create_file_from_template('isomorfeus_loader.rb.erb', File.join(isomorfeus_path, 'isomorfeus_loader.rb'), data_hash)
218
186
  create_file_from_template('isomorfeus_web_worker_loader.rb.erb', File.join(isomorfeus_path, 'isomorfeus_web_worker_loader.rb'), data_hash)
219
187
  end
220
188
 
221
189
  def self.install_js_entries
222
-
223
- data_hash = { use_transport: use_transport_import?,
224
- transport_import: (use_transport_import? ? transport.js_import : nil),
225
- transport_global: (use_transport_import? ? transport.js_global : nil) }
190
+ data_hash = {}
226
191
  create_file_from_template('application.js.erb', entrypoint_path('application.js'), data_hash)
227
192
  create_file_from_template('application_common.js.erb', entrypoint_path('application_common.js'), data_hash)
228
193
  create_file_from_template('application_ssr.js.erb', entrypoint_path('application_ssr.js'), data_hash)
@@ -239,10 +204,7 @@ module Isomorfeus
239
204
  rack_server_gems << generate_gem_line(gem)
240
205
  end
241
206
  transport_gems = ''
242
- Isomorfeus::Installer.transports[options[:transport]]&.fetch(:gems)&.each do |gem|
243
- transport_gems << generate_gem_line(gem)
244
- end
245
- Isomorfeus::Installer.transport_stores[options[:transport_store]]&.fetch(:gems)&.each do |gem|
207
+ [ { name: 'isomorfeus-transport', version: "~> #{Isomorfeus::Installer::VERSION}", require: true } ]&.each do |gem|
246
208
  transport_gems << generate_gem_line(gem)
247
209
  end
248
210
  database_gems = ''
@@ -284,7 +246,7 @@ module Isomorfeus
284
246
  end
285
247
 
286
248
  def self.create_middlewares
287
- "use_isomorfeus_middlewares" if options.has_key?(:transport)
249
+ "use_isomorfeus_middlewares"
288
250
  end
289
251
 
290
252
  def self.create_isomorfeus_config
@@ -292,14 +254,7 @@ module Isomorfeus
292
254
  end
293
255
 
294
256
  def self.create_package_json
295
- npms = ''
296
- if use_transport? && transports[options[:transport]].has_key?(:npms)
297
- transports[options[:transport]][:npms].each do |npm|
298
- npms << " \"#{npm[:name]}\": \"#{npm[:version]}\",\n"
299
- end
300
- end
301
- data_hash = { application_name: app_class,
302
- npm_packages: npms.chop }
257
+ data_hash = { application_name: app_class }
303
258
  create_file_from_template('package.json.erb', 'package.json', data_hash)
304
259
  end
305
260
 
@@ -334,17 +289,5 @@ module Isomorfeus
334
289
  def self.use_policy?
335
290
  options['policy']
336
291
  end
337
-
338
- def self.use_transport?
339
- options.has_key?('transport')
340
- end
341
-
342
- def self.use_transport_import?
343
- use_transport? && transport&.respond_to?(:js_import)
344
- end
345
-
346
- def self.use_transport_rack_app?
347
- transport&.respond_to?(:rack_app)
348
- end
349
292
  end
350
293
  end
@@ -5,16 +5,12 @@ module Isomorfeus
5
5
  desc "new project_name", "create a new isomorfeus project with project_name"
6
6
 
7
7
  option :database, required: false, aliases: '-d',
8
- desc: "Select database, one of: #{Isomorfeus::Installer.sorted_databases.join(', ')}. (optional, requires transport)"
9
- option :i18n, default: false, type: :boolean, aliases: '-i', desc: "Use i18n module. (optional, requires transport)"
10
- option :operation, default: false, type: :boolean, aliases: '-o', desc: "Use operation module. (optional, requires transport)"
11
- option :policy, default: false, type: :boolean, aliases: '-p', desc: "Use policy module. (optional, requires transport)"
12
- option :rack_server, default: 'puma', aliases: '-r',
8
+ desc: "Select database, one of: #{Isomorfeus::Installer.sorted_databases.join(', ')}. (optional)"
9
+ option :i18n, default: false, type: :boolean, aliases: '-i', desc: "Use i18n module. (optional)"
10
+ option :operation, default: false, type: :boolean, aliases: '-o', desc: "Use operation module. (optional)"
11
+ option :policy, default: false, type: :boolean, aliases: '-p', desc: "Use policy module. (optional)"
12
+ option :rack_server, default: 'iodine', aliases: '-r',
13
13
  desc: "Select rack server, one of: #{Isomorfeus::Installer.sorted_rack_servers.join(', ')}. (optional)"
14
- option :transport, required: false, aliases: '-t',
15
- desc: "Select transport, one of: #{Isomorfeus::Installer.sorted_transports.join(', ')}. (optional if no other features that depend on a transport are used)"
16
- option :transport_store, required: false, aliases: '-e',
17
- desc: "Select transport store, one of: #{Isomorfeus::Installer.sorted_transport_stores.join(', ')}. (optional with no transport, required if a transport is used)"
18
14
  option :yarn_and_bundle, default: true, required: false, type: :boolean, aliases: '-y', desc: "Execute yarn install and bundle install. (optional)"
19
15
  def new(project_name)
20
16
  Isomorfeus::Installer.set_project_names(project_name)
@@ -34,8 +34,6 @@ module Isomorfeus
34
34
  Isomorfeus::Installer.create_components
35
35
  Isomorfeus::Installer.create_spec
36
36
 
37
- Isomorfeus::Installer.transport&.install(root)
38
-
39
37
  Isomorfeus::Installer.create_package_json
40
38
  Isomorfeus::Installer.create_gemfile
41
39
  Isomorfeus::Installer.create_procfile
@@ -14,35 +14,11 @@ module Isomorfeus
14
14
  end
15
15
  end
16
16
 
17
- if options.key?(:transport) && !options.key?(:transport_store)
18
- puts "A transport store (-s) is required when using a transport."
19
- exit 1
20
- elsif options.key?(:transport_store) && !options.key?(:transport)
21
- puts "A transport (-t) is required when using a transport store."
22
- exit 1
23
- end
24
-
25
- if options.key?(:transport_store)
26
- if installer.sorted_transport_stores.include?(options[:transport_store])
27
- installer.transport_store = installer.transport_stores[options[:transport_store]]&.fetch(:installer)
28
- else
29
- puts "Transport store #{options[:transport_store]} not available!"; exit 1
30
- end
31
- end
32
-
33
- if options.key?(:transport)
34
- if installer.sorted_transports.include?(options[:transport])
35
- installer.transport = installer.transports[options[:transport]]&.fetch(:installer)
36
- else
37
- puts "Transport #{options[:transport]} not available!"; exit 1
38
- end
39
- end
40
-
41
17
  if options.key?(:rack_server) && installer.sorted_rack_servers.include?(options[:rack_server])
42
18
  installer.rack_server = installer.rack_servers[options[:rack_server]]
43
19
  installer.rack_server_name = options[:rack_server]
44
20
  else
45
- installer.rack_server = installer.rack_servers['puma']
21
+ installer.rack_server = installer.rack_servers['iodine']
46
22
  end
47
23
  end
48
24
  end
@@ -1,19 +1,11 @@
1
- Isomorfeus::Installer.add_rack_server('agoo', {
2
- gems: [ { name: 'agoo', version: "~> 2.8.3" } ],
3
- start_command: 'bundle exec rackup -s agoo'
4
- })
5
-
6
- Isomorfeus::Installer.add_rack_server('falcon', {
7
- gems: [ { name: 'falcon', version: "~> 0.30.0", require: false } ],
8
- start_command: 'bundle exec falcon serve'
9
- })
1
+ # Isomorfeus::Installer.add_rack_server('agoo', {
2
+ # gems: [ { name: 'agoo', version: "~> 2.8.3" } ],
3
+ # start_command: 'bundle exec rackup -s agoo'
4
+ # })
10
5
 
11
6
  Isomorfeus::Installer.add_rack_server('iodine', {
12
- gems: [ { name: 'iodine', version: "~> 0.7.31", require: false } ],
13
- start_command: 'bundle exec iodine'
14
- })
15
-
16
- Isomorfeus::Installer.add_rack_server('puma', {
17
- gems: [ { name: 'puma', version: "~> 3.12.1", require: false } ],
18
- start_command: 'bundle exec puma'
7
+ gems: [ { name: 'iodine', version: "~> 0.7.32", require: true } ],
8
+ start_command: 'bundle exec iodine',
9
+ init_template: 'iodine_config.rb.erb',
10
+ rack_server_init: "require_relative 'iodine_config'"
19
11
  })
@@ -12,8 +12,8 @@ gem 'opal-webpack-loader', '>= 0.9.2'
12
12
 
13
13
  gem 'opal-autoloader', '~> 0.0.3'
14
14
  gem 'isomorfeus-redux', '~> 4.0.7'
15
- gem 'isomorfeus-react', '~> 16.8.3'
16
- #<%= transport_gems %>
15
+ <%= transport_gems %>
16
+ gem 'isomorfeus-react', '~> 16.8.7'
17
17
  #<%= database_gems %>
18
18
  #<%= policy_gems %>
19
19
  #<%= operation_gems %>
@@ -25,5 +25,5 @@ end
25
25
 
26
26
  group :test do
27
27
  gem 'rspec', '~> 3.6.0'
28
- gem 'isomorfeus-puppetmaster', '~> 0.2.7'
28
+ gem 'isomorfeus-puppetmaster', '~> 0.2.8'
29
29
  end
@@ -1,7 +1,7 @@
1
1
  require_relative 'app_loader'
2
2
  require_relative 'owl_init'
3
+ <%= rack_server_init %>
3
4
  <%= isomorfeus_config %>
4
- <% if use_transport %><%= transport_config %><% end %>
5
5
 
6
6
  class <%= app_class %> < Roda
7
7
  include OpalWebpackLoader::ViewHelper
@@ -10,6 +10,8 @@ global.Link = Link;
10
10
  global.NavLink = NavLink;
11
11
  global.Route = Route;
12
12
  global.Switch = Switch;
13
+ import WebSocket from 'ws';
14
+ global.WebSocket = WebSocket;
13
15
  // import modules common to browser and server side rendering (ssr)
14
16
  // environments from application_common.js
15
17
  import './application_common.js';
@@ -0,0 +1,10 @@
1
+ require 'etc'
2
+ Iodine.threads = ENV['THREADS'] || 1
3
+ Iodine.workers = ENV['WORKERS'] || Etc.nprocessors
4
+
5
+ if ENV['REDIS_URL']
6
+ Iodine::PubSub.default = Iodine::PubSub::Redis.new(ENV['REDIS_URL'])
7
+ puts "* Using Redis for pub/sub."
8
+ else
9
+ puts "* Using Iodine for pub/sub within the process cluster."
10
+ end
@@ -1,11 +1,9 @@
1
1
  require 'opal'
2
2
  require 'opal-autoloader'
3
3
  require 'isomorfeus-redux'
4
- require 'isomorfeus-react'
5
- <% if use_transport %>
6
4
  require 'isomorfeus-transport'
7
- <%= transport_requires %>
8
- <% end %>
5
+ require 'isomorfeus-react'
6
+
9
7
  <% if use_database %>require 'isomorfeus-record'<% end %>
10
8
  <% if use_policy %>require 'isomorfeus-policy'<% end %>
11
9
  <% if use_operation %>require 'isomorfeus-operation'<% end %>
@@ -7,12 +7,13 @@
7
7
  "react-dom": "16.8.6",
8
8
  "react-router": "^5.0.0",
9
9
  "react-router-dom": "^5.0.0",
10
- "redux": "^4.0.1"
10
+ "redux": "^4.0.1",
11
+ "ws": "^7.0.1"
11
12
  },
12
13
  "scripts": {
13
14
  "debug": "webpack-dev-server --config=webpack/debug.js",
14
15
  "development": "webpack-dev-server --config=webpack/development.js",
15
- "production_build": "webpack --config=webpack/production.js"
16
+ "production_build": "parallel-webpack --config=webpack/production.js"
16
17
  },
17
18
  "devDependencies": {
18
19
  "cache-loader": "^4.0.0",
@@ -23,6 +24,7 @@
23
24
  "file-loader": "^4.0.0",
24
25
  "jsdom": "15.1.1",
25
26
  "node-sass": "^4.12.0",
27
+ "parallel-webpack": "^2.4.0",
26
28
  "puppeteer": "1.17.0",
27
29
  "sass-loader": "^7.1.0",
28
30
  "style-loader": "^0.23.1",
@@ -16,5 +16,10 @@ Isomorfeus::Puppetmaster.boot_app
16
16
 
17
17
  RSpec.configure do |config|
18
18
  config.include Isomorfeus::Puppetmaster::DSL
19
+
20
+ config.after(:suite) do
21
+ Iodine.stop if Isomorfeus::Puppetmaster.server == :iodine
22
+ sleep 10
23
+ end
19
24
  end
20
25
 
@@ -1,5 +1,5 @@
1
1
  module Isomorfeus
2
2
  module Installer
3
- VERSION = '1.0.0.delta6'
3
+ VERSION = '1.0.0.delta7'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isomorfeus-installer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.delta6
4
+ version: 1.0.0.delta7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Biedermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-12 00:00:00.000000000 Z
11
+ date: 2019-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -148,7 +148,6 @@ files:
148
148
  - lib/isomorfeus/installer/templates/Gemfile.erb
149
149
  - lib/isomorfeus/installer/templates/Procfile.erb
150
150
  - lib/isomorfeus/installer/templates/ProcfileDebug.erb
151
- - lib/isomorfeus/installer/templates/actioncable/actioncable_ru.erb
152
151
  - lib/isomorfeus/installer/templates/app.rb.erb
153
152
  - lib/isomorfeus/installer/templates/app_loader.rb.erb
154
153
  - lib/isomorfeus/installer/templates/application.css.erb
@@ -158,6 +157,7 @@ files:
158
157
  - lib/isomorfeus/installer/templates/application_web_worker.js.erb
159
158
  - lib/isomorfeus/installer/templates/config.ru.erb
160
159
  - lib/isomorfeus/installer/templates/hello_component.rb.erb
160
+ - lib/isomorfeus/installer/templates/iodine_config.rb.erb
161
161
  - lib/isomorfeus/installer/templates/isomorfeus_loader.rb.erb
162
162
  - lib/isomorfeus/installer/templates/isomorfeus_web_worker_loader.rb.erb
163
163
  - lib/isomorfeus/installer/templates/my_app.rb.erb
@@ -166,8 +166,6 @@ files:
166
166
  - lib/isomorfeus/installer/templates/spec_helper.rb.erb
167
167
  - lib/isomorfeus/installer/templates/test_spec.rb.erb
168
168
  - lib/isomorfeus/installer/templates/welcome_component.rb.erb
169
- - lib/isomorfeus/installer/transport_stores/redis.rb
170
- - lib/isomorfeus/installer/transports/actioncable.rb
171
169
  - lib/isomorfeus/installer/version.rb
172
170
  homepage: http://isomorfeus.com
173
171
  licenses:
@@ -1,3 +0,0 @@
1
- <%= requires %>
2
-
3
- run ActionCable.server
@@ -1,14 +0,0 @@
1
- module Isomorfeus
2
- module Installer
3
- module TransportStores
4
- module Redis
5
-
6
- end
7
- end
8
- end
9
- end
10
-
11
- Isomorfeus::Installer.add_transport_store_module('redis', {
12
- gems: [ { name: 'isomorfeus-transport-store-redis', version: "~> #{Isomorfeus::Installer::VERSION}" } ],
13
- installer: Isomorfeus::Installer::TransportStores::Redis
14
- })
@@ -1,43 +0,0 @@
1
- module Isomorfeus
2
- module Installer
3
- module Transports
4
- module ActionCable
5
- def self.install(root)
6
- # data_hash = { requires: Isomorfeus::Installer.create_requires }
7
- # Isomorfeus::Installer.create_file_from_template(File.join('actioncable', 'actioncable_ru.erb'), 'actioncable.ru', data_hash)
8
- end
9
-
10
- def self.config
11
- 'ActionCable::Server::Base.config.logger = ActiveSupport::Logger.new(STDOUT)'
12
- end
13
-
14
- def self.js_import
15
- "import ActionCable from 'actioncable';"
16
- end
17
-
18
- def self.js_global
19
- "global.ActionCable = ActionCable;"
20
- end
21
-
22
- def self.rack_app
23
- 'ActionCable.server'
24
- end
25
-
26
- def self.rack_app_mount_path
27
- 'websocket'
28
- end
29
-
30
- def self.requires
31
- "require 'isomorfeus-transport-actioncable'"
32
- end
33
- end
34
- end
35
- end
36
- end
37
-
38
- Isomorfeus::Installer.add_transport_module('actioncable', {
39
- gems: [ { name: 'isomorfeus-transport', version: "~> #{Isomorfeus::Installer::VERSION}" },
40
- { name: 'isomorfeus-transport-actioncable', version: "~> #{Isomorfeus::Installer::VERSION}" } ],
41
- npms: [ { name: 'actioncable', version: '^5.2.2' } ],
42
- installer: Isomorfeus::Installer::Transports::ActionCable
43
- })