appril-cli 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/base/assets/styles.css +2 -0
- data/{boilerplate/app/base/api → app/base/components}/base_controller.rb +3 -1
- data/app/base/components/deploy.js +25 -0
- data/app/base/components/index/index.js +3 -0
- data/app/base/components/index/server.rb +13 -0
- data/{boilerplate/app/base/api → app/base/components}/rtcp_controller.rb +5 -7
- data/app/base/core.js +77 -0
- data/app/base/templates/layout.liquid +13 -0
- data/app/config/config.rb +11 -0
- data/{sandbox → app}/config/config.yml +8 -4
- data/{boilerplate/app → app}/core/Gemfile +2 -2
- data/{sandbox → app}/core/boot.rb +2 -4
- data/app/core/generate_configs.rb +7 -0
- data/{boilerplate/app → app}/core/load.rb +2 -2
- data/{boilerplate/app/core/load_api.rb → app/core/load_components.rb} +2 -1
- data/app/generators/_component/index.js +3 -0
- data/app/generators/_component/template.html +3 -0
- data/app/generators/component +29 -0
- data/app/package.json +30 -0
- data/{boilerplate/app → app}/webpack/alias.js +3 -3
- data/app/webpack/entry.js +3 -0
- data/{boilerplate/app → app}/webpack/extensions.js +1 -2
- data/app/webpack/loaders.js +47 -0
- data/app/webpack/output.js +9 -0
- data/app/webpack/plugins.js +38 -0
- data/app/webpack.config.js +29 -0
- data/lib/appril-cli/assertions.rb +5 -21
- data/lib/appril-cli/docker/build.rb +35 -31
- data/lib/appril-cli/docker/install.rb +18 -11
- data/lib/appril-cli/docker/update.rb +20 -11
- data/lib/appril-cli/docker.rb +14 -43
- data/lib/appril-cli/helpers.rb +7 -9
- data/lib/appril-cli/install.rb +30 -0
- data/lib/appril-cli/update.rb +34 -0
- data/lib/appril-cli/version.rb +1 -1
- data/lib/appril-cli.rb +62 -47
- metadata +52 -109
- data/boilerplate/app/base/api/deploy.coffee +0 -45
- data/boilerplate/app/base/api/index/client.coffee +0 -4
- data/boilerplate/app/base/api/index/server.rb +0 -3
- data/boilerplate/app/base/core.coffee +0 -113
- data/boilerplate/app/base/helpers/application_helpers.coffee +0 -1
- data/boilerplate/app/base/templates/access_denied.html +0 -3
- data/boilerplate/app/base/templates/layout.liquid +0 -11
- data/boilerplate/app/base/templates/layouts/main.html +0 -1
- data/boilerplate/app/base/templates/layouts/none.html +0 -1
- data/boilerplate/app/config/config.rb +0 -14
- data/boilerplate/app/config/config.yml +0 -18
- data/boilerplate/app/core/boot.rb +0 -72
- data/boilerplate/app/core/generate_configs.rb +0 -79
- data/boilerplate/app/generators/api/client.coffee +0 -4
- data/boilerplate/app/generators/api/server.rb +0 -3
- data/boilerplate/app/package.json +0 -10
- data/boilerplate/app/webpack/config.js +0 -6
- data/boilerplate/app/webpack/entry.js +0 -3
- data/boilerplate/app/webpack/loaders.js +0 -15
- data/boilerplate/app/webpack/output.js +0 -11
- data/boilerplate/app/webpack/plugins.js +0 -19
- data/boilerplate/app/webpack.config.js +0 -19
- data/boilerplate/crudle/Gemfile +0 -7
- data/boilerplate/crudle/base/api/deploy.coffee +0 -51
- data/boilerplate/crudle/base/api/index/client.coffee +0 -5
- data/boilerplate/crudle/base/api/index/layout.html +0 -5
- data/boilerplate/crudle/base/api/index/server.rb +0 -7
- data/boilerplate/crudle/base/templates/menu.html +0 -3
- data/boilerplate/crudle/generators/api/client.coffee +0 -17
- data/boilerplate/crudle/generators/api/editor/layout.html +0 -3
- data/boilerplate/crudle/generators/api/list/item.html +0 -3
- data/boilerplate/crudle/generators/api/server.rb +0 -26
- data/boilerplate/crudle/package.json +0 -13
- data/boilerplate/crudle/webpack/loaders.js +0 -16
- data/lib/appril-cli/app/install.rb +0 -47
- data/lib/appril-cli/app/update.rb +0 -28
- data/lib/appril-cli/app.rb +0 -46
- data/lib/appril-cli/generator/api.rb +0 -16
- data/lib/appril-cli/generator.rb +0 -32
- data/sandbox/.gitignore +0 -6
- data/sandbox/.pryrc +0 -1
- data/sandbox/Gemfile +0 -7
- data/sandbox/Rakefile +0 -1
- data/sandbox/base/api/base_controller.rb +0 -21
- data/sandbox/base/api/index/client.coffee +0 -4
- data/sandbox/base/api/index/layout.html +0 -3
- data/sandbox/base/api/index/server.rb +0 -3
- data/sandbox/base/api/rtcp_controller.rb +0 -22
- data/sandbox/base/assets/styles.css +0 -0
- data/sandbox/base/boot.rb +0 -2
- data/sandbox/base/core.coffee +0 -128
- data/sandbox/base/helpers/application_helpers.coffee +0 -1
- data/sandbox/base/helpers/application_helpers.rb +0 -4
- data/sandbox/base/load.rb +0 -0
- data/sandbox/base/models/base_model.rb +0 -0
- data/sandbox/base/templates/access_denied.html +0 -3
- data/sandbox/base/templates/layout.liquid +0 -11
- data/sandbox/base/templates/layouts/main.html +0 -1
- data/sandbox/base/templates/layouts/none.html +0 -1
- data/sandbox/base/templates/menu.html +0 -3
- data/sandbox/config/config.rb +0 -9
- data/sandbox/config/env/development.yml +0 -0
- data/sandbox/config/env/production.yml +0 -0
- data/sandbox/config/env/stage.yml +0 -0
- data/sandbox/config/env/test.yml +0 -0
- data/sandbox/config.ru +0 -3
- data/sandbox/core/Gemfile +0 -4
- data/sandbox/core/generate_configs.rb +0 -125
- data/sandbox/core/load.rb +0 -14
- data/sandbox/core/load_controllers.rb +0 -14
- data/sandbox/generators/api/client.coffee +0 -11
- data/sandbox/generators/api/editor.html +0 -0
- data/sandbox/generators/api/layout.html +0 -0
- data/sandbox/generators/api/server.rb +0 -26
- data/sandbox/package.json +0 -15
- data/sandbox/webpack.config.js +0 -54
- /data/{boilerplate/app → app}/.gitignore +0 -0
- /data/{boilerplate/app → app}/.pryrc +0 -0
- /data/{boilerplate/app → app}/Gemfile +0 -0
- /data/{boilerplate/app → app}/Rakefile +0 -0
- /data/{boilerplate/app → app}/base/boot.rb +0 -0
- /data/{boilerplate/app/base/api/index/layout.html → app/base/components/index/template.html} +0 -0
- /data/{boilerplate/app → app}/base/helpers/application_helpers.rb +0 -0
- /data/{boilerplate/app/base/assets/styles.css → app/base/helpers/index.js} +0 -0
- /data/{boilerplate/app → app}/base/load.rb +0 -0
- /data/{boilerplate/app → app}/base/models/base_model.rb +0 -0
- /data/{boilerplate/app/public → app/compiled}/.ignore +0 -0
- /data/{boilerplate/app → app}/config/env/development.yml +0 -0
- /data/{boilerplate/app → app}/config/env/production.yml +0 -0
- /data/{boilerplate/app → app}/config/env/stage.yml +0 -0
- /data/{boilerplate/app → app}/config/env/test.yml +0 -0
- /data/{boilerplate/app → app}/config.ru +0 -0
- /data/{boilerplate/app → app}/core/load_helpers.rb +0 -0
- /data/{boilerplate/app → app}/core/load_models.rb +0 -0
- /data/{boilerplate/app/tmp → app/public}/.ignore +0 -0
- /data/{boilerplate/app/var → app/tmp}/.ignore +0 -0
- /data/{boilerplate/app/generators/api/layout.html → app/var/.ignore} +0 -0
@@ -1,125 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
# do NOT edit this file
|
4
|
-
|
5
|
-
require File.expand_path('../load', __FILE__)
|
6
|
-
|
7
|
-
module ApprilTools
|
8
|
-
extend self
|
9
|
-
|
10
|
-
def load_config dir, env = RocketIO.environment
|
11
|
-
|
12
|
-
config = load_config_file("#{dir}/config.yml")
|
13
|
-
config.update(load_config_file("#{dir}/env/#{env}.yml"))
|
14
|
-
config[:environment] = env.to_s.freeze
|
15
|
-
|
16
|
-
Dir["#{dir}/**/*.yml"].each do |file|
|
17
|
-
next if File.dirname(file) == './env'
|
18
|
-
|
19
|
-
key = File.basename(file, '.yml')
|
20
|
-
next if key == 'config' || key == 'appril'
|
21
|
-
|
22
|
-
key_config = load_config_file(file)
|
23
|
-
key_config_keys = key_config.keys.map(&:to_s)
|
24
|
-
|
25
|
-
config[key] = if key_config_keys.include?(env.to_s)
|
26
|
-
# current environment found, use it
|
27
|
-
key_config[env]
|
28
|
-
else
|
29
|
-
if RocketIO::ENVIRONMENTS.keys.find {|k| key_config_keys.include?(k)}
|
30
|
-
# there are some environment(s), but no current one so set current environment to nil
|
31
|
-
nil
|
32
|
-
else
|
33
|
-
# there are no environments, so this config is available on any environment
|
34
|
-
key_config
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
|
40
|
-
def config.method_missing key
|
41
|
-
self[key]
|
42
|
-
end
|
43
|
-
|
44
|
-
config
|
45
|
-
end
|
46
|
-
|
47
|
-
|
48
|
-
def load_config_file file
|
49
|
-
RocketIO.indifferent_params(YAML.load(File.read(file)) || {})
|
50
|
-
end
|
51
|
-
|
52
|
-
|
53
|
-
def controllers_map dir
|
54
|
-
path_to_api = File.expand_path('base/api', dir)
|
55
|
-
RocketIO.controllers.each_with_object([]) do |controller,o|
|
56
|
-
next unless controller.superclass == ::BaseController
|
57
|
-
|
58
|
-
o << {
|
59
|
-
path: controller.dirname.sub(path_to_api, '').gsub(/\A\/|\/\Z/, ''),
|
60
|
-
url: controller.url,
|
61
|
-
url_pattern: url_pattern(controller),
|
62
|
-
name: controller.name.gsub('::', '__'),
|
63
|
-
api: controller.api
|
64
|
-
}
|
65
|
-
end.sort do |a,b|
|
66
|
-
b[:url].split('/').size <=> a[:url].split('/').size
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
|
-
|
71
|
-
def webpack_entries dir, controllers
|
72
|
-
entries = controllers.each_with_object({}) do |controller,o|
|
73
|
-
|
74
|
-
next unless entry = %w[
|
75
|
-
./base/api/%s/client.js
|
76
|
-
./base/api/%s/client.coffee
|
77
|
-
].map {|p| p % controller[:path]}.find {|f| File.file?(File.expand_path(f, dir))}
|
78
|
-
|
79
|
-
o[controller[:path]] = File.join('./base/api', controller[:path], File.basename(entry))
|
80
|
-
end
|
81
|
-
|
82
|
-
if core = %w[
|
83
|
-
./base/core.js
|
84
|
-
./base/core.coffee
|
85
|
-
].find {|f| File.file?(File.expand_path(f, dir))}
|
86
|
-
entries[:core] = core
|
87
|
-
end
|
88
|
-
|
89
|
-
entries
|
90
|
-
end
|
91
|
-
|
92
|
-
|
93
|
-
def generate_configs dir
|
94
|
-
config = load_config("#{dir}/config", :development)
|
95
|
-
|
96
|
-
controllers = controllers_map(dir)
|
97
|
-
webpack_entries = webpack_entries(dir, controllers)
|
98
|
-
|
99
|
-
File.open File.expand_path('config.json', dir), 'w' do |f|
|
100
|
-
f << JSON.pretty_generate({
|
101
|
-
controllers: controllers,
|
102
|
-
webpack: {
|
103
|
-
path: config[:client_path],
|
104
|
-
url: config[:client_url],
|
105
|
-
entries: webpack_entries
|
106
|
-
}
|
107
|
-
})
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
def url_pattern controller
|
112
|
-
controller.url *controller.instance_method(:get).parameters.each_with_object([]) {|param,o|
|
113
|
-
pattern = if param[0] == :rest
|
114
|
-
"*"
|
115
|
-
elsif param[0] == :req
|
116
|
-
":#{param[1]}"
|
117
|
-
elsif param[0] == :opt
|
118
|
-
":#{param[1]}?"
|
119
|
-
end
|
120
|
-
o << pattern if pattern
|
121
|
-
}
|
122
|
-
end
|
123
|
-
end
|
124
|
-
|
125
|
-
ApprilTools.generate_configs(File.expand_path('../..', __FILE__))
|
data/sandbox/core/load.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
# do NOT edit this file, edit base/load.rb instead
|
2
|
-
|
3
|
-
%w[
|
4
|
-
boot
|
5
|
-
../base/load
|
6
|
-
].each {|f| require File.expand_path("../#{f}", __FILE__)}
|
7
|
-
|
8
|
-
%w[
|
9
|
-
base_model.rb
|
10
|
-
*.rb
|
11
|
-
**/*.rb
|
12
|
-
].each {|p| Dir[File.expand_path("../../base/models/#{p}", __FILE__)].each {|f| require(f)}}
|
13
|
-
|
14
|
-
require File.expand_path('../load_controllers', __FILE__)
|
@@ -1,14 +0,0 @@
|
|
1
|
-
# do NOT edit this file, edit base/load_controllers.rb instead
|
2
|
-
|
3
|
-
Dir.chdir File.expand_path('../../base/api', __FILE__) do
|
4
|
-
|
5
|
-
require './base_controller'
|
6
|
-
require './rtcp_controller'
|
7
|
-
|
8
|
-
%w[
|
9
|
-
./**/server.rb
|
10
|
-
].each_with_object([]) {|pattern,o| o.concat(Dir[pattern])}.sort {|a,b|
|
11
|
-
a.split(/\/+/).size <=> b.split(/\/+/).size
|
12
|
-
}.each {|f| require(f)}
|
13
|
-
|
14
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
# refer to underlying controller as self.controller
|
2
|
-
|
3
|
-
self = (env, layout, list, editor) ->
|
4
|
-
editor.partials.editor = require('./editor')
|
5
|
-
layout.components =
|
6
|
-
list: env.render_component(list)
|
7
|
-
editor: env.render_component(editor)
|
8
|
-
env.render(layout)
|
9
|
-
#end
|
10
|
-
|
11
|
-
module.exports = self
|
File without changes
|
File without changes
|
@@ -1,26 +0,0 @@
|
|
1
|
-
class CONTROLLER_NAME < BaseController
|
2
|
-
include Crudle::Controller
|
3
|
-
|
4
|
-
private
|
5
|
-
def model; MODEL_NAME end
|
6
|
-
|
7
|
-
# def order; end
|
8
|
-
|
9
|
-
# def filter_by_name params, dataset
|
10
|
-
# return if params[:name].nil? || params[:name].empty?
|
11
|
-
# dataset.where('name LIKE ?', params[:name] + '%')
|
12
|
-
# end
|
13
|
-
|
14
|
-
# def list_serializer item
|
15
|
-
# serializer(item)
|
16
|
-
# end
|
17
|
-
|
18
|
-
# def editor_serializer item
|
19
|
-
# serializer(item)
|
20
|
-
# end
|
21
|
-
|
22
|
-
# def serializer item
|
23
|
-
# item
|
24
|
-
# end
|
25
|
-
|
26
|
-
end
|
data/sandbox/package.json
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"name": "MyApp",
|
3
|
-
"version": "0.0.0",
|
4
|
-
"description": "...",
|
5
|
-
"dependencies": {
|
6
|
-
"appril": "*",
|
7
|
-
"appril-ractive": "*",
|
8
|
-
"appril-reporter": "*",
|
9
|
-
"appril-polyfills": "*",
|
10
|
-
"crudle": "*",
|
11
|
-
"crudle-list": "*",
|
12
|
-
"crudle-editor": "*",
|
13
|
-
"extract-text-webpack-plugin": "1"
|
14
|
-
}
|
15
|
-
}
|
data/sandbox/webpack.config.js
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
var webpack = require('webpack'),
|
2
|
-
fs = require('fs'),
|
3
|
-
ExtractTextPlugin = require("extract-text-webpack-plugin"),
|
4
|
-
child_process = require('child_process')
|
5
|
-
;
|
6
|
-
|
7
|
-
if (process.env.APP_ENV == 'development') {
|
8
|
-
console.log('Generating configs...');
|
9
|
-
child_process.execSync('./core/generate_configs.rb');
|
10
|
-
}
|
11
|
-
|
12
|
-
var setup = JSON.parse(fs.readFileSync('./config.json')).webpack;
|
13
|
-
console.log(JSON.stringify(setup, null, 2))
|
14
|
-
|
15
|
-
module.exports = {
|
16
|
-
entry: setup.entries,
|
17
|
-
output: {
|
18
|
-
path: [setup.path, setup.url].join('/'),
|
19
|
-
filename: '[name].js',
|
20
|
-
publicPath: setup.url + '/', // trailing slash required
|
21
|
-
libraryTarget: 'commonjs2'
|
22
|
-
},
|
23
|
-
module: {
|
24
|
-
loaders: [
|
25
|
-
{ test: /\.coffee$/, loader: 'coffee-loader' },
|
26
|
-
{ test: /\.html$/, loader: 'ractive-loader' },
|
27
|
-
{ test: /\.css$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader") },
|
28
|
-
{ test: /\.json$/, loader: 'json-loader' },
|
29
|
-
{ test: /\.otf($|\?)/, loader: require.resolve('file-loader') },
|
30
|
-
{ test: /\.ttf($|\?)/, loader: require.resolve('file-loader') },
|
31
|
-
{ test: /\.eot($|\?)/, loader: require.resolve('file-loader') },
|
32
|
-
{ test: /\.svg($|\?)/, loader: require.resolve('file-loader') },
|
33
|
-
{ test: /\.png($|\?)/, loader: require.resolve('url-loader') + '?limit=10000&mimetype=image/png' },
|
34
|
-
{ test: /\.jpg($|\?)/, loader: require.resolve('file-loader') },
|
35
|
-
{ test: /\.gif($|\?)/, loader: require.resolve('file-loader') },
|
36
|
-
{ test: /\.woff[2]?($|\?)/, loader: require.resolve('url-loader') + '?limit=10000&mimetype=application/font-woff' },
|
37
|
-
]
|
38
|
-
},
|
39
|
-
resolve: {
|
40
|
-
extensions: ['', '.js', '.css', '.json', '.coffee', '.html'],
|
41
|
-
alias: {
|
42
|
-
app: __dirname,
|
43
|
-
base: 'app/base',
|
44
|
-
api: 'base/api',
|
45
|
-
helpers: 'base/helpers',
|
46
|
-
assets: 'base/assets',
|
47
|
-
templates: 'base/templates'
|
48
|
-
}
|
49
|
-
},
|
50
|
-
plugins: [
|
51
|
-
new webpack.optimize.CommonsChunkPlugin('core', 'core.js'),
|
52
|
-
new ExtractTextPlugin("[name].css")
|
53
|
-
]
|
54
|
-
}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
/data/{boilerplate/app/base/api/index/layout.html → app/base/components/index/template.html}
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|