blufin-lib 2.3.0 → 2.3.1

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
- SHA1:
3
- metadata.gz: 8120b72bf8ac1eeac43abd2db410924f918de11f
4
- data.tar.gz: ab0d357b6f8b679085e1344f896b39a15da4c43f
2
+ SHA256:
3
+ metadata.gz: b9d45f82bc9778ae3281cdcc7543d0a2a753a39e990f3f158f3d18a2a2e26408
4
+ data.tar.gz: 01fe028ff635264cc0367b7f207d35d9d45735fe01d85a44af5a8f31ce07f6f9
5
5
  SHA512:
6
- metadata.gz: 4454626b69869f6f60492c26ab366e20d57a8bf6002d4aee13ab8a77e8a0e317ba4db04de614419757f95dae693ab9b6a0cbaba7c3dcecc957eb209f649c1dc3
7
- data.tar.gz: ebf0ec803c6fc4a32edec0dc819a9aafe7255f266112507f3cfd379d0a58d20fc8eebcd9ffb5e7e8dab654237a419350742593f60377d72c3a4d750f098d95ba
6
+ metadata.gz: d62b0fa6f777a9d2624629907346180502668e5f7d736324866e43fa11094523994d475fe3c14c25001d7c05ca1b1d62b00a1a15e96496fa1380eb7d8a8b99a3
7
+ data.tar.gz: 8498ab7b2a37089bee47ad64834d89682b0430e21f78efcc0039f37568eb2afd5d6e5de0c754763af27f1f6c839bd77ada3539abc83aa427964c28af74d94f1a
@@ -13,6 +13,7 @@ module Blufin
13
13
  autoload :Numbers, 'core/numbers'
14
14
  autoload :Projects, 'core/projects'
15
15
  autoload :Routes, 'core/routes'
16
+ autoload :Scrape, 'core/scrape'
16
17
  autoload :ScannerError, 'scan/scanner_error'
17
18
  autoload :ScannerJava, 'scan/scanner_java'
18
19
  autoload :ScannerJs, 'scan/scanner_js'
@@ -1,6 +1,5 @@
1
1
  require 'fileutils'
2
2
  require 'parseconfig'
3
- require 'fileutils'
4
3
  require 'digest/sha1'
5
4
 
6
5
  module Blufin
@@ -2,67 +2,65 @@ module Blufin
2
2
 
3
3
  class Projects
4
4
 
5
- SCHEMA_FILE = "#{Blufin::Base::get_base_path}#{Blufin::Base::OPT_PATH}/schema/projects.yml"
6
- SCHEMA_FILE_CODEGEN = "#{Blufin::Base::get_base_path}#{Blufin::Base::OPT_PATH}/schema/codegen.yml"
7
- SCRIPT_RUN = 'run'
8
- SCRIPT_TEST = 'test'
9
- SCRIPT_BUILD = 'build'
10
- SCRIPT_DEPLOY = 'deploy'
11
- RUN_SCRIPTS = 'RunScripts'
12
- TEST_SCRIPTS = 'TestScripts'
13
- BUILD_SCRIPTS = 'BuildScripts'
14
- ID = 'Id'
15
- PROJECT_ID = 'ProjectId'
16
- PROJECT = 'Project'
17
- PROJECT_ROOT = 'ProjectRoot'
18
- TYPE = 'Type'
19
- REPOSITORY = 'Repository'
20
- UPSTREAM = 'Upstream'
21
- DOWNSTREAM = 'Downstream'
22
- LOCAL = 'Local'
23
- REMOTE = 'Remote'
24
- FILE = 'File'
25
- DEPLOYMENT = 'Deployment'
26
- DEPLOYMENT_BUCKET = 'Bucket'
27
- DEPLOYMENT_FILES = 'Files'
28
- RUN = 'Run'
29
- TEST = 'Test'
30
- BUILD = 'Build'
31
- COMMANDS = 'Commands'
32
- API = 'API'
33
- SCHEDULER = 'Scheduler'
34
- WORKER = 'Worker'
35
- LAMBDA = 'Lambda'
36
- UI = 'UI' # TODO - Probably need to extend this to every type of UI.
37
- TRANSIENT_DATA = 'TransientData'
38
- CODEGEN = 'codegen'
39
- CG_API_SIMPLE = 'ApiSimple'
40
- CG_QUASAR = 'Quasar'
41
- CG_QUASAR_ROOT = 'Root'
42
- CG_QUASAR_PAGES = 'PathPages'
43
- CG_QUASAR_PAGES_IGNORE = 'PathPagesIgnore'
44
- CG_QUASAR_API_DOCS_FILE = 'ApiDocsFile'
45
- CG_QUASAR_JS = 'JsPath'
46
- CG_QUASAR_TESTS = 'JsPathTests'
47
- CG_QUASAR_ROUTES_FILE = 'RoutesFile'
48
- TITLE = 'Title'
49
- ALIAS = 'Alias'
50
- DOMAIN = 'Domain'
51
- PROJECT_NAME_PASCAL_CASE = 'ProjectNamePascalCase'
52
- PROJECT_NAME = 'ProjectName'
53
- PORT = 'Port'
54
- PORTS = 'Ports'
55
- STAGES = 'Stages'
56
- TYPE_ALEXA = 'alexa'
57
- TYPE_API = 'api'
58
- TYPE_API_SIMPLE = 'api-simple'
59
- TYPE_LAMBDA = 'lambda'
60
- TYPE_MVN_LIB = 'mvn-lib'
61
- TYPE_NPM_LIB = 'npm-lib'
62
- TYPE_MOBILE = 'mobile'
63
- TYPE_QUASAR = 'quasar'
64
- TYPE_UI = 'ui' # TODO - Probably need to extend this to every type of UI.
65
- VALID_TYPES = [
5
+ SCHEMA_FILE = "#{Blufin::Base::get_base_path}#{Blufin::Base::OPT_PATH}/schema/projects.yml"
6
+ SCHEMA_FILE_CODEGEN = "#{Blufin::Base::get_base_path}#{Blufin::Base::OPT_PATH}/schema/codegen.yml"
7
+ SCRIPT_RUN = 'run'
8
+ SCRIPT_TEST = 'test'
9
+ SCRIPT_BUILD = 'build'
10
+ SCRIPT_DEPLOY = 'deploy'
11
+ RUN_SCRIPTS = 'RunScripts'
12
+ TEST_SCRIPTS = 'TestScripts'
13
+ BUILD_SCRIPTS = 'BuildScripts'
14
+ ID = 'Id'
15
+ PROJECT_ID = 'ProjectId'
16
+ PROJECT = 'Project'
17
+ PROJECT_ROOT = 'ProjectRoot'
18
+ TYPE = 'Type'
19
+ REPOSITORY = 'Repository'
20
+ UPSTREAM = 'Upstream'
21
+ DOWNSTREAM = 'Downstream'
22
+ LOCAL = 'Local'
23
+ REMOTE = 'Remote'
24
+ FILE = 'File'
25
+ DEPLOYMENT = 'Deployment'
26
+ DEPLOYMENT_BUCKET = 'Bucket'
27
+ DEPLOYMENT_FILES = 'Files'
28
+ RUN = 'Run'
29
+ TEST = 'Test'
30
+ BUILD = 'Build'
31
+ COMMANDS = 'Commands'
32
+ API = 'API'
33
+ SCHEDULER = 'Scheduler'
34
+ WORKER = 'Worker'
35
+ LAMBDA = 'Lambda'
36
+ UI = 'UI' # TODO - Probably need to extend this to every type of UI.
37
+ TRANSIENT_DATA = 'TransientData'
38
+ CODEGEN = 'codegen'
39
+ CG_API_SIMPLE = 'ApiSimple'
40
+ CG_QUASAR = 'Quasar'
41
+ CG_QUASAR_ROOT = 'Root'
42
+ CG_QUASAR_PAGES = 'PathPages'
43
+ CG_QUASAR_PAGES_IGNORE = 'PathPagesIgnore'
44
+ CG_QUASAR_ROUTES_FILE = 'RoutesFile'
45
+ CG_QUASAR_ROUTER_VIEW_LAYOUT = 'RouterViewLayout'
46
+ TITLE = 'Title'
47
+ ALIAS = 'Alias'
48
+ DOMAIN = 'Domain'
49
+ PROJECT_NAME_PASCAL_CASE = 'ProjectNamePascalCase'
50
+ PROJECT_NAME = 'ProjectName'
51
+ PORT = 'Port'
52
+ PORTS = 'Ports'
53
+ STAGES = 'Stages'
54
+ TYPE_ALEXA = 'alexa'
55
+ TYPE_API = 'api'
56
+ TYPE_API_SIMPLE = 'api-simple'
57
+ TYPE_LAMBDA = 'lambda'
58
+ TYPE_MVN_LIB = 'mvn-lib'
59
+ TYPE_NPM_LIB = 'npm-lib'
60
+ TYPE_MOBILE = 'mobile'
61
+ TYPE_QUASAR = 'quasar'
62
+ TYPE_UI = 'ui' # TODO - Probably need to extend this to every type of UI.
63
+ VALID_TYPES = [
66
64
  TYPE_ALEXA,
67
65
  TYPE_API,
68
66
  TYPE_API_SIMPLE,
@@ -295,7 +293,7 @@ module Blufin
295
293
  Blufin::Terminal::error('No projects found.') unless array_of_projects.any?
296
294
  return array_of_projects[0] if array_of_projects.length == 1
297
295
  projects = []
298
- array_of_projects.each { |project| projects << { :text => project[PROJECT_ID], :value => project } }
296
+ array_of_projects.each { |project| projects << {:text => project[PROJECT_ID], :value => project} }
299
297
  Blufin::Terminal::prompt_select('Select project:', projects)
300
298
  end
301
299
 
@@ -335,6 +333,8 @@ module Blufin
335
333
  end
336
334
  end
337
335
 
336
+ # TODO - This file is very broken: 06/01/20 -- Need to remove all the API SIMPLE + QUASAR STUFF!
337
+
338
338
  # Buffer/validate project(s) stuff.
339
339
  projects_yml['Projects'].each do |project|
340
340
  project_id = project[PROJECT_ID]
@@ -387,12 +387,15 @@ module Blufin
387
387
  @codegen_file = "#{Blufin::Projects::get_project_path(project_id, project: project)}/.#{CODEGEN}/#{CODEGEN}.yml"
388
388
 
389
389
  if [TYPE_API_SIMPLE, TYPE_QUASAR].include?(project_type)
390
- # Validate (and parse) .codegen/codegen.yml.
391
- Blufin::Terminal::error("#{Blufin::Terminal::format_highlight(project_id)} \xe2\x80\x94 Missing file: #{Blufin::Terminal::format_directory(@codegen_file)}", 'This file needs to exist.', true) unless Blufin::Files::file_exists(@codegen_file)
392
- # Parse .codegen/codegen.yml
393
- document, errors = Blufin::Config::validate_file(@codegen_file, SCHEMA_FILE_CODEGEN)
394
- display_parse_errors_if_any(errors, @codegen_file)
395
- @codegen_yml = parse_yml(@codegen_file)
390
+
391
+ # TODO - REMOVE THIS?
392
+
393
+ # # Validate (and parse) .codegen/codegen.yml.
394
+ # Blufin::Terminal::error("#{Blufin::Terminal::format_highlight(project_id)} \xe2\x80\x94 Missing file: #{Blufin::Terminal::format_directory(@codegen_file)}", 'This file needs to exist.', true) unless Blufin::Files::file_exists(@codegen_file)
395
+ # # Parse .codegen/codegen.yml
396
+ # document, errors = Blufin::Config::validate_file(@codegen_file, SCHEMA_FILE_CODEGEN)
397
+ # display_parse_errors_if_any(errors, @codegen_file)
398
+ # @codegen_yml = parse_yml(@codegen_file)
396
399
  end
397
400
 
398
401
  # Validate Script(s).
@@ -403,7 +406,7 @@ module Blufin
403
406
  if project[script_type].is_a?(Hash)
404
407
  script_key = script_key_mapper(script_type)
405
408
  valid_scripts = []
406
- valid_scripts = @@scripts[script_key].keys if @@scripts.has_key?(script_key)
409
+ valid_scripts = @@scripts[script_key].keys if @@scripts.is_a?(Hash) && @@scripts.has_key?(script_key)
407
410
  script = project[script_type]
408
411
  script_name = script['Script']
409
412
  unless valid_scripts.include?(script_name)
@@ -464,11 +467,12 @@ module Blufin
464
467
  Blufin::Terminal::error("#{Blufin::Terminal::format_highlight(project_id)} \xe2\x80\x94 Property not supported: #{Blufin::Terminal::format_invalid(API)}", "This property is only allowed for project(s) with type: #{API}", true) if project.has_key?(API)
465
468
  end
466
469
 
470
+ # TODO - REMOVE?
467
471
  # Validate ApiSimple property.
468
- if project_type == TYPE_API_SIMPLE
469
- Blufin::Terminal::error("#{Blufin::Terminal::format_highlight(project_id)} \xe2\x80\x94 Missing property #{Blufin::Terminal::format_highlight(CG_API_SIMPLE)} in: #{Blufin::Terminal::format_directory(@codegen_file)}", "This property is required for project(s) with type: #{TYPE_API_SIMPLE}", true) unless @codegen_yml.has_key?(CG_API_SIMPLE)
470
- project[TRANSIENT_DATA] = @codegen_yml[CG_API_SIMPLE]
471
- end
472
+ # if project_type == TYPE_API_SIMPLE
473
+ # Blufin::Terminal::error("#{Blufin::Terminal::format_highlight(project_id)} \xe2\x80\x94 Missing property #{Blufin::Terminal::format_highlight(CG_API_SIMPLE)} in: #{Blufin::Terminal::format_directory(@codegen_file)}", "This property is required for project(s) with type: #{TYPE_API_SIMPLE}", true) unless @codegen_yml.has_key?(CG_API_SIMPLE)
474
+ # project[TRANSIENT_DATA] = @codegen_yml[CG_API_SIMPLE]
475
+ # end
472
476
 
473
477
  # Validate Lambda property.
474
478
  if project_type == TYPE_LAMBDA
@@ -493,11 +497,12 @@ module Blufin
493
497
  Blufin::Terminal::error("#{Blufin::Terminal::format_highlight(project_id)} \xe2\x80\x94 Property not supported: #{Blufin::Terminal::format_invalid(LAMBDA)}", "This property is only allowed for project(s) with type: #{TYPE_LAMBDA}", true) if project.has_key?(LAMBDA)
494
498
  end
495
499
 
500
+ # TODO - REMOVE?
496
501
  # Validate Quasar property.
497
- if project_type == TYPE_QUASAR
498
- Blufin::Terminal::error("#{Blufin::Terminal::format_highlight(project_id)} \xe2\x80\x94 Missing property #{Blufin::Terminal::format_highlight(CG_QUASAR)} in: #{Blufin::Terminal::format_directory(@codegen_file)}", "This property is required for project(s) with type: #{TYPE_QUASAR}", true) unless @codegen_yml.has_key?(CG_QUASAR)
499
- project[TRANSIENT_DATA] = @codegen_yml[CG_QUASAR]
500
- end
502
+ # if project_type == TYPE_QUASAR
503
+ # Blufin::Terminal::error("#{Blufin::Terminal::format_highlight(project_id)} \xe2\x80\x94 Missing property #{Blufin::Terminal::format_highlight(CG_QUASAR)} in: #{Blufin::Terminal::format_directory(@codegen_file)}", "This property is required for project(s) with type: #{TYPE_QUASAR}", true) unless @codegen_yml.has_key?(CG_QUASAR)
504
+ # project[TRANSIENT_DATA] = @codegen_yml[CG_QUASAR]
505
+ # end
501
506
 
502
507
  # Validate upstream/downstream Libs(s).
503
508
  [UPSTREAM, DOWNSTREAM].each do |stream|
@@ -0,0 +1,16 @@
1
+ module Blufin
2
+
3
+ class Scrape
4
+
5
+ # Remove this!
6
+ # @return void
7
+ def self.test
8
+
9
+ # TODO - Put all scrape related shared code here.
10
+ puts 'IT WORKS!'
11
+
12
+ end
13
+
14
+ end
15
+
16
+ end
@@ -35,7 +35,7 @@ module Blufin
35
35
  # @param String - The string to be trimmed (and returned).
36
36
  # @return String
37
37
  def self.remove_surrounding_slashes(string)
38
- raise RuntimeError, "Expected String, instead got:#{string.class}" unless string.is_a?(String)
38
+ raise RuntimeError, "Expected String, instead got: #{string.class} (#{string.inspect})" unless string.is_a?(String)
39
39
  string = string.strip
40
40
  validate_string(string)
41
41
  string = string.gsub(/\A\/+/, '')
@@ -115,13 +115,13 @@ module Blufin
115
115
 
116
116
  # Same as above but with a proc/lambda instead of a terminal command.
117
117
  # @return void
118
- def self.execute_proc(title, proc, verbose: true)
118
+ def self.execute_proc(title, proc, verbose: true, hide_progress: false)
119
119
  raise RuntimeError, "Expected String, instead got:#{title.class}" unless title.is_a?(String)
120
120
  raise RuntimeError, "Expected proc to be an instance of Proc, instead got: #{proc.class}" unless proc.is_a?(Proc)
121
121
  t1 = Time.now
122
122
  spinner = nil
123
123
  spinner = TTY::Spinner.new("[:spinner] \x1B[38;5;208m#{title}\x1B[0m", format: :dots) if verbose
124
- spinner.auto_spin if verbose
124
+ spinner.auto_spin if verbose && !hide_progress
125
125
  res = proc.call
126
126
  t2 = Time.now
127
127
  delta = "#{'%.3f' % (t2 - t1).abs}s"
@@ -147,9 +147,9 @@ module Blufin
147
147
  when MSG_TODO
148
148
  puts "\x1B[38;5;231m\x1B[48;5;199m @TODO \x1B[0m \x1B[0m\xe2\x86\x92\x1B[0m \x1B[0m#{message}\x1B[0m\n"
149
149
  when MSG_AUTOMATIC
150
- puts "\x1B[38;5;231m\x1B[48;5;96m Automatic \x1B[0m \x1B[0m\xe2\x86\x92\x1B[0m \x1B[0m#{message}\x1B[0m\n"
150
+ puts "\x1B[38;5;231m\x1B[48;5;92m Automatic \x1B[0m \x1B[0m\xe2\x86\x92\x1B[0m \x1B[0m#{message}\x1B[0m\n"
151
151
  when MSG_GENERATED
152
- puts "\x1B[38;5;231m\x1B[48;5;96m Generated \x1B[0m \x1B[0m\xe2\x86\x92\x1B[0m \x1B[0m#{message}\x1B[0m\n"
152
+ puts "\x1B[38;5;231m\x1B[48;5;89m Generated \x1B[0m \x1B[0m\xe2\x86\x92\x1B[0m \x1B[0m#{message}\x1B[0m\n"
153
153
  when MSG_PROCESSED
154
154
  puts "\x1B[38;5;231m\x1B[48;5;238m Processed \x1B[0m \x1B[0m\xe2\x86\x92\x1B[0m \x1B[0m#{message}\x1B[0m\n"
155
155
  when MSG_PROGRESS
@@ -661,4 +661,5 @@ module Blufin
661
661
  end
662
662
 
663
663
  end
664
+
664
665
  end
@@ -70,7 +70,9 @@ module Blufin
70
70
  raise RuntimeError, "Expected String, instead got: #{file.class}" unless file.is_a?(String)
71
71
  fs = file.split('/')
72
72
  fl = fs.pop
73
- "\x1B[48;5;233m \x1B[38;5;240m#{fs.join('/')}/\x1B[38;5;202m#{fl} \x1B[0m"
73
+ is_file = fl =~ /\./
74
+ color = is_file ? 202 : 75
75
+ "\x1B[48;5;233m \x1B[38;5;240m#{fs.join('/')}/\x1B[38;5;#{color}m#{fl} \x1B[0m#{is_file ? nil : '(path)'}"
74
76
  end
75
77
 
76
78
  # Add an error.
@@ -86,6 +86,9 @@ module Blufin
86
86
 
87
87
  end
88
88
 
89
+ # Make sure we have at least one method.
90
+ @errors << Blufin::ScannerError.new(file, nil, nil, "No methods/functions found in file: #{file}") unless @data[@file_short][:methods].length > 0
91
+
89
92
  end
90
93
 
91
94
  # Parses comments.
@@ -1 +1 @@
1
- BLUFIN_LIB_VERSION = '2.3.0'
1
+ BLUFIN_LIB_VERSION = '2.3.1'
@@ -9,7 +9,7 @@ mapping:
9
9
  ControllerPath:
10
10
  required: true
11
11
  pattern: /^[a-z0-9\-\/]+$/
12
- ServicePath:
12
+ ModulePath:
13
13
  required: true
14
14
  pattern: /^[a-z0-9\-\/]+$/
15
15
  Lambda:
@@ -30,18 +30,9 @@ mapping:
30
30
  type: seq
31
31
  sequence:
32
32
  - type: str
33
- ApiDocsFile:
34
- required: true
35
- pattern: /^[a-z0-9\-\.\/]+$/
36
- JsDocsFile:
37
- required: true
38
- pattern: /^[a-z0-9\-\.\/]+$/
39
- JsPath:
40
- required: true
41
- pattern: /^[a-z0-9\-\/]+$/
42
- JsPathTests:
43
- required: true
44
- pattern: /^[a-z0-9\-\/]+$/
45
33
  RoutesFile:
46
34
  required: true
47
- pattern: /^[a-z0-9\-\.\/]+$/
35
+ pattern: /^[a-z0-9\-\/]+\.js$/
36
+ RouterViewLayout:
37
+ required: true
38
+ pattern: /^[a-z0-9\-\/]+\.vue$/
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blufin-lib
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 2.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Albert Rannetsperger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-15 00:00:00.000000000 Z
11
+ date: 2020-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: highline
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 2.2.0
33
+ version: 2.3.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 2.2.0
40
+ version: 2.3.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: kwalify
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - '='
102
102
  - !ruby/object:Gem::Version
103
- version: 0.19.0
103
+ version: 0.21.0
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - '='
109
109
  - !ruby/object:Gem::Version
110
- version: 0.19.0
110
+ version: 0.21.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: tty-spinner
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -142,6 +142,7 @@ files:
142
142
  - lib/core/numbers.rb
143
143
  - lib/core/projects.rb
144
144
  - lib/core/routes.rb
145
+ - lib/core/scrape.rb
145
146
  - lib/core/strings.rb
146
147
  - lib/core/terminal.rb
147
148
  - lib/core/tools.rb
@@ -177,8 +178,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
177
178
  - !ruby/object:Gem::Version
178
179
  version: '0'
179
180
  requirements: []
180
- rubyforge_project:
181
- rubygems_version: 2.5.2.3
181
+ rubygems_version: 3.1.2
182
182
  signing_key:
183
183
  specification_version: 4
184
184
  summary: Blufin Lib