lanes 0.8.1 → 0.8.2
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 +4 -4
- data/client/lanes/config.js +0 -108
- data/lanes.gemspec +1 -1
- data/lib/js/jest.config.json +0 -5
- data/lib/js/jest/mocks.js +1 -1
- data/lib/js/jest/setup.js +4 -12
- data/lib/js/webpack.config.js +9 -8
- data/lib/lanes.rb +1 -0
- data/lib/lanes/command/app.rb +12 -5
- data/lib/lanes/command/jest.rb +6 -4
- data/lib/lanes/command/server.rb +3 -15
- data/lib/lanes/extension.rb +7 -0
- data/lib/lanes/version.rb +1 -1
- data/lib/lanes/webpack.rb +31 -29
- data/package.json +33 -32
- data/{.babelrc → templates/.babelrc} +0 -0
- data/templates/Gemfile +1 -1
- data/templates/client/index.js +4 -17
- data/templates/config/webpack.config.js +105 -0
- data/templates/js/jest.config.json +13 -8
- data/templates/lib/namespace/extension.rb +1 -1
- data/templates/{specs → spec}/client/Screen.coffee +0 -0
- data/templates/{specs → spec}/client/components/ComponentSpec.coffee +0 -0
- data/templates/{specs → spec}/client/models/ModelSpec.coffee +0 -0
- data/templates/{specs → spec}/client/setup.js +0 -0
- data/templates/{specs → spec}/fixtures/namespace/model.yml +0 -0
- data/templates/{specs → spec}/server/model_spec.rb +0 -0
- data/templates/{specs → spec}/server/spec_helper.rb +0 -0
- data/yarn.lock +1 -5
- metadata +14 -16
- data/lib/js/webpack-status-plugin.js +0 -78
- data/lib/lanes/command/jest_runner.rb +0 -63
- data/lib/lanes/jest.rb +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4e996b32bc8dc10aa628ae2eaf9683e14f070ae9
|
4
|
+
data.tar.gz: 7b1e8f708c347328a33e5962068db0df86669ad6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 841d9120509bc907ea6e434068b82346e37efdf9ed85baefa2e3f1293c3e947af65ed3c53ae4060f47e89caddcff2e02c72e9c4f785ce869b86a2651dd31fb49
|
7
|
+
data.tar.gz: 9828cea8c1618a6635b090a19c93260b6ffe1939484325b2e4f26d41040cd786319a9d3893bb692e867a198cd6c0a31f6f461ecdff714ee0948df79c2e31f52d
|
data/client/lanes/config.js
CHANGED
@@ -35,111 +35,3 @@ class Config {
|
|
35
35
|
|
36
36
|
const ConfigInstance = new Config();
|
37
37
|
export default ConfigInstance;
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
// static initClass() {
|
42
|
-
|
43
|
-
// this.prototype.mixins = [ Lanes.Models.Mixins.FileSupport ];
|
44
|
-
|
45
|
-
// this.prototype.props = {
|
46
|
-
// id: {type:"integer"},
|
47
|
-
// settings: "object"
|
48
|
-
// };
|
49
|
-
|
50
|
-
// this.prototype.associations = {
|
51
|
-
// logo: { model: "Lanes.Models.Asset" },
|
52
|
-
// smtp: { model: "Lanes.Models.SmtpSettings" },
|
53
|
-
// print_logo: { model: "Lanes.Models.Asset" }
|
54
|
-
// };
|
55
|
-
// }
|
56
|
-
|
57
|
-
// modelTypeIdentifier() { return 'system-settings'; }
|
58
|
-
// url() { return Lanes.config.api_path + '/system-settings'; }
|
59
|
-
// initialize() {
|
60
|
-
// this.on('change:settings', this.setDefaultSettings);
|
61
|
-
// this.smtp.set(__guard__(__guard__(this.settings, x1 => x1.lanes), x => x.smtp));
|
62
|
-
// return this.setDefaultSettings();
|
63
|
-
// }
|
64
|
-
|
65
|
-
// setDefaultSettings() {
|
66
|
-
// if (!this.settings) { this.settings = {}; }
|
67
|
-
// return this.settings.lanes || (this.settings.lanes = {});
|
68
|
-
// }
|
69
|
-
|
70
|
-
// forExtension(ext) {
|
71
|
-
// return this.settings[ext] || (this.settings[ext] = {});
|
72
|
-
// }
|
73
|
-
|
74
|
-
// setValueForExtension(ext, key, value) {
|
75
|
-
// return this.forExtension(ext)[key] = value;
|
76
|
-
// }
|
77
|
-
|
78
|
-
// set(data) {
|
79
|
-
// let ret = super.set(...arguments);
|
80
|
-
// this.smtp.set(__guard__(__guard__(this.settings, x1 => x1.lanes), x => x.smtp));
|
81
|
-
// return ret;
|
82
|
-
// }
|
83
|
-
|
84
|
-
// dataForSave() {
|
85
|
-
// let data = super.dataForSave(...arguments);
|
86
|
-
// data.settings.lanes.smtp = this.smtp.serialize();
|
87
|
-
// return data;
|
88
|
-
// }
|
89
|
-
|
90
|
-
|
91
|
-
// SystemSettings.initClass();
|
92
|
-
|
93
|
-
// class Config extends Lanes.Models.State {
|
94
|
-
// static initClass() {
|
95
|
-
|
96
|
-
// this.prototype.session = {
|
97
|
-
// csrf_token: { type: 'string', setOnce: true },
|
98
|
-
// root_path: { type: 'string', setOnce: true },
|
99
|
-
// api_path: { type: 'string', default: '/api' },
|
100
|
-
// environment: { type: 'string', setOnce: true },
|
101
|
-
// system_settings: { type: 'state', required: true },
|
102
|
-
// assets_path_prefix: { type: 'string', setOnce: true },
|
103
|
-
// api_host: { type: 'string', default: `//${window.location.host }` },
|
104
|
-
// initial_workspace_screen_id: { type: 'string', setOnce: true }
|
105
|
-
// };
|
106
|
-
|
107
|
-
// this.prototype.derived = {
|
108
|
-
// env: {
|
109
|
-
// deps: ['environment'], fn() {
|
110
|
-
// return {
|
111
|
-
// test: this.environment === 'test',
|
112
|
-
// development: this.environment === 'development',
|
113
|
-
// production: this.environment === 'production'
|
114
|
-
// };
|
115
|
-
// }
|
116
|
-
// }
|
117
|
-
// };
|
118
|
-
// }
|
119
|
-
|
120
|
-
// initialize() {
|
121
|
-
// return this.system_settings = new SystemSettings;
|
122
|
-
// }
|
123
|
-
|
124
|
-
// bootstrap(options) {
|
125
|
-
// if (options.system_settings) {
|
126
|
-
// this.system_settings.set(options.system_settings);
|
127
|
-
// delete options.system_settings;
|
128
|
-
// }
|
129
|
-
// this.set(options);
|
130
|
-
// if (_.isObject(options)) { return Lanes.Extensions.setBootstrapData(options); }
|
131
|
-
// }
|
132
|
-
// }
|
133
|
-
// Config.initClass();
|
134
|
-
|
135
|
-
// let configInstance = new Config;
|
136
|
-
|
137
|
-
// Object.defineProperty(Lanes, 'config', {
|
138
|
-
// get() { return configInstance; },
|
139
|
-
// set() { throw new Error("Unable to reset config"); }
|
140
|
-
// }
|
141
|
-
// );
|
142
|
-
|
143
|
-
// function __guard__(value, transform) {
|
144
|
-
// return (typeof value !== 'undefined' && value !== null) ? transform(value) : undefined;
|
145
|
-
// }
|
data/lanes.gemspec
CHANGED
@@ -55,7 +55,7 @@ Gem::Specification.new do |spec|
|
|
55
55
|
spec.add_dependency "pg", "~> 0.8"
|
56
56
|
spec.add_dependency "rake", "~> 12.0"
|
57
57
|
spec.add_dependency "require_all", "~> 1.3"
|
58
|
-
spec.add_dependency "resque", "~> 1.
|
58
|
+
spec.add_dependency "resque", "~> 1.27"
|
59
59
|
spec.add_dependency "sanitize", "~> 3.0"
|
60
60
|
spec.add_dependency "webpack_driver", "~> 0.2"
|
61
61
|
spec.add_dependency "knitter", "~> 0.2"
|
data/lib/js/jest.config.json
CHANGED
@@ -3,11 +3,6 @@
|
|
3
3
|
"notify": false,
|
4
4
|
"testMatch": [ "**/?(*.)(spec|test).js?(x)" ],
|
5
5
|
"moduleFileExtensions": [ "js", "jsx", "json" ],
|
6
|
-
"setupTestFrameworkScriptFile": "<rootDir>/lib/js/jest/setup.js",
|
7
|
-
"modulePaths": [
|
8
|
-
"<rootDir>/client",
|
9
|
-
"<rootDir>/lib/js/jest/stubs"
|
10
|
-
],
|
11
6
|
"transform": {
|
12
7
|
"^.+\\.jsx?$": "babel-jest"
|
13
8
|
},
|
data/lib/js/jest/mocks.js
CHANGED
data/lib/js/jest/setup.js
CHANGED
@@ -1,19 +1,12 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
import { fetch } from './mocks';
|
4
|
-
|
5
|
-
import 'jest-enzyme';
|
6
|
-
// jest.mock('flexboxgrid', () => {
|
7
|
-
// return {};
|
8
|
-
// });
|
9
|
-
|
10
|
-
//useStrict(true);
|
1
|
+
const { shallow, mount } = require('enzyme');
|
2
|
+
const { fetch } = require('./mocks');
|
11
3
|
|
12
4
|
global.shallow = shallow;
|
13
5
|
global.mount = mount;
|
14
6
|
global.fetch = fetch;
|
7
|
+
global.React = require('React');
|
15
8
|
|
16
|
-
|
9
|
+
jest.addMatchers({
|
17
10
|
|
18
11
|
toHaveRendered() {
|
19
12
|
return {
|
@@ -25,7 +18,6 @@ jasmine.addMatchers({
|
|
25
18
|
} else {
|
26
19
|
result.message = `Expected wrapper to contain '${selector}' only once, but it was found ${matchCount} times`;
|
27
20
|
}
|
28
|
-
|
29
21
|
return result;
|
30
22
|
},
|
31
23
|
};
|
data/lib/js/webpack.config.js
CHANGED
@@ -2,8 +2,12 @@
|
|
2
2
|
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
3
3
|
const webpack = require('webpack');
|
4
4
|
const path = require('path');
|
5
|
-
const roots = process.env.LANES_EXT_ROOTS || './client';
|
6
|
-
const
|
5
|
+
// const roots = process.env.LANES_EXT_ROOTS || './client';
|
6
|
+
// const controlling_root = process.env.LANES_CONTROLLER_DIR;
|
7
|
+
// roots.split(',').concat([
|
8
|
+
// 'node_modules',
|
9
|
+
// generated_dir,
|
10
|
+
// ]),
|
7
11
|
|
8
12
|
const config = {
|
9
13
|
entry: {
|
@@ -18,16 +22,13 @@ const config = {
|
|
18
22
|
filename: 'lanes.js',
|
19
23
|
},
|
20
24
|
resolve: {
|
21
|
-
modules:
|
22
|
-
'node_modules',
|
23
|
-
generated_dir,
|
24
|
-
]),
|
25
|
+
modules: process.env.LANES_MODULES.split(':'),
|
25
26
|
extensions: ['.js', '.jsx'],
|
26
27
|
},
|
27
28
|
module: {
|
28
29
|
rules: [
|
29
30
|
{ test: /\.css$/, use: ['style-loader', 'css-loader'] },
|
30
|
-
{ test: /\.jsx?$/, exclude: /node_modules
|
31
|
+
{ loader: 'babel-loader', test: /\.jsx?$/, exclude: /node_modules/ },
|
31
32
|
{ test: /\.scss$/,
|
32
33
|
use: [
|
33
34
|
'style-loader',
|
@@ -50,7 +51,7 @@ const config = {
|
|
50
51
|
new HtmlWebpackPlugin({
|
51
52
|
title: 'My App',
|
52
53
|
filename: 'index.html',
|
53
|
-
template: `${
|
54
|
+
template: `${process.env.GENERATED_CONFIG_DIR}/root-view.tmpl.html`,
|
54
55
|
}),
|
55
56
|
new webpack.DefinePlugin({
|
56
57
|
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'),
|
data/lib/lanes.rb
CHANGED
data/lib/lanes/command/app.rb
CHANGED
@@ -23,10 +23,11 @@ module Lanes
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def create_files
|
26
|
-
[
|
27
|
-
|
26
|
+
[
|
27
|
+
"Gemfile", "Rakefile", "Guardfile", "config.ru",
|
28
|
+
".babelrc", "config/database.yml"
|
28
29
|
].each{ |f| template(f) }
|
29
|
-
[ ".eslintrc.js", ".
|
30
|
+
[ ".eslintrc.js", ".rubocop.yml"
|
30
31
|
].each{ |f| template("../#{f}", f) }
|
31
32
|
template "lib/namespace.rb", "lib/#{identifier}.rb"
|
32
33
|
template "lib/namespace/version.rb", "lib/#{identifier}/version.rb"
|
@@ -34,6 +35,7 @@ module Lanes
|
|
34
35
|
template "lib/namespace/base_model.rb", "lib/#{identifier}/model.rb"
|
35
36
|
template "config/screens.rb"
|
36
37
|
template "config/routes.rb"
|
38
|
+
template "config/webpack.config.js"
|
37
39
|
template "config/lanes.rb"
|
38
40
|
template "gitignore",".gitignore"
|
39
41
|
|
@@ -65,8 +67,13 @@ module Lanes
|
|
65
67
|
say 'Installing node modules', :green
|
66
68
|
yarn = Knitter::Yarn.new(self.destination_root)
|
67
69
|
yarn.init
|
68
|
-
[
|
69
|
-
|
70
|
+
[
|
71
|
+
'jest',
|
72
|
+
'lanes-framework',
|
73
|
+
'react-router',
|
74
|
+
'webpack-dev-server'
|
75
|
+
].each do | package_name |
|
76
|
+
say(sprintf(' %-20s', package_name + '…'), nil, false)
|
70
77
|
package = Knitter::Package.new(package_name, yarn: yarn)
|
71
78
|
package.add
|
72
79
|
say 'done', :green
|
data/lib/lanes/command/jest.rb
CHANGED
@@ -5,7 +5,7 @@ require 'guard/jest'
|
|
5
5
|
|
6
6
|
require_relative '../extension'
|
7
7
|
require_relative '../command'
|
8
|
-
|
8
|
+
require 'irb'
|
9
9
|
module Lanes
|
10
10
|
module Command
|
11
11
|
|
@@ -20,6 +20,7 @@ module Lanes
|
|
20
20
|
attr_accessor :lanes_root_path
|
21
21
|
attr_accessor :extension_path
|
22
22
|
attr_accessor :config_file
|
23
|
+
attr_accessor :module_paths
|
23
24
|
|
24
25
|
def apply_lanes_config
|
25
26
|
Lanes::Configuration.apply
|
@@ -29,18 +30,19 @@ module Lanes
|
|
29
30
|
def configure
|
30
31
|
say 'Generating Jest Config', :green
|
31
32
|
ext = Command.load_current_extension(raise_on_fail: true)
|
32
|
-
|
33
33
|
self.extension_path = ext.root_path
|
34
|
-
|
35
34
|
self.lanes_root_path = ROOT
|
36
35
|
config_dir = Pathname.new(Dir.mktmpdir)
|
37
36
|
self.config_file = config_dir.join("jest.config.json")
|
37
|
+
self.module_paths = Extensions.asset_paths(ext, config_dir.to_s)
|
38
38
|
template('js/jest.config.json', config_file, verbose: false, force: true)
|
39
|
-
|
39
|
+
self
|
40
40
|
end
|
41
41
|
|
42
42
|
def start
|
43
43
|
say 'Starting Jest', :green
|
44
|
+
say Dir.pwd, :yellow
|
45
|
+
puts "$(npm bin)/jest --watch --config #{config_file};"
|
44
46
|
exec("$(npm bin)/jest --watch --config #{config_file};")
|
45
47
|
end
|
46
48
|
end
|
data/lib/lanes/command/server.rb
CHANGED
@@ -1,10 +1,5 @@
|
|
1
1
|
require 'guard/cli'
|
2
|
-
require 'webpack_driver'
|
3
|
-
require 'puma/cli'
|
4
|
-
require 'guard/jest'
|
5
|
-
#require 'lanes/api'
|
6
2
|
require_relative '../webpack'
|
7
|
-
require_relative 'jest_runner'
|
8
3
|
|
9
4
|
module Lanes
|
10
5
|
module Command
|
@@ -16,9 +11,7 @@ module Lanes
|
|
16
11
|
say "Launching testing server at http://localhost:8888/", :green
|
17
12
|
require 'lanes/api'
|
18
13
|
Lanes::Configuration.apply
|
19
|
-
|
20
|
-
API.webpack = Lanes::Webpack.server
|
21
|
-
|
14
|
+
API.webpack = Lanes::Webpack.new
|
22
15
|
threads = []
|
23
16
|
Thread.abort_on_exception = true
|
24
17
|
threads << Thread.new { API::Root.run! }
|
@@ -31,19 +24,14 @@ module Lanes
|
|
31
24
|
end
|
32
25
|
Lanes.logger.info "ok, ctrl-c trap registered"
|
33
26
|
end
|
34
|
-
|
35
27
|
API.webpack.start
|
36
|
-
|
37
28
|
sleep(1) # give webpack a bit of time to fail if it's going to
|
38
|
-
|
39
29
|
unless API.webpack.alive?
|
40
30
|
puts API.webpack.messages
|
41
31
|
exit 1
|
42
32
|
end
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
API.webpack.stop
|
33
|
+
Guard.start # will block until complete
|
34
|
+
API.webpack.stop # stop webpack after guard completes
|
47
35
|
end
|
48
36
|
end
|
49
37
|
end
|
data/lib/lanes/extension.rb
CHANGED
@@ -17,6 +17,13 @@ module Lanes
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
+
def asset_paths(controller, additional)
|
21
|
+
map { |ext| ext.root_path.join('client').to_s }.reverse + [
|
22
|
+
controller.root_path.join('node_modules').to_s,
|
23
|
+
additional
|
24
|
+
]
|
25
|
+
end
|
26
|
+
|
20
27
|
# lock the current controlling extension so that it can't
|
21
28
|
# be changed by other extensions that are loaded later
|
22
29
|
def lock_controlling!
|
data/lib/lanes/version.rb
CHANGED
data/lib/lanes/webpack.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
require 'forwardable'
|
2
|
+
require 'fileutils'
|
3
|
+
require 'pathname'
|
2
4
|
require 'erb'
|
3
5
|
|
4
6
|
module Lanes
|
@@ -10,53 +12,53 @@ module Lanes
|
|
10
12
|
|
11
13
|
extend Forwardable
|
12
14
|
def_delegators :@process, :port, :environment, :stop, :alive?, :start, :wait
|
15
|
+
attr_reader :process
|
13
16
|
|
14
|
-
|
17
|
+
def initialize
|
18
|
+
controller = Command.load_current_extension(raise_on_fail: true)
|
15
19
|
|
16
|
-
def self.server
|
17
20
|
config = WebpackDriver::Configuration.new(
|
18
|
-
|
19
|
-
directory: Pathname.new(__FILE__).dirname.join('..', '..'),
|
21
|
+
controller.root_path.join('config', 'webpack.config.js'),
|
20
22
|
cmd_line_flags: ['--hot', '--inline'],
|
21
|
-
logger: Lanes.logger
|
23
|
+
logger: Lanes.logger,
|
24
|
+
directory: controller.root_path
|
22
25
|
)
|
23
26
|
|
24
|
-
|
27
|
+
generated_asset_dir = write_asset_files
|
28
|
+
|
29
|
+
config.environment.merge!(
|
30
|
+
EXTENSION_ID: controller.identifier,
|
31
|
+
LANES_MODULES: modules(controller, generated_asset_dir).join(':'),
|
32
|
+
ENTRY: 'show-maker/index.js',
|
33
|
+
GENERATED_CONFIG_DIR: generated_asset_dir.to_s
|
34
|
+
)
|
35
|
+
@process = ::WebpackDriver::DevServer.new(config)
|
25
36
|
end
|
26
37
|
|
27
|
-
attr_reader :process
|
28
38
|
|
29
39
|
def api_host
|
30
|
-
Lanes.env.production? ?
|
40
|
+
Lanes.env.production? ?
|
41
|
+
'' : "http://localhost:#{API::Root.settings.port}"
|
31
42
|
end
|
32
43
|
|
33
|
-
def
|
34
|
-
|
35
|
-
@generated_asset_dir = Pathname.new(Dir.mktmpdir)
|
36
|
-
generated_asset_dir.join('lanes').mkpath
|
37
|
-
write_asset_files
|
38
|
-
|
39
|
-
puts Extensions.map{|ext| ext.root_path.join('client').to_s }.join(',')
|
40
|
-
|
41
|
-
config.environment.merge!(
|
42
|
-
LANES_EXT_ROOTS: Extensions.map{|ext|
|
43
|
-
ext.root_path.join('client').to_s
|
44
|
-
}.join(','),
|
45
|
-
LANES_GENERATED_DIR: generated_asset_dir.to_s
|
46
|
-
)
|
47
|
-
|
48
|
-
@process = ::WebpackDriver::DevServer.new(config)
|
44
|
+
def modules(controller, generated_asset_dir)
|
45
|
+
Extensions.asset_paths(controller, generated_asset_dir.to_s)
|
49
46
|
end
|
50
47
|
|
51
48
|
def write_asset_files
|
49
|
+
dir = Pathname.new(Dir.mktmpdir)
|
50
|
+
dir.join('lanes').mkpath
|
51
|
+
|
52
52
|
screens = ERB.new(TEMPLATES.join('screens.js').read)
|
53
|
-
root_view
|
54
|
-
|
53
|
+
root_view = ERB.new(TEMPLATES.join('root-view.html').read)
|
54
|
+
dir
|
55
55
|
.join('lanes', 'screen-definitions.js')
|
56
56
|
.write(screens.result(binding))
|
57
|
-
|
58
|
-
|
59
|
-
|
57
|
+
template = dir.join('root-view.tmpl.html')
|
58
|
+
template.write(root_view.result(binding))
|
59
|
+
# set the mtime to the past, otherwise Webpack will build repeatedly for a second
|
60
|
+
FileUtils.touch template.to_s, :mtime => Time.now - 1.minute
|
61
|
+
return dir
|
60
62
|
end
|
61
63
|
|
62
64
|
def assets
|
data/package.json
CHANGED
@@ -6,38 +6,10 @@
|
|
6
6
|
"repository": "https://github.com/argosity/lanes",
|
7
7
|
"author": "Nathan Stitt <nathan@stitt.org>",
|
8
8
|
"license": "MIT",
|
9
|
-
"files": [
|
9
|
+
"files": [
|
10
|
+
"client"
|
11
|
+
],
|
10
12
|
"dependencies": {
|
11
|
-
"classnames": "^2.2.5",
|
12
|
-
"domtastic": "^0.12.3",
|
13
|
-
"flexboxgrid": "^6.3.1",
|
14
|
-
"formous": "^0.9.2",
|
15
|
-
"grommet": "^1.2.1",
|
16
|
-
"history": "^4.5.1",
|
17
|
-
"invariant": "^2.2.2",
|
18
|
-
"lodash": "^4.17.4",
|
19
|
-
"loglevel": "^1.4.1",
|
20
|
-
"mobx": "^3.0.0",
|
21
|
-
"mobx-decorated-models": "^0.4.4",
|
22
|
-
"mobx-react": "^4.1.0",
|
23
|
-
"pluralize": "^3.1.0",
|
24
|
-
"qs": "^6.3.0",
|
25
|
-
"react": "^15.4.2",
|
26
|
-
"react-addons-shallow-compare": "^15.4.2",
|
27
|
-
"react-async-component": "^0.2.2",
|
28
|
-
"react-dom": "^15.4.2",
|
29
|
-
"react-dropzone": "^3.10.0",
|
30
|
-
"react-flexbox-grid": "nathanstitt/react-flexbox-grid#devel",
|
31
|
-
"react-motion": "^0.4.7",
|
32
|
-
"react-router": "^3.0.2",
|
33
|
-
"react-sidebar": "^2.3.0",
|
34
|
-
"react-virtualized": "^9.0.0",
|
35
|
-
"rsvp": "^3.3.3",
|
36
|
-
"serializr": "^1.1.9",
|
37
|
-
"validator": "^6.2.1",
|
38
|
-
"whatwg-fetch": "^2.0.2",
|
39
|
-
"when-dom-ready": "^1.2.4",
|
40
|
-
|
41
13
|
"babel-core": "^6.21.0",
|
42
14
|
"babel-eslint": "latest",
|
43
15
|
"babel-jest": "^18.0.0",
|
@@ -53,25 +25,54 @@
|
|
53
25
|
"babel-preset-react": "^6.16.0",
|
54
26
|
"babel-preset-stage-0": "^6.22.0",
|
55
27
|
"babel-preset-stage-1": "^6.16.0",
|
28
|
+
"classnames": "^2.2.5",
|
56
29
|
"css-loader": "^0.26.1",
|
30
|
+
"domtastic": "^0.12.3",
|
57
31
|
"enzyme": "^2.7.0",
|
58
32
|
"eslint": "^3.13.1",
|
59
33
|
"eslint-config-airbnb": "latest",
|
60
34
|
"eslint-plugin-import": "^2.2.0",
|
61
35
|
"eslint-plugin-jsx-a11y": "latest",
|
62
36
|
"eslint-plugin-react": "^6.9.0",
|
37
|
+
"flexboxgrid": "^6.3.1",
|
38
|
+
"formous": "^0.9.2",
|
39
|
+
"grommet": "^1.2.1",
|
40
|
+
"history": "^4.5.1",
|
63
41
|
"html-webpack-plugin": "^2.28.0",
|
64
42
|
"identity-obj-proxy": "^3.0.0",
|
43
|
+
"invariant": "^2.2.2",
|
65
44
|
"jest": "^19.0.2",
|
66
45
|
"jest-enzyme": "^2.1.2",
|
67
46
|
"jest-fetch-mock": "^1.0.7",
|
47
|
+
"lodash": "^4.17.4",
|
48
|
+
"loglevel": "^1.4.1",
|
49
|
+
"mobx": "^3.0.0",
|
50
|
+
"mobx-decorated-models": "^0.4.4",
|
51
|
+
"mobx-react": "^4.1.0",
|
68
52
|
"node-sass": "^4.5.0",
|
53
|
+
"pluralize": "^3.1.0",
|
54
|
+
"qs": "^6.3.0",
|
55
|
+
"react": "^15.4.2",
|
56
|
+
"react-addons-shallow-compare": "^15.4.2",
|
69
57
|
"react-addons-test-utils": "^15.4.2",
|
58
|
+
"react-async-component": "^0.2.2",
|
59
|
+
"react-dom": "^15.4.2",
|
60
|
+
"react-dropzone": "^3.10.0",
|
61
|
+
"react-flexbox-grid": "nathanstitt/react-flexbox-grid#devel",
|
70
62
|
"react-hot-loader": "3.0.0-beta.6",
|
63
|
+
"react-motion": "^0.4.7",
|
64
|
+
"react-router": "^3.0.2",
|
65
|
+
"react-sidebar": "^2.3.0",
|
71
66
|
"react-test-renderer": "^15.4.2",
|
67
|
+
"react-virtualized": "^9.0.0",
|
68
|
+
"rsvp": "^3.3.3",
|
72
69
|
"sass-loader": "^4.1.1",
|
70
|
+
"serializr": "^1.1.9",
|
73
71
|
"style-loader": "^0.13.1",
|
72
|
+
"validator": "^6.2.1",
|
74
73
|
"webpack": "v2.2.0-rc.4",
|
75
|
-
"webpack-dev-server": "v2.2.0-rc.0"
|
74
|
+
"webpack-dev-server": "v2.2.0-rc.0",
|
75
|
+
"whatwg-fetch": "^2.0.2",
|
76
|
+
"when-dom-ready": "^1.2.4"
|
76
77
|
}
|
77
78
|
}
|
File without changes
|
data/templates/Gemfile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
3
|
# For development while Lanes is evolving track master branch
|
4
|
-
gem "lanes", git: "https://github.com/argosity/lanes", branch: '
|
4
|
+
gem "lanes", git: "https://github.com/argosity/lanes", branch: 'master'
|
5
5
|
|
6
6
|
# gem "lanes", '<%= Lanes::VERSION %>'
|
7
7
|
|
data/templates/client/index.js
CHANGED
@@ -1,19 +1,6 @@
|
|
1
|
-
//=require ./models/Base
|
2
|
-
//=require ./components/Base
|
3
|
-
//=require_tree ./models
|
4
|
-
//=require_tree ./components
|
5
|
-
//=require ./screens/Base
|
6
|
-
//=require ./Extension
|
7
|
-
|
8
1
|
/*
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
Accordingly, only essential files should be included here. Code that
|
14
|
-
relates to a screen should be placed in the "screens" directory,
|
15
|
-
where it will be loaded dynamically when the screen is displayed.
|
2
|
+
This is the main entry point for your application
|
3
|
+
By default it simply imports the standard lanes boot file
|
4
|
+
*/
|
16
5
|
|
17
|
-
|
18
|
-
only include the paths you need.
|
19
|
-
*/
|
6
|
+
import 'lanes/boot';
|
@@ -0,0 +1,105 @@
|
|
1
|
+
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
2
|
+
const webpack = require('webpack');
|
3
|
+
const path = require('path');
|
4
|
+
|
5
|
+
const config = {
|
6
|
+
entry: {
|
7
|
+
lanes: [
|
8
|
+
'react-hot-loader/patch',
|
9
|
+
process.env.ENTRY,
|
10
|
+
],
|
11
|
+
},
|
12
|
+
output: {
|
13
|
+
path: __dirname,
|
14
|
+
publicPath: '/',
|
15
|
+
filename: `${process.env.EXTENSION_ID}/.js`,
|
16
|
+
},
|
17
|
+
resolve: {
|
18
|
+
modules: process.env.LANES_MODULES.split(':'),
|
19
|
+
extensions: ['.js', '.jsx'],
|
20
|
+
},
|
21
|
+
module: {
|
22
|
+
rules: [
|
23
|
+
{ test: /\.css$/, use: ['style-loader', 'css-loader'] },
|
24
|
+
{
|
25
|
+
loader: 'babel-loader',
|
26
|
+
test: /\.jsx?$/,
|
27
|
+
exclude: /node_modules/,
|
28
|
+
options: {
|
29
|
+
plugins: [
|
30
|
+
'react-hot-loader/babel',
|
31
|
+
'babel-plugin-transform-decorators-legacy',
|
32
|
+
'babel-plugin-transform-class-properties',
|
33
|
+
'babel-plugin-transform-function-bind',
|
34
|
+
'babel-plugin-transform-react-jsx',
|
35
|
+
'babel-plugin-transform-runtime',
|
36
|
+
].map(require.resolve),
|
37
|
+
presets: [
|
38
|
+
[require.resolve('babel-preset-es2015'), { modules: false }],
|
39
|
+
require.resolve('babel-preset-react'),
|
40
|
+
require.resolve('babel-preset-stage-1'),
|
41
|
+
],
|
42
|
+
},
|
43
|
+
},
|
44
|
+
{ test: /\.scss$/,
|
45
|
+
use: [
|
46
|
+
'style-loader',
|
47
|
+
'css-loader',
|
48
|
+
{
|
49
|
+
loader: 'sass-loader',
|
50
|
+
options: {
|
51
|
+
includePaths: [path.resolve('./node_modules')],
|
52
|
+
},
|
53
|
+
},
|
54
|
+
],
|
55
|
+
},
|
56
|
+
],
|
57
|
+
},
|
58
|
+
devtool: 'source-map',
|
59
|
+
plugins: [
|
60
|
+
new webpack.optimize.CommonsChunkPlugin({
|
61
|
+
name: 'vendor', minChunks: Infinity, filename: '[name].[hash].js',
|
62
|
+
}),
|
63
|
+
new HtmlWebpackPlugin({
|
64
|
+
filename: 'index.html',
|
65
|
+
template: `${process.env.GENERATED_CONFIG_DIR}/root-view.tmpl.html`,
|
66
|
+
}),
|
67
|
+
new webpack.DefinePlugin({
|
68
|
+
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'),
|
69
|
+
}),
|
70
|
+
],
|
71
|
+
node: {
|
72
|
+
fs: 'empty',
|
73
|
+
},
|
74
|
+
devServer: {
|
75
|
+
hot: true,
|
76
|
+
inline: true,
|
77
|
+
port: 8889,
|
78
|
+
historyApiFallback: true,
|
79
|
+
proxy: [{
|
80
|
+
context: '/api',
|
81
|
+
target: 'http://localhost:4567',
|
82
|
+
}],
|
83
|
+
stats: {
|
84
|
+
colors: true,
|
85
|
+
profile: true,
|
86
|
+
hash: false,
|
87
|
+
version: false,
|
88
|
+
timings: false,
|
89
|
+
assets: true,
|
90
|
+
chunks: false,
|
91
|
+
modules: false,
|
92
|
+
reasons: true,
|
93
|
+
children: false,
|
94
|
+
source: true,
|
95
|
+
errors: true,
|
96
|
+
errorDetails: false,
|
97
|
+
warnings: true,
|
98
|
+
publicPath: false,
|
99
|
+
},
|
100
|
+
},
|
101
|
+
};
|
102
|
+
|
103
|
+
// console.log(config)
|
104
|
+
|
105
|
+
module.exports = config;
|
@@ -1,14 +1,19 @@
|
|
1
1
|
{
|
2
|
-
"
|
3
|
-
"preset": "<rootDir>/lib/js/jest.config.json",
|
2
|
+
"preset": "<%= lanes_root_path %>/lib/js/jest.config.json",
|
4
3
|
"roots": [
|
5
4
|
"<%= extension_path %>/client",
|
6
|
-
"<%= extension_path %>/spec"
|
7
|
-
"<rootDir>/client"
|
5
|
+
"<%= extension_path %>/spec"
|
8
6
|
],
|
7
|
+
"setupTestFrameworkScriptFile": "<%= lanes_root_path %>/lib/js/jest/setup.js",
|
8
|
+
"transform": {
|
9
|
+
"^.+\\.jsx?$": "babel-jest"
|
10
|
+
},
|
9
11
|
"modulePaths": [
|
10
|
-
|
11
|
-
"
|
12
|
-
|
13
|
-
|
12
|
+
<%= module_paths.map{|mod| "\"#{mod}\"" }.join(", ") %>,
|
13
|
+
"<%= lanes_root_path %>/lib/js/jest/stubs"
|
14
|
+
],
|
15
|
+
"moduleNameMapper": {
|
16
|
+
"\\.(css|less|scss)$": "<rootDir>/lib/js/jest/styleMock.js",
|
17
|
+
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/lib/js/jest/fileMock.js"
|
18
|
+
}
|
14
19
|
}
|
@@ -14,7 +14,7 @@ module <%= namespace %>
|
|
14
14
|
# is returned from this method, it will be passed to
|
15
15
|
# the setBootstrapData method in client/<%= identifier %>/Extension.coffee
|
16
16
|
# when the app boots
|
17
|
-
def client_bootstrap_data
|
17
|
+
def client_bootstrap_data
|
18
18
|
nil
|
19
19
|
end
|
20
20
|
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/yarn.lock
CHANGED
@@ -2965,14 +2965,10 @@ https-browserify@0.0.1:
|
|
2965
2965
|
version "0.0.1"
|
2966
2966
|
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82"
|
2967
2967
|
|
2968
|
-
iconv-lite@0.4.13:
|
2968
|
+
iconv-lite@0.4.13, iconv-lite@~0.4.13:
|
2969
2969
|
version "0.4.13"
|
2970
2970
|
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2"
|
2971
2971
|
|
2972
|
-
iconv-lite@~0.4.13:
|
2973
|
-
version "0.4.15"
|
2974
|
-
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb"
|
2975
|
-
|
2976
2972
|
icss-replace-symbols@^1.0.2:
|
2977
2973
|
version "1.0.2"
|
2978
2974
|
resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.0.2.tgz#cb0b6054eb3af6edc9ab1d62d01933e2d4c8bfa5"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lanes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Stitt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-03-
|
11
|
+
date: 2017-03-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activejob
|
@@ -380,14 +380,14 @@ dependencies:
|
|
380
380
|
requirements:
|
381
381
|
- - "~>"
|
382
382
|
- !ruby/object:Gem::Version
|
383
|
-
version: '1.
|
383
|
+
version: '1.27'
|
384
384
|
type: :runtime
|
385
385
|
prerelease: false
|
386
386
|
version_requirements: !ruby/object:Gem::Requirement
|
387
387
|
requirements:
|
388
388
|
- - "~>"
|
389
389
|
- !ruby/object:Gem::Version
|
390
|
-
version: '1.
|
390
|
+
version: '1.27'
|
391
391
|
- !ruby/object:Gem::Dependency
|
392
392
|
name: sanitize
|
393
393
|
requirement: !ruby/object:Gem::Requirement
|
@@ -509,7 +509,6 @@ executables:
|
|
509
509
|
extensions: []
|
510
510
|
extra_rdoc_files: []
|
511
511
|
files:
|
512
|
-
- ".babelrc"
|
513
512
|
- ".dir-locals.el"
|
514
513
|
- ".eslintrc.js"
|
515
514
|
- ".flowconfig"
|
@@ -791,7 +790,6 @@ files:
|
|
791
790
|
- lib/js/jest/setup.js
|
792
791
|
- lib/js/jest/stubs/screen-definitions.js
|
793
792
|
- lib/js/jest/styleMock.js
|
794
|
-
- lib/js/webpack-status-plugin.js
|
795
793
|
- lib/js/webpack.config.js
|
796
794
|
- lib/lanes.rb
|
797
795
|
- lib/lanes/access.rb
|
@@ -851,7 +849,6 @@ files:
|
|
851
849
|
- lib/lanes/command/generate_screen.usage
|
852
850
|
- lib/lanes/command/guard.rb
|
853
851
|
- lib/lanes/command/jest.rb
|
854
|
-
- lib/lanes/command/jest_runner.rb
|
855
852
|
- lib/lanes/command/migration_support.rb
|
856
853
|
- lib/lanes/command/model_attribute.rb
|
857
854
|
- lib/lanes/command/named_command.rb
|
@@ -885,7 +882,6 @@ files:
|
|
885
882
|
- lib/lanes/extension/definition.rb
|
886
883
|
- lib/lanes/guard_tasks.rb
|
887
884
|
- lib/lanes/hot_reload_plugin.rb
|
888
|
-
- lib/lanes/jest.rb
|
889
885
|
- lib/lanes/job.rb
|
890
886
|
- lib/lanes/job/failure_logger.rb
|
891
887
|
- lib/lanes/lanes_guard_plugin.rb
|
@@ -1037,6 +1033,7 @@ files:
|
|
1037
1033
|
- spec/server/system_settings_spec.rb
|
1038
1034
|
- tasks/migrations.rake
|
1039
1035
|
- tasks/publish.rake
|
1036
|
+
- templates/.babelrc
|
1040
1037
|
- templates/Gemfile
|
1041
1038
|
- templates/Guardfile
|
1042
1039
|
- templates/Rakefile
|
@@ -1059,6 +1056,7 @@ files:
|
|
1059
1056
|
- templates/config/routes.rb
|
1060
1057
|
- templates/config/screen.rb
|
1061
1058
|
- templates/config/screens.rb
|
1059
|
+
- templates/config/webpack.config.js
|
1062
1060
|
- templates/db/create_table_migration.rb
|
1063
1061
|
- templates/gitignore
|
1064
1062
|
- templates/js/jest.config.json
|
@@ -1070,13 +1068,13 @@ files:
|
|
1070
1068
|
- templates/lib/namespace/model.rb
|
1071
1069
|
- templates/lib/namespace/version.rb
|
1072
1070
|
- templates/public/.gitkeep
|
1073
|
-
- templates/
|
1074
|
-
- templates/
|
1075
|
-
- templates/
|
1076
|
-
- templates/
|
1077
|
-
- templates/
|
1078
|
-
- templates/
|
1079
|
-
- templates/
|
1071
|
+
- templates/spec/client/Screen.coffee
|
1072
|
+
- templates/spec/client/components/ComponentSpec.coffee
|
1073
|
+
- templates/spec/client/models/ModelSpec.coffee
|
1074
|
+
- templates/spec/client/setup.js
|
1075
|
+
- templates/spec/fixtures/namespace/model.yml
|
1076
|
+
- templates/spec/server/model_spec.rb
|
1077
|
+
- templates/spec/server/spec_helper.rb
|
1080
1078
|
- test.js
|
1081
1079
|
- views/lanes_root_view.erb
|
1082
1080
|
- yard_ext/all.rb
|
@@ -1113,7 +1111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1113
1111
|
version: '0'
|
1114
1112
|
requirements: []
|
1115
1113
|
rubyforge_project:
|
1116
|
-
rubygems_version: 2.6.
|
1114
|
+
rubygems_version: 2.6.10
|
1117
1115
|
signing_key:
|
1118
1116
|
specification_version: 4
|
1119
1117
|
summary: Lanes is a framework for easily writing single page web applications
|
@@ -1,78 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
var webpack = require("webpack");
|
4
|
-
|
5
|
-
function DashboardPlugin(options) {
|
6
|
-
this.options = options;
|
7
|
-
}
|
8
|
-
|
9
|
-
function log(type, value) {
|
10
|
-
console.log('STATUS:', JSON.stringify({type, value}));
|
11
|
-
}
|
12
|
-
|
13
|
-
DashboardPlugin.prototype.apply = function(compiler) {
|
14
|
-
var timer;
|
15
|
-
|
16
|
-
if ( compiler.options.devServer ) {
|
17
|
-
let {port, host, outputPath} = compiler.options.devServer;
|
18
|
-
log("dev-server", { port, host, outputPath });
|
19
|
-
}
|
20
|
-
|
21
|
-
// compiler.apply(new webpack.ProgressPlugin(function (percent, msg) {
|
22
|
-
// log("compile", {
|
23
|
-
// "progress": percent,
|
24
|
-
// "operation": msg,
|
25
|
-
// "ms": Date.now() - timer
|
26
|
-
// });
|
27
|
-
// }));
|
28
|
-
|
29
|
-
compiler.plugin("compile", function() {
|
30
|
-
timer = Date.now();
|
31
|
-
log("compile", {
|
32
|
-
"progress": 0,
|
33
|
-
"operation": "idle"
|
34
|
-
})
|
35
|
-
});
|
36
|
-
|
37
|
-
compiler.plugin("invalid", function() {
|
38
|
-
log("status", "invalid");
|
39
|
-
});
|
40
|
-
|
41
|
-
compiler.plugin("failed-module", function(module) {
|
42
|
-
log("failed-module", module);
|
43
|
-
});
|
44
|
-
compiler.plugin("done", function(stats) {
|
45
|
-
if (stats.compilation.errors && stats.compilation.errors.length){
|
46
|
-
log("status", "invalid");
|
47
|
-
for(var i = 0; i < stats.compilation.errors.length; i++){
|
48
|
-
var err = stats.compilation.errors[i];
|
49
|
-
log("error", {
|
50
|
-
name: err.name, message: err.message,
|
51
|
-
resource: err.module ? err.module.resource : ''
|
52
|
-
});
|
53
|
-
}
|
54
|
-
} else {
|
55
|
-
log("status", "success");
|
56
|
-
}
|
57
|
-
});
|
58
|
-
|
59
|
-
compiler.plugin("failed", function() {
|
60
|
-
log("status", "failed");
|
61
|
-
});
|
62
|
-
|
63
|
-
compiler.plugin("valid", function() {
|
64
|
-
log("status", "valid");
|
65
|
-
});
|
66
|
-
|
67
|
-
compiler.plugin("after-emit", function(compilation, callback) {
|
68
|
-
for (var k in compilation.assets){
|
69
|
-
if(!compilation.assets[k].parents){
|
70
|
-
log("asset", {name: k, size: compilation.assets[k].size()});
|
71
|
-
}
|
72
|
-
}
|
73
|
-
callback();
|
74
|
-
});
|
75
|
-
|
76
|
-
}
|
77
|
-
|
78
|
-
module.exports = DashboardPlugin;
|
@@ -1,63 +0,0 @@
|
|
1
|
-
module Lanes
|
2
|
-
module Command
|
3
|
-
|
4
|
-
class JestRunner
|
5
|
-
|
6
|
-
attr_reader :proc
|
7
|
-
|
8
|
-
extend Forwardable
|
9
|
-
|
10
|
-
def_delegators :@proc, :alive?, :environment, :wait
|
11
|
-
|
12
|
-
def initialize
|
13
|
-
@proc = ::ChildProcess.build(
|
14
|
-
Lanes::ROOT_PATH.join('node_modules/jest-cli/bin/jest.js').to_s,
|
15
|
-
'--watch', '--config',
|
16
|
-
Lanes::ROOT_PATH.join('lib', 'js', 'jest.config.js').to_s
|
17
|
-
)
|
18
|
-
end
|
19
|
-
|
20
|
-
def stop
|
21
|
-
@proc.stop
|
22
|
-
@output.close unless @output.closed?
|
23
|
-
@listener.exit
|
24
|
-
end
|
25
|
-
|
26
|
-
def write(str)
|
27
|
-
@proc.io.stdin.write(str + "\n")
|
28
|
-
puts "WRote #{str}"
|
29
|
-
end
|
30
|
-
|
31
|
-
def start
|
32
|
-
@proc.start
|
33
|
-
@output, w = IO.pipe
|
34
|
-
@proc.io.stdout = @proc.io.stderr = w
|
35
|
-
|
36
|
-
@proc.duplex = true
|
37
|
-
puts "one"
|
38
|
-
puts "two"
|
39
|
-
@proc.start
|
40
|
-
|
41
|
-
|
42
|
-
@listener = Thread.new do
|
43
|
-
@output.each_line do | l |
|
44
|
-
Lanes.logger.info l.chomp
|
45
|
-
print "\r"
|
46
|
-
end
|
47
|
-
|
48
|
-
# # match = l.match(/^STATUS: (.*)/)
|
49
|
-
# # if match
|
50
|
-
# # record_message(JSON.parse(match[1]))
|
51
|
-
# # # WebpackDriver.config.logger.debug(l.chomp)
|
52
|
-
# # else
|
53
|
-
# # WebpackDriver.config.logger.info(l.chomp)
|
54
|
-
# # end
|
55
|
-
# end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
|
60
|
-
end
|
61
|
-
|
62
|
-
end
|
63
|
-
end
|
data/lib/lanes/jest.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'forwardable'
|
2
|
-
require 'erb'
|
3
|
-
|
4
|
-
module Lanes
|
5
|
-
class Jest
|
6
|
-
attr_reader :config_dir
|
7
|
-
|
8
|
-
def self.launch
|
9
|
-
puts 'Jest'
|
10
|
-
@config_dir = Pathname.new(Dir.mktmpdir)
|
11
|
-
|
12
|
-
template config_dir.join('jest.config'), "#{client_dir}/screens/#{screen_id}/index.js"
|
13
|
-
|
14
|
-
puts Dir.glob(config_dir + '*')
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|