isomorfeus-installer 1.0.0.delta6 → 1.0.0.delta7

Sign up to get free protection for your applications and to get access to all the features.
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
- })