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 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.