eworld 1.2.1 → 1.2.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/lib/core/opt.rb +1 -1
- data/lib/eworld.rb +39 -33
- data/lib/routes/scan.rb +18 -5
- data/lib/rules/js/rule_js_parameters.rb +61 -0
- data/lib/version.rb +1 -1
- data/opt/config/schema.yml +0 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75950a16fbe8126fcd439351997bf68c4d912f67
|
4
|
+
data.tar.gz: fe5d72a612293037e4667379eea1a4be21f750ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5176d9ea6e1f28b299b26f380f00d412282eb617e6e9ca998b0c8d1a8f7eccd09bb482aad5e4d4725ecb7dbb50adcfbb92127c25ce8e8e35b29f46c77a9011fa
|
7
|
+
data.tar.gz: 4fd6382b37596917e580333ceaec8f52d45a8733d70df92b44b87de6545bff708a7a92b03328009fa999d9cb2bf4c6a65d3f130bf2e487442028046683c68bad
|
data/lib/core/opt.rb
CHANGED
data/lib/eworld.rb
CHANGED
@@ -6,12 +6,13 @@ require_relative 'version'
|
|
6
6
|
|
7
7
|
Dir["#{File.dirname(__FILE__)}/core/**/*.rb"].each { |file| load(file) }
|
8
8
|
Dir["#{File.dirname(__FILE__)}/routes/**/*.rb"].each { |file| load(file) }
|
9
|
+
Dir["#{File.dirname(__FILE__)}/rules/**/*.rb"].each { |file| load(file) }
|
9
10
|
|
10
11
|
module App
|
11
12
|
|
12
13
|
GEM_NAME = 'eworld'
|
13
|
-
SCHEMA_FILE = "#{
|
14
|
-
TEMPLATE_FILE = "#{
|
14
|
+
SCHEMA_FILE = "#{EWorld::Opt::get_base_path}#{EWorld::Opt::OPT_PATH}/config/schema.yml"
|
15
|
+
TEMPLATE_FILE = "#{EWorld::Opt::get_base_path}#{EWorld::Opt::OPT_PATH}/config/template.yml"
|
15
16
|
CONFIG_FILE = '~/.eworld.yml'
|
16
17
|
SECRET = 'dLZDk82LU8kEZ6pbcuyJHmbrWs3ujzvM2cHNtD6BgKyvDZAcJRjU7yHde7nWejnR'
|
17
18
|
|
@@ -39,48 +40,53 @@ TEMPLATE
|
|
39
40
|
app.description "\x1B[38;5;240mAn internal tool intended for improving/automating development tasks.\x1B[0m"
|
40
41
|
|
41
42
|
# g - GENERATE
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
43
|
+
if is_albert_mac
|
44
|
+
app.command :generate, :aliases => [:g] do |generate|
|
45
|
+
generate.summary 'Generate boiler-plate code'
|
46
|
+
# a - GENERATE API
|
47
|
+
generate.command :api, :aliases => [:a] do |generate_api|
|
48
|
+
generate_api.summary 'Generate API code'
|
49
|
+
# e - GENERATE API ENTITIES
|
50
|
+
generate_api.command :api_entities, :aliases => [:e] do |generate_api_entities|
|
51
|
+
generate_api_entities.summary 'Generate boiler-plate entity code'
|
52
|
+
generate_api_entities.action do |opts, args|
|
53
|
+
AppCommand::GenerateApiEntities.new(opts, args).execute
|
54
|
+
end
|
55
|
+
end
|
56
|
+
# GENERATE API (Default)
|
57
|
+
generate_api.action do
|
58
|
+
system("#{App::GEM_NAME} g a -h")
|
52
59
|
end
|
53
60
|
end
|
54
|
-
# GENERATE
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
61
|
+
# generate - GENERATE UI
|
62
|
+
generate.command :ui, :aliases => [:u] do |generate_ui|
|
63
|
+
generate_ui.summary 'Generate UI code'
|
64
|
+
# r - GENERATE UI ROUTES
|
65
|
+
generate_ui.command :ui_routes, :aliases => [:r] do |generate_ui_routes|
|
66
|
+
generate_ui_routes.summary 'Generate routes.js (and blank routes if not exists)'
|
67
|
+
generate_ui_routes.action do |opts, args|
|
68
|
+
AppCommand::GenerateUiRoutes.new(opts, args).execute
|
69
|
+
end
|
70
|
+
end
|
71
|
+
# GENERATE UI (Default)
|
72
|
+
generate_ui.action do
|
73
|
+
system("#{App::GEM_NAME} g u -h")
|
67
74
|
end
|
68
75
|
end
|
69
|
-
# GENERATE
|
70
|
-
|
71
|
-
system("#{App::GEM_NAME} g
|
76
|
+
# GENERATE (Default)
|
77
|
+
generate.action do
|
78
|
+
system("#{App::GEM_NAME} g -h")
|
72
79
|
end
|
73
80
|
end
|
74
|
-
# GENERATE (Default)
|
75
|
-
generate.action do
|
76
|
-
system("#{App::GEM_NAME} g -h")
|
77
|
-
end
|
78
81
|
end
|
79
82
|
|
80
83
|
# s - SCAN
|
81
84
|
if is_albert_mac
|
82
85
|
app.command :scan, :aliases => [:s] do |scan|
|
83
|
-
scan.summary 'Scan the codebase
|
86
|
+
scan.summary 'Scan the codebase'
|
87
|
+
scan.options do |opts|
|
88
|
+
opts.opt :project, 'Specify Project ID', :short => '-p', :long => '--project', :type => :string
|
89
|
+
end
|
84
90
|
scan.action do |opts, args|
|
85
91
|
AppCommand::Scan.new(opts, args).execute
|
86
92
|
end
|
data/lib/routes/scan.rb
CHANGED
@@ -26,13 +26,26 @@ module AppCommand
|
|
26
26
|
|
27
27
|
def opts_routing
|
28
28
|
|
29
|
-
|
30
|
-
project
|
29
|
+
# TODO - This cannot be hard-coded forever!
|
30
|
+
project = 'fmm'
|
31
31
|
|
32
|
-
|
33
|
-
|
32
|
+
@results = Blufin::Scanner::scan(project)
|
33
|
+
@errors = @results[:errors]
|
34
34
|
|
35
|
-
@
|
35
|
+
run_js_rules(@results[:js_data]) unless @results[:js_data].nil?
|
36
|
+
|
37
|
+
# Output Errors (if any).
|
38
|
+
Blufin::ScannerError::output_cli(@errors) if @errors.any?
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
# Runs all the rules for the JS files.
|
45
|
+
# @return void
|
46
|
+
def run_js_rules(data)
|
47
|
+
|
48
|
+
@errors = EWorld::RuleJsParameters::run(data, @errors)
|
36
49
|
|
37
50
|
end
|
38
51
|
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module EWorld
|
2
|
+
|
3
|
+
class RuleJsParameters
|
4
|
+
|
5
|
+
|
6
|
+
# This rule validate JS method parameters.
|
7
|
+
# It checks that the parameters match the actual methods and that we have a description/return type.
|
8
|
+
# @return Array (of errors)
|
9
|
+
def self.run(js_data, errors)
|
10
|
+
raise RuntimeError, "Expected Array, instead got: #{errors.class}" unless errors.is_a?(Array)
|
11
|
+
@errors = errors
|
12
|
+
js_data.each { |file, data| handler(file, data) }
|
13
|
+
@errors
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
# @return void
|
19
|
+
def self.handler(file, data)
|
20
|
+
|
21
|
+
@file = file
|
22
|
+
|
23
|
+
data[:methods].each do |method_name, method_data|
|
24
|
+
|
25
|
+
begin
|
26
|
+
|
27
|
+
@line = method_data[:line]
|
28
|
+
@line_number = method_data[:line_number]
|
29
|
+
|
30
|
+
# Skip private methods.
|
31
|
+
next if method_data[:private]
|
32
|
+
|
33
|
+
expected = method_data[:params].keys
|
34
|
+
actual = method_data[:docs][:params].keys
|
35
|
+
|
36
|
+
# Throw error if params don't match comments.
|
37
|
+
raise RuntimeError, "Params docs (for #{method_name}) are missing or don't match." if expected.to_s != actual.to_s
|
38
|
+
|
39
|
+
# Make sure we have all the comment doc stuff we need.
|
40
|
+
if method_data[:docs].is_a?(Hash)
|
41
|
+
missing_items = []
|
42
|
+
missing_items << 'description' unless method_data[:docs].has_key?(:description)
|
43
|
+
missing_items << 'return' unless method_data[:docs].has_key?(:return)
|
44
|
+
if missing_items.any?
|
45
|
+
@line = "\xe2\x80\x94"
|
46
|
+
@line_number = @line_number + 1
|
47
|
+
raise RuntimeError, "Comment docs are missing \xe2\x86\x92 #{missing_items.join(', ')}"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
rescue RuntimeError => e
|
52
|
+
@errors << Blufin::ScannerError.new(@file, @line, @line_number, e.message)
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
data/lib/version.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
EWORLD_VERSION = '1.2.
|
1
|
+
EWORLD_VERSION = '1.2.2'
|
data/opt/config/schema.yml
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eworld
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Albert Rannetsperger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-11-
|
11
|
+
date: 2019-11-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: blufin-lib
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.8.
|
19
|
+
version: 1.8.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.8.
|
26
|
+
version: 1.8.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: columnist
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,6 +67,7 @@ files:
|
|
67
67
|
- lib/routes/generate_api_entities.rb
|
68
68
|
- lib/routes/generate_ui_routes.rb
|
69
69
|
- lib/routes/scan.rb
|
70
|
+
- lib/rules/js/rule_js_parameters.rb
|
70
71
|
- lib/version.rb
|
71
72
|
- opt/config/schema.yml
|
72
73
|
- opt/config/template.yml
|
@@ -90,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
91
|
version: '0'
|
91
92
|
requirements: []
|
92
93
|
rubyforge_project:
|
93
|
-
rubygems_version: 2.5.
|
94
|
+
rubygems_version: 2.5.1
|
94
95
|
signing_key:
|
95
96
|
specification_version: 4
|
96
97
|
summary: eWorld-CLI.
|