eworld 1.2.1 → 1.2.2

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
  SHA1:
3
- metadata.gz: 7e5552cd65eb30561e3a62e5d6aa469f546c7cf6
4
- data.tar.gz: b7b1bc3674c029e29bf7559c08ee8e56908782c0
3
+ metadata.gz: 75950a16fbe8126fcd439351997bf68c4d912f67
4
+ data.tar.gz: fe5d72a612293037e4667379eea1a4be21f750ef
5
5
  SHA512:
6
- metadata.gz: '08fbdf3ce162d5d94631c8511f73123728a4c2689ee11434ce56448415fcb35b8cb2e72e3ca87f165a3dde577b0235ea0e539b80f7cacd9c4b08cbcf315d9ff1'
7
- data.tar.gz: e70e8bad0a5cbc09490c78ebd0b7a44ba34fc0c04601816022ee438c398f12815ec45f5a0d527b054aea8ba34f5c16ddf9ed733530c5c187027c3960bd43a04d
6
+ metadata.gz: 5176d9ea6e1f28b299b26f380f00d412282eb617e6e9ca998b0c8d1a8f7eccd09bb482aad5e4d4725ecb7dbb50adcfbb92127c25ce8e8e35b29f46c77a9011fa
7
+ data.tar.gz: 4fd6382b37596917e580333ceaec8f52d45a8733d70df92b44b87de6545bff708a7a92b03328009fa999d9cb2bf4c6a65d3f130bf2e487442028046683c68bad
data/lib/core/opt.rb CHANGED
@@ -1,4 +1,4 @@
1
- module App
1
+ module EWorld
2
2
 
3
3
  class Opt
4
4
 
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 = "#{App::Opt::get_base_path}#{App::Opt::OPT_PATH}/config/schema.yml"
14
- TEMPLATE_FILE = "#{App::Opt::get_base_path}#{App::Opt::OPT_PATH}/config/template.yml"
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
- app.command :generate, :aliases => [:g] do |generate|
43
- generate.summary 'Generate boiler-plate code'
44
- # a - GENERATE API
45
- generate.command :api, :aliases => [:a] do |generate_api|
46
- generate_api.summary 'Generate API code'
47
- # e - GENERATE API ENTITIES
48
- generate_api.command :api_entities, :aliases => [:e] do |generate_api_entities|
49
- generate_api_entities.summary 'Generate boiler-plate entity code'
50
- generate_api_entities.action do |opts, args|
51
- AppCommand::GenerateApiEntities.new(opts, args).execute
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 API (Default)
55
- generate_api.action do
56
- system("#{App::GEM_NAME} g a -h")
57
- end
58
- end
59
- # generate - GENERATE UI
60
- generate.command :ui, :aliases => [:u] do |generate_ui|
61
- generate_ui.summary 'Generate UI code'
62
- # r - GENERATE UI ROUTES
63
- generate_ui.command :ui_routes, :aliases => [:r] do |generate_ui_routes|
64
- generate_ui_routes.summary 'Generate routes.js (and blank routes if not exists)'
65
- generate_ui_routes.action do |opts, args|
66
- AppCommand::GenerateUiRoutes.new(opts, args).execute
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 UI (Default)
70
- generate_ui.action do
71
- system("#{App::GEM_NAME} g u -h")
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 for inconsistencies'
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
- projects = Blufin::Projects.get_projects_as_array(types: [Blufin::Projects::TYPE_QUASAR, Blufin::Projects::TYPE_API_SIMPLE])
30
- project = Blufin::Projects.show_project_prompt(projects)
29
+ # TODO - This cannot be hard-coded forever!
30
+ project = 'fmm'
31
31
 
32
- # TODO - REMOVE
33
- raise RuntimeError, 'Not yet implemented!'
32
+ @results = Blufin::Scanner::scan(project)
33
+ @errors = @results[:errors]
34
34
 
35
- @scanner = Blufin::Scanner::new
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'
1
+ EWORLD_VERSION = '1.2.2'
@@ -7,7 +7,6 @@ mapping:
7
7
  required: true
8
8
  Databases:
9
9
  type: seq
10
- required: yes
11
10
  sequence:
12
11
  - type: map
13
12
  mapping:
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.1
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-13 00:00:00.000000000 Z
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.1
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.1
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.2.3
94
+ rubygems_version: 2.5.1
94
95
  signing_key:
95
96
  specification_version: 4
96
97
  summary: eWorld-CLI.