origen 0.60.7 → 0.60.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/config/rubocop/easy.yml +4875 -308
  3. data/config/rubocop/strict.yml +4875 -308
  4. data/config/version.rb +1 -1
  5. data/lib/origen/application/configuration.rb +6 -3
  6. data/lib/origen/application/deployer.rb +4 -4
  7. data/lib/origen/application/environment.rb +4 -2
  8. data/lib/origen/application/lsf.rb +23 -4
  9. data/lib/origen/application/lsf_manager.rb +48 -52
  10. data/lib/origen/application/plugins.rb +7 -7
  11. data/lib/origen/application/release.rb +5 -3
  12. data/lib/origen/application/runner.rb +5 -6
  13. data/lib/origen/application/statistics.rb +1 -0
  14. data/lib/origen/application/target.rb +9 -6
  15. data/lib/origen/application/version_tracker.rb +4 -5
  16. data/lib/origen/application/workspace_manager.rb +5 -2
  17. data/lib/origen/application.rb +9 -9
  18. data/lib/origen/boot/api.rb +3 -0
  19. data/lib/origen/boot/app.rb +28 -30
  20. data/lib/origen/boot.rb +1 -0
  21. data/lib/origen/bugs.rb +2 -2
  22. data/lib/origen/chip_mode.rb +7 -4
  23. data/lib/origen/chip_package.rb +50 -53
  24. data/lib/origen/chips/chip.rb +8 -4
  25. data/lib/origen/chips.rb +16 -12
  26. data/lib/origen/client.rb +1 -0
  27. data/lib/origen/clocks/clock.rb +8 -7
  28. data/lib/origen/clocks/clocks_collection.rb +2 -1
  29. data/lib/origen/code_generators/actions.rb +1 -1
  30. data/lib/origen/code_generators/base.rb +1 -1
  31. data/lib/origen/code_generators.rb +3 -0
  32. data/lib/origen/commands/archive.rb +1 -1
  33. data/lib/origen/commands/compile.rb +2 -2
  34. data/lib/origen/commands/fetch.rb +1 -1
  35. data/lib/origen/commands/generate.rb +3 -3
  36. data/lib/origen/commands/interactive.rb +6 -7
  37. data/lib/origen/commands/lint.rb +1 -1
  38. data/lib/origen/commands/lsf.rb +2 -2
  39. data/lib/origen/commands/new.rb +1 -1
  40. data/lib/origen/commands/plugin.rb +2 -2
  41. data/lib/origen/commands/program.rb +3 -3
  42. data/lib/origen/commands/rc.rb +4 -4
  43. data/lib/origen/commands/save.rb +1 -1
  44. data/lib/origen/commands/time.rb +4 -6
  45. data/lib/origen/commands/web.rb +5 -2
  46. data/lib/origen/commands.rb +1 -1
  47. data/lib/origen/componentable.rb +1 -0
  48. data/lib/origen/controller.rb +11 -13
  49. data/lib/origen/core_ext/array.rb +2 -1
  50. data/lib/origen/core_ext/enumerable.rb +4 -2
  51. data/lib/origen/core_ext/hash.rb +5 -6
  52. data/lib/origen/core_ext/integer.rb +2 -4
  53. data/lib/origen/core_ext/object.rb +2 -2
  54. data/lib/origen/core_ext/option_parser/optparse.rb +1 -1
  55. data/lib/origen/core_ext/string.rb +8 -8
  56. data/lib/origen/database/key_value_store.rb +12 -14
  57. data/lib/origen/database/key_value_stores.rb +1 -0
  58. data/lib/origen/errata/hw_erratum.rb +1 -1
  59. data/lib/origen/errata.rb +7 -8
  60. data/lib/origen/features/feature.rb +1 -0
  61. data/lib/origen/features.rb +4 -6
  62. data/lib/origen/file_handler.rb +8 -7
  63. data/lib/origen/fuses/fuse_field.rb +2 -2
  64. data/lib/origen/generator/compiler.rb +2 -4
  65. data/lib/origen/generator/job.rb +3 -2
  66. data/lib/origen/generator/pattern.rb +3 -3
  67. data/lib/origen/generator/pattern_finder.rb +6 -5
  68. data/lib/origen/generator/pattern_sequence.rb +3 -0
  69. data/lib/origen/generator/renderer.rb +3 -4
  70. data/lib/origen/generator/resources.rb +1 -1
  71. data/lib/origen/generator/stage.rb +3 -0
  72. data/lib/origen/limits/limit.rb +14 -11
  73. data/lib/origen/limits/limit_set.rb +2 -1
  74. data/lib/origen/loader.rb +4 -2
  75. data/lib/origen/log.rb +3 -2
  76. data/lib/origen/memory.rb +1 -0
  77. data/lib/origen/model.rb +10 -4
  78. data/lib/origen/models.rb +2 -2
  79. data/lib/origen/netlist/list.rb +1 -0
  80. data/lib/origen/netlist.rb +5 -7
  81. data/lib/origen/org_file/interceptor.rb +1 -1
  82. data/lib/origen/org_file.rb +4 -1
  83. data/lib/origen/parameters/set.rb +1 -0
  84. data/lib/origen/parameters.rb +3 -1
  85. data/lib/origen/pins/pin.rb +18 -12
  86. data/lib/origen/pins/pin_bank.rb +3 -0
  87. data/lib/origen/pins/pin_clock.rb +3 -2
  88. data/lib/origen/pins/pin_collection.rb +3 -0
  89. data/lib/origen/pins/timing/wave.rb +5 -0
  90. data/lib/origen/pins.rb +7 -1
  91. data/lib/origen/ports.rb +1 -1
  92. data/lib/origen/power_domains/power_domain.rb +5 -2
  93. data/lib/origen/power_domains/power_domains_collection.rb +2 -1
  94. data/lib/origen/registers/bit.rb +21 -17
  95. data/lib/origen/registers/bit_collection.rb +15 -6
  96. data/lib/origen/registers/reg.rb +34 -28
  97. data/lib/origen/registers.rb +25 -24
  98. data/lib/origen/remote_manager.rb +3 -2
  99. data/lib/origen/revision_control/base.rb +1 -4
  100. data/lib/origen/revision_control/design_sync.rb +10 -10
  101. data/lib/origen/revision_control/git.rb +4 -2
  102. data/lib/origen/site_config/config.rb +3 -1
  103. data/lib/origen/site_config.rb +3 -0
  104. data/lib/origen/specs/checkers.rb +12 -8
  105. data/lib/origen/specs/doc_resource.rb +3 -4
  106. data/lib/origen/specs/spec.rb +5 -1
  107. data/lib/origen/specs/version_history.rb +1 -1
  108. data/lib/origen/specs.rb +52 -37
  109. data/lib/origen/sub_blocks.rb +20 -14
  110. data/lib/origen/top_level.rb +2 -1
  111. data/lib/origen/users/user.rb +4 -5
  112. data/lib/origen/utility/csv_data.rb +6 -4
  113. data/lib/origen/utility/diff.rb +9 -9
  114. data/lib/origen/utility/file_diff.rb +4 -0
  115. data/lib/origen/utility/input_capture.rb +6 -6
  116. data/lib/origen/utility/mailer.rb +8 -11
  117. data/lib/origen/utility/time_and_date.rb +1 -2
  118. data/lib/origen/utility.rb +2 -2
  119. data/lib/origen/value.rb +2 -1
  120. data/lib/origen/version_string.rb +33 -41
  121. data/lib/origen.rb +62 -64
  122. data/origen_app_generators/origen_app_generators.gemspec +1 -1
  123. metadata +9 -27
  124. data/config/rubocop/easy_disabled.yml +0 -275
  125. data/config/rubocop/easy_enabled.yml +0 -727
  126. data/config/rubocop/strict_disabled.yml +0 -251
  127. data/config/rubocop/strict_enabled.yml +0 -751
@@ -32,11 +32,11 @@ Usage: origen compile [space separated files, lists or directories] [options]
32
32
  EOT
33
33
  opts.on('-e', '--environment NAME', String, 'Override the default environment, NAME can be a full path or a fragment of an environment file name') { |e| options[:environment] = e }
34
34
  opts.on('-t', '--target NAME', String, 'Override the default target, NAME can be a full path or a fragment of a target file name') { |t| options[:target] = t }
35
- opts.on('-pl', '--plugin PLUGIN_NAME', String, 'Set current plugin') { |pl_n| options[:current_plugin] = pl_n }
35
+ opts.on('-pl', '--plugin PLUGIN_NAME', String, 'Set current plugin') { |pl_n| options[:current_plugin] = pl_n }
36
36
  opts.on('-l', '--lsf [ACTION]', [:clear, :add], "Submit jobs to the LSF, optionally specify whether to 'clear' or 'add' to existing jobs") { |a| options[:lsf] = true; options[:lsf_action] = a }
37
37
  opts.on('-w', '--wait', 'Wait for LSF processing to complete') { options[:wait_for_lsf_completion] = true }
38
38
  opts.on('-c', '--continue', 'Continue on error (to the next file)') { options[:continue] = true }
39
- opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
39
+ opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
40
40
  opts.on('-m', '--mode MODE', Origen::Mode::MODES, 'Force the Origen operating mode:', ' ' + Origen::Mode::MODES.join(', ')) { |_m| }
41
41
  opts.on('-f', '--file FILE', String, 'Override the default log file') { |o| options[:log_file] = o }
42
42
  opts.on('-o', '--output DIR', String, 'Override the default output directory') { |o| options[:output] = o }
@@ -12,7 +12,7 @@ By default this will always create the workspace at './[PLUGIN_NAME]'
12
12
  Usage: origen fetch [PLUGIN_NAME] [options]
13
13
  END
14
14
  opts.on('-o', '--outputdir PATH', 'User defined destination directory of the plugin workspace') { |o| options[:outputdir] = o }
15
- opts.on('-v', '--version VERSION', 'User requested plugin/gem version') { |v| options[:version] = v }
15
+ opts.on('-v', '--version VERSION', 'User requested plugin/gem version') { |v| options[:version] = v }
16
16
  opts.on('-h', '--help', 'Show this message') { puts opts; exit }
17
17
  end.parse!
18
18
 
@@ -12,7 +12,7 @@ opt_parser = OptionParser.new do |opts|
12
12
  opts.on('-l', '--lsf [ACTION]', [:clear, :add], "Submit jobs to the LSF, optionally specify whether to 'clear' or 'add' to existing jobs") { |a| options[:lsf] = true; options[:lsf_action] = a }
13
13
  opts.on('-w', '--wait', 'Wait for LSF processing to complete') { options[:wait_for_lsf_completion] = true }
14
14
  opts.on('-c', '--continue', 'Continue on error (to the next pattern)') { options[:continue] = true }
15
- opts.on('-pl', '--plugin PLUGIN_NAME', String, 'Set current plugin') { |pl_n| options[:current_plugin] = pl_n }
15
+ opts.on('-pl', '--plugin PLUGIN_NAME', String, 'Set current plugin') { |pl_n| options[:current_plugin] = pl_n }
16
16
  opts.on('-f', '--file FILE', String, 'Override the default log file') { |o| options[:log_file] = o }
17
17
  opts.on('-o', '--output DIR', String, 'Override the default output directory') { |o| options[:output] = o }
18
18
  opts.on('-r', '--reference DIR', String, 'Override the default reference directory') { |o| options[:reference] = o }
@@ -22,7 +22,7 @@ opt_parser = OptionParser.new do |opts|
22
22
  opts.on('--html', 'Generate into html format') { options[:html] = true }
23
23
  opts.on('--nocom', 'No comments in the generated pattern') { options[:no_comments] = true }
24
24
  opts.on('-seq', '--sequence NAME', String, 'Generate multiple patterns into a single concurrent pattern sequence') { |o| options[:sequence] = o }
25
- opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
25
+ opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
26
26
  opts.on('-m', '--mode MODE', Origen::Mode::MODES, 'Force the Origen operating mode:', ' ' + Origen::Mode::MODES.join(', ')) { |_m| }
27
27
  # Apply any application option extensions to the OptionParser
28
28
  Origen::CommandHelpers.extend_options(opts, app_options, options)
@@ -56,7 +56,7 @@ _with_doc_tester(options) do
56
56
  Origen.app.plugins.temporary = options[:current_plugin] if options[:current_plugin]
57
57
  Origen.environment.temporary = options[:environment] if options[:environment]
58
58
  Origen.target.temporary = options[:target] if options[:target]
59
- Origen.app.load_target! # This initial load is required to apply any configuration
59
+ Origen.app.load_target! # This initial load is required to apply any configuration
60
60
  # options present in the target, it will loaded again before
61
61
  # each generate/compile job
62
62
  Origen.app.runner.generate(options)
@@ -36,9 +36,9 @@ Usage: origen i [options]
36
36
  END
37
37
  opts.on('-e', '--environment NAME', String, 'Override the default environment, NAME can be a full path or a fragment of an environment file name') { |e| options[:environment] = e }
38
38
  opts.on('-t', '--target NAME', String, 'Override the default target, NAME can be a full path or a fragment of a target file name') { |t| options[:target] = t }
39
- opts.on('-pl', '--plugin PLUGIN_NAME', String, 'Set current plugin') { |pl_n| options[:current_plugin] = pl_n }
39
+ opts.on('-pl', '--plugin PLUGIN_NAME', String, 'Set current plugin') { |pl_n| options[:current_plugin] = pl_n }
40
40
  opts.on('-p', '--pry', 'Use Pry for the session (instead of IRB)') { options[:pry] = true }
41
- opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
41
+ opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
42
42
  opts.on('-m', '--mode MODE', Origen::Mode::MODES, 'Force the Origen operating mode:', ' ' + Origen::Mode::MODES.join(', ')) { |_m| }
43
43
  # Apply any application option extensions to the OptionParser
44
44
  Origen::CommandHelpers.extend_options(opts, app_options, options)
@@ -59,7 +59,7 @@ Usage: origen i [options]
59
59
  begin
60
60
  if defined?(Pry) && options[:pry]
61
61
  include ConsoleMethods
62
- # rubocop:disable Debugger, EmptyLines
62
+ # rubocop:disable Lint/Debugger, Layout/EmptyLines
63
63
 
64
64
 
65
65
 
@@ -75,13 +75,12 @@ Usage: origen i [options]
75
75
 
76
76
 
77
77
 
78
- # rubocop:enable Debugger, EmptyLines
78
+ # rubocop:enable Lint/Debugger, Layout/EmptyLines
79
79
  else
80
80
  IRB::ExtendCommandBundle.send :include, Origen::ConsoleMethods
81
81
  IRB.start
82
82
  end
83
- ensure
84
- listeners_for(:interactive_shutdown).each(&:interactive_shutdown)
85
-
83
+ ensure
84
+ listeners_for(:interactive_shutdown).each(&:interactive_shutdown)
86
85
  end
87
86
  end
@@ -20,7 +20,7 @@ http://origen.freescale.net/origen/latest/guides/utilities/lint/
20
20
  opts.on('-n', '--no-correct', "Don't correct errors automatically (override if the app default is set to auto correct)") { options[:no_correct] = true }
21
21
  opts.on('-e', '--easy', 'Be less strict, most checks run with this flag enabled can be corrected automatically') { options[:easy] = true }
22
22
  opts.on('-m', '--mode MODE', Origen::Mode::MODES, 'Force the Origen operating mode:', ' ' + Origen::Mode::MODES.join(', ')) { |_m| }
23
- opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
23
+ opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
24
24
  # Apply any application option extensions to the OptionParser
25
25
  Origen::CommandHelpers.extend_options(opts, app_options, options)
26
26
  opts.separator ''
@@ -46,7 +46,7 @@ Usage: origen lsf [options]
46
46
  EOT
47
47
  opts.on('-v', '--verbose', 'Show job details') { options[:verbose] = true }
48
48
  opts.on('-r', '--resubmit', 'Re-submit jobs') { options[:resubmit] = true }
49
- opts.on('-c', '--clear', 'Clear jobs') { options[:clear] = true }
49
+ opts.on('-c', '--clear', 'Clear jobs') { options[:clear] = true }
50
50
  opts.on('-l', '--log', 'Build a log file from the completed jobs') { options[:log] = true }
51
51
  # opts.on("-k", "--kill", "Kill jobs") { options[:kill] = true }
52
52
  types = [:queuing, :running, :lost, :passed, :failed, :all]
@@ -55,7 +55,7 @@ Usage: origen lsf [options]
55
55
  opts.on('-w', '--wait', 'Wait for LSF processing to complete') { options[:wait_for_lsf_completion] = true }
56
56
  # opts.on("-e", "--execute", "Execute....") { options[:execute] = true }
57
57
  opts.on('-m', '--mode MODE', Origen::Mode::MODES, 'Force the Origen operating mode:', ' ' + Origen::Mode::MODES.join(', ')) { |_m| }
58
- opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
58
+ opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
59
59
  # Apply any application option extensions to the OptionParser
60
60
  Origen::CommandHelpers.extend_options(opts, app_options, options)
61
61
  opts.separator ''
@@ -25,7 +25,7 @@ https://origen-sdk.org/origen_app_generators
25
25
 
26
26
  Usage: origen new [APP_NAME] [options]
27
27
  END
28
- opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
28
+ opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
29
29
  opts.on('-f', '--fetch', 'Fetch the latest versions of the app generators, otherwise happens every 24hrs') { options[:fetch] = true }
30
30
  opts.separator ''
31
31
  opts.on('-h', '--help', 'Show this message') { puts opts; exit }
@@ -35,8 +35,8 @@ The following commands are available:
35
35
 
36
36
  The following options are available:
37
37
  EOT
38
- opts.on('-a', '--allr', 'List all plugins/gems (including external)') { options[:debugger] = true }
39
- opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
38
+ opts.on('-a', '--allr', 'List all plugins/gems (including external)') { options[:debugger] = true }
39
+ opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
40
40
  opts.on('-h', '--help', 'Show this message') { puts opts; exit }
41
41
  end
42
42
 
@@ -12,7 +12,7 @@ opt_parser = OptionParser.new do |opts|
12
12
  opts.on('-l', '--lsf [ACTION]', [:clear, :add], "Submit jobs to the LSF, optionally specify whether to 'clear' or 'add' to existing jobs") { |a| options[:lsf] = true; options[:lsf_action] = a }
13
13
  opts.on('-w', '--wait', 'Wait for LSF processing to complete') { options[:wait_for_lsf_completion] = true }
14
14
  opts.on('-c', '--continue', 'Continue on error (to the next file)') { options[:continue] = true }
15
- opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
15
+ opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
16
16
  opts.on('-f', '--file FILE', String, 'Override the default log file') { |o| options[:log_file] = o }
17
17
  opts.on('-pl', '--plugin PLUGIN_NAME', String, 'Set current plugin') { |pl_n| options[:current_plugin] = pl_n }
18
18
  opts.on('-o', '--output DIR', String, 'Override the default output directory') { |o| options[:output] = o }
@@ -21,7 +21,7 @@ opt_parser = OptionParser.new do |opts|
21
21
  opts.on('--doc', 'Generate into doc (yaml) format, requires a Doc interface to be setup in your application') { options[:doc] = true }
22
22
  opts.on('-q', '--queue NAME', String, 'Specify the LSF queue, default is short') { |o| options[:queue] = o }
23
23
  opts.on('-p', '--project NAME', String, 'Specify the LSF project, default is msg.te') { |o| options[:project] = o }
24
- opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
24
+ opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
25
25
  opts.on('-m', '--mode MODE', Origen::Mode::MODES, 'Force the Origen operating mode:', ' ' + Origen::Mode::MODES.join(', ')) { |_m| }
26
26
  # Apply any application option extensions to the OptionParser
27
27
  Origen::CommandHelpers.extend_options(opts, app_options, options)
@@ -55,7 +55,7 @@ _with_doc_tester(options) do
55
55
  Origen.app.plugins.temporary = options[:current_plugin] if options[:current_plugin]
56
56
  Origen.environment.temporary = options[:environment] if options[:environment]
57
57
  Origen.target.temporary = options[:target] if options[:target]
58
- Origen.app.load_target! # This initial load is required to apply any configuration
58
+ Origen.app.load_target! # This initial load is required to apply any configuration
59
59
  # options present in the target, it will loaded again before
60
60
  # each generate/compile job
61
61
 
@@ -131,7 +131,7 @@ The following options are available:
131
131
  # Apply any application option extensions to the OptionParser
132
132
  Origen::CommandHelpers.extend_options(opts, app_options, options)
133
133
  opts.separator ''
134
- opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
134
+ opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
135
135
  opts.on('-m', '--mode MODE', Origen::Mode::MODES, 'Force the Origen operating mode:', ' ' + Origen::Mode::MODES.join(', ')) { |_m| }
136
136
  opts.separator ''
137
137
  opts.separator "The following options apply to the 'tag' command only:"
@@ -369,13 +369,13 @@ The following options are available:
369
369
  filelist = Origen.app.rc.unmanaged.reject do |file|
370
370
  reject = false
371
371
  unmanaged_dirs.each do |dir_filter|
372
- if file =~ /^#{Regexp.escape(dir_filter)}\//i # dir matching
372
+ if file =~ /^#{Regexp.escape(dir_filter)}\//i # dir matching
373
373
  reject = true
374
374
  end
375
375
  end
376
376
  unless reject
377
377
  unmanaged_files.each do |file_filter|
378
- if file_filter =~ /\*/ # wildcard used
378
+ if file_filter =~ /\*/ # wildcard used
379
379
  temp_file_filter = file_filter.gsub('.', '___') # replace . with ___
380
380
  temp_file_filter2 = temp_file_filter.sub(/\*/, '') # remove *
381
381
  temp_file = file.gsub('.', '___') # replace . with __
@@ -383,7 +383,7 @@ The following options are available:
383
383
  reject = true
384
384
  end
385
385
  else
386
- if file.downcase == file_filter.downcase # exact match
386
+ if file.downcase == file_filter.downcase # exact match
387
387
  reject = true
388
388
  end
389
389
  end
@@ -13,7 +13,7 @@ Usage: origen save TYPE [options]
13
13
  valid TYPE values: all, new, changed
14
14
  EOT
15
15
  opts.on('-f', '--file FILE', String, 'Override the default log file') { |o| options[:log_file] = o }
16
- opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
16
+ opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
17
17
  opts.on('-m', '--mode MODE', Origen::Mode::MODES, 'Force the Origen operating mode:', ' ' + Origen::Mode::MODES.join(', ')) { |_m| }
18
18
  # Apply any application option extensions to the OptionParser
19
19
  Origen::CommandHelpers.extend_options(opts, app_options, options)
@@ -24,9 +24,9 @@ Usage: origen time CMD [args] [options]
24
24
 
25
25
  STOP
26
26
  opts.on('-n', '--name FILE', String, 'Use the given named reference instead of the default') { |o| options[:ref_name] = o }
27
- opts.on('-s', '--summary', 'Output flow summary results only (instead of details for each test)') { options[:summary] = true }
27
+ opts.on('-s', '--summary', 'Output flow summary results only (instead of details for each test)') { options[:summary] = true }
28
28
  opts.on('-t', '--target NAME1,NAME2,NAME3', Array, 'Override the default target, NAME can be a full path or a fragment of a target file name') { |t| options[:target] = t }
29
- opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
29
+ opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
30
30
  opts.on('-m', '--mode MODE', Origen::Mode::MODES, 'Force the Origen operating mode:', ' ' + Origen::Mode::MODES.join(', ')) { |_m| }
31
31
  opts.on('-f', '--file FILE', String, 'Override the default log file') { |o| options[:log_file] = o }
32
32
  # Apply any application option extensions to the OptionParser
@@ -75,8 +75,7 @@ when 'new'
75
75
  file: "#{Origen.top}/templates/time/rules.rb.erb",
76
76
  output: "#{Origen.root}/config/test_time",
77
77
  quiet: true,
78
- check_for_changes: false
79
- )
78
+ check_for_changes: false)
80
79
  # Add this to the environment if not already present...
81
80
  env = "#{Origen.root}/config/environment.rb"
82
81
  unless File.readlines(env).any? { |l| l =~ /config\/test_time\/rules/ }
@@ -99,8 +98,7 @@ when 'new'
99
98
  file: "#{Origen.top}/templates/time/filter.rb.erb",
100
99
  output: "#{Origen.root}/config/test_time",
101
100
  quiet: true,
102
- check_for_changes: false
103
- )
101
+ check_for_changes: false)
104
102
  # Add this to the environment if not already present...
105
103
  env = "#{Origen.root}/config/environment.rb"
106
104
  unless File.readlines(env).any? { |l| l =~ /config\/test_time\/filter/ }
@@ -39,14 +39,14 @@ The following options are available:
39
39
  END
40
40
  opts.on('-e', '--environment NAME', String, 'Override the default environment, NAME can be a full path or a fragment of an environment file name') { |e| options[:environment] = e }
41
41
  opts.on('-t', '--target NAME', String, 'Override the default target, NAME can be a full path or a fragment of a target file name') { |t| options[:target] = t }
42
- opts.on('-r', '--remote', 'Use in conjunction with the compile command to deploy files to a remote web server') { options[:remote] = true }
42
+ opts.on('-r', '--remote', 'Use in conjunction with the compile command to deploy files to a remote web server') { options[:remote] = true }
43
43
  opts.on('-a', '--api', 'Generate API documentation after compiling') { options[:api] = true }
44
44
  opts.on('--archive ID', String, 'Archive the documents after compiling or deploying remotely') do |id|
45
45
  options[:archive] = id
46
46
  require "#{Origen.top}/helpers/url"
47
47
  Origen::Generator::Compiler::Helpers.archive_name = id
48
48
  end
49
- opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
49
+ opts.on('-d', '--debugger', 'Enable the debugger') { options[:debugger] = true }
50
50
  opts.on('-m', '--mode MODE', Origen::Mode::MODES, 'Force the Origen operating mode:', ' ' + Origen::Mode::MODES.join(', ')) { |_m| }
51
51
  opts.on('--no-serve', "Don't serve the website after compiling without the remote option") { options[:no_serve] = true }
52
52
  opts.on('-c', '--comment COMMENT', String, 'Supply a commit comment when deploying to Git') { |o| options[:comment] = o }
@@ -75,7 +75,10 @@ The following options are available:
75
75
  def self._start_server
76
76
  # Get the current host
77
77
  require 'socket'
78
+ # gethostbyname is deprecated in favor of Addrinfo#getaddrinfo
79
+ # rubocop:disable Lint/DeprecatedClassMethods
78
80
  host = Socket.gethostbyname(Socket.gethostname).first.downcase
81
+ # rubocop:enable Lint/DeprecatedClassMethods
79
82
 
80
83
  # Get a free port
81
84
  port = 8000 # preferred port
@@ -10,7 +10,7 @@ ORIGEN_COMMAND_ALIASES = {
10
10
  'g' => 'generate',
11
11
  'p' => 'program',
12
12
  't' => 'target',
13
- '-t' => 'target', # For legacy reasons
13
+ '-t' => 'target', # For legacy reasons
14
14
  'e' => 'environment',
15
15
  '-e' => 'environment',
16
16
  'l' => 'lsf',
@@ -577,6 +577,7 @@ module Origen
577
577
  def delete(to_delete)
578
578
  obj = delete!(to_delete)
579
579
  fail Origen::Componentable::NameDoesNotExistError, "#{_singleton_name} name :#{to_delete} does not exist" if obj.nil?
580
+
580
581
  obj
581
582
  end
582
583
  alias_method :remove, :delete
@@ -75,19 +75,17 @@ module Origen
75
75
 
76
76
  # Returns the controller's model
77
77
  def model
78
- @model ||= begin
79
- if self.class.path_to_model
80
- m = eval(self.class.path_to_model)
81
- if m
82
- if m.respond_to?(:_controller=)
83
- m.send(:_controller=, self)
84
- end
85
- else
86
- fail "No model object found at path: #{self.class.path_to_model}"
87
- end
88
- m
89
- end
90
- end
78
+ @model ||= if self.class.path_to_model
79
+ m = eval(self.class.path_to_model)
80
+ if m
81
+ if m.respond_to?(:_controller=)
82
+ m.send(:_controller=, self)
83
+ end
84
+ else
85
+ fail "No model object found at path: #{self.class.path_to_model}"
86
+ end
87
+ m
88
+ end
91
89
  end
92
90
 
93
91
  # When compared to another object, a controller will consider itself equal if either the controller
@@ -12,7 +12,8 @@ class Array
12
12
  end
13
13
 
14
14
  def dups_with_index
15
- return {} unless self.dups?
15
+ return {} unless dups?
16
+
16
17
  hash = Hash.new { |h, k| h[k] = [] }
17
18
  each_with_index do |val, idx|
18
19
  hash[val] << idx
@@ -29,11 +29,11 @@ module Enumerable
29
29
  unless options[:ignore].empty? || options[:select].empty?
30
30
  fail "Cannot have the same arguments for 'ignore' and 'select' options" unless (options[:ignore] & options[:select]).empty?
31
31
  end
32
- if self.respond_to?(:empty?) && self.empty?
32
+ if respond_to?(:empty?) && empty?
33
33
  list_array << self if options[:nil_or_empty]
34
34
  else
35
35
  each do |k, v|
36
- self.is_a?(Hash) ? item = v : item = k
36
+ is_a?(Hash) ? item = v : item = k
37
37
  klass = item.class.to_s
38
38
  superklass = item.class.superclass.to_s
39
39
  if options[:flatten].include? item.class
@@ -50,6 +50,7 @@ module Enumerable
50
50
  else
51
51
  next unless options[:select].empty? || options[:select].include?(item.class) || PRIMATIVES.any? { |klass| item.is_a?(klass) }
52
52
  next if options[:ignore].include?(item.class)
53
+
53
54
  case item
54
55
  when NilClass
55
56
  list_array << item if options[:nil_or_empty]
@@ -64,6 +65,7 @@ module Enumerable
64
65
  list_array += item.list(options)
65
66
  when String
66
67
  next if item.empty? && options[:nil_or_empty] == false
68
+
67
69
  list_array << item
68
70
  else
69
71
  list_array << item
@@ -32,8 +32,7 @@ class Hash
32
32
  when Symbol then 'k == filter'
33
33
  when NilClass then true
34
34
  else true
35
- end
36
- # rubocop:disable UnusedBlockArgument
35
+ end
37
36
  filtered_hash = select do |k, v|
38
37
  [TrueClass, FalseClass].include?(select_logic.class) ? select_logic : !!eval(select_logic)
39
38
  end
@@ -66,16 +65,16 @@ class Hash
66
65
  elsif key.is_a? Regexp
67
66
  search_results[k] = v if key.match(k.to_s)
68
67
  else
69
- return v if (k == key)
68
+ return v if k == key
70
69
  end
71
70
  end
72
71
  end
73
72
  if search_results.empty?
74
- return nil
73
+ nil
75
74
  elsif search_results.size == 1
76
- return search_results.values.first
75
+ search_results.values.first
77
76
  else
78
- return search_results
77
+ search_results
79
78
  end
80
79
  end
81
80
  end
@@ -60,11 +60,9 @@ class Integer
60
60
 
61
61
  def to_bool
62
62
  if self == 1
63
- return true
63
+ true
64
64
  elsif self == 0
65
- return false
66
- else
67
- return nil
65
+ false
68
66
  end
69
67
  end
70
68
 
@@ -3,7 +3,7 @@ class Object
3
3
  # ultimately returns nil if no value is found.
4
4
  def try(*methods)
5
5
  methods.each do |method|
6
- if self.respond_to?(method)
6
+ if respond_to?(method)
7
7
  val = send(method)
8
8
  return val if val
9
9
  end
@@ -21,7 +21,7 @@ class Object
21
21
  # 'hi'.origen_subblock? #=> false
22
22
  # @see https://origen-sdk.org/origen/guides/models/defining/#Adding_Sub_Blocks
23
23
  def origen_subblock?
24
- self.is_a?(Origen::Model) || self.is_a?(Origen::Controller) || self.is_a?(Origen::SubBlocks::Placeholder)
24
+ is_a?(Origen::Model) || is_a?(Origen::Controller) || is_a?(Origen::SubBlocks::Placeholder)
25
25
  end
26
26
  alias_method :origen_sub_block?, :origen_subblock?
27
27
  end
@@ -6,7 +6,7 @@ class OptionParser
6
6
  def parse!(*args)
7
7
  lsf_options = ARGV.dup
8
8
  orig_parse!(*args)
9
- lsf_options -= ARGV # Now contains all original options
9
+ lsf_options -= ARGV # Now contains all original options
10
10
 
11
11
  # Pick whether we should be using the application's LSF instance or Origen's
12
12
  # global LSF instance
@@ -11,7 +11,7 @@ end
11
11
 
12
12
  class String
13
13
  def to_dec
14
- if self.is_verilog_number?
14
+ if is_verilog_number?
15
15
  verilog_to_dec
16
16
  elsif match(/^0[x,o,d,b]\S+/)
17
17
  _to_dec(self)
@@ -92,6 +92,7 @@ class String
92
92
  while match_str.length > 0
93
93
  md = match_str.match(regex)
94
94
  break unless md
95
+
95
96
  matches << md
96
97
  match_str = md.post_match
97
98
  end
@@ -165,25 +166,24 @@ class String
165
166
  # Attempt to convert a String to a boolean answer
166
167
  def to_bool
167
168
  if self == true || self =~ (/^(true|t|yes|y|1)$/i)
168
- return true
169
- elsif self == false || self.empty? || self =~ (/^(false|f|no|n|0)$/i)
170
- return false
171
- else
172
- return nil
169
+ true
170
+ elsif self == false || empty? || self =~ (/^(false|f|no|n|0)$/i)
171
+ false
173
172
  end
174
173
  end
175
174
 
176
175
  # Check if a String is a numeric
177
176
  def is_numeric?
178
177
  return true if self =~ /\A\d+\Z/
178
+
179
179
  true if Float(self) rescue false # rubocop:disable Style/RescueModifier
180
180
  end
181
181
  alias_method :numeric?, :is_numeric?
182
182
 
183
183
  # Convert the String to a Numeric (Float or Integer)
184
184
  def to_numeric
185
- if self.numeric?
186
- if to_i == to_f
185
+ if numeric?
186
+ if to_i == to_f # rubocop:disable Lint/FloatComparison
187
187
  to_i
188
188
  else
189
189
  to_f
@@ -24,7 +24,7 @@ module Origen
24
24
  refresh if persisted?
25
25
  store[key] = val
26
26
  save_to_file
27
- val
27
+ val # rubocop:disable Lint/Void
28
28
  end
29
29
 
30
30
  # Force a refresh of the database
@@ -91,17 +91,15 @@ module Origen
91
91
  end
92
92
 
93
93
  def store
94
- @store ||= begin
95
- if file.exist?
96
- load_from_file
97
- elsif persisted? && dssc.managed_by_design_sync?(file)
98
- refresh
99
- load_from_file
100
- else
101
- @uncommitted = true
102
- { refresh_interval_in_minutes: 60 }
103
- end
104
- end
94
+ @store ||= if file.exist?
95
+ load_from_file
96
+ elsif persisted? && dssc.managed_by_design_sync?(file)
97
+ refresh
98
+ load_from_file
99
+ else
100
+ @uncommitted = true
101
+ { refresh_interval_in_minutes: 60 }
102
+ end
105
103
  end
106
104
 
107
105
  def load_from_file
@@ -124,9 +122,9 @@ module Origen
124
122
  Marshal.dump(store, f)
125
123
  end
126
124
  if private?
127
- FileUtils.chmod(0600, file)
125
+ FileUtils.chmod(0o600, file)
128
126
  else
129
- FileUtils.chmod(0664, file)
127
+ FileUtils.chmod(0o664, file)
130
128
  end
131
129
  if persisted?
132
130
  dssc.check_in file, new: true, keep: true, branch: 'Trunk'
@@ -73,6 +73,7 @@ module Origen
73
73
  loaded[method] ||= KeyValueStore.new(self, method)
74
74
  end
75
75
  end
76
+
76
77
  send(method, *args, &block)
77
78
  end
78
79
 
@@ -31,7 +31,7 @@ module Origen
31
31
  # Software workaround object associated with erratum
32
32
  attr_accessor :sw_workaround
33
33
 
34
- def initialize(id, ip_block, overview = {}, status = {}, sw_workaround = {})
34
+ def initialize(id, ip_block, overview = {}, status = {}, sw_workaround = {})
35
35
  @id = id
36
36
  @ip_block = ip_block
37
37
  @title = overview[:title]
data/lib/origen/errata.rb CHANGED
@@ -1,11 +1,11 @@
1
1
  module Origen
2
2
  module Errata
3
- autoload :HwErratum, 'origen/errata/hw_erratum'
3
+ autoload :HwErratum, 'origen/errata/hw_erratum'
4
4
  autoload :SwErratumWorkaround, 'origen/errata/sw_erratum_workaround'
5
5
 
6
- attr_accessor :_errata
6
+ attr_writer :_errata
7
7
 
8
- attr_accessor :_sw_workarounds
8
+ attr_writer :_sw_workarounds
9
9
 
10
10
  # Define and instantiate an erratum object
11
11
  def erratum(id, ip_block, overview = {}, status = {}, sw_workaround = {})
@@ -40,12 +40,12 @@ module Origen
40
40
 
41
41
  # Return nil if there are no errata that meet criteria
42
42
  if errata_found.empty?
43
- return nil
43
+ nil
44
44
  # If only one errata meets criteria, return that HwErratum object
45
45
  elsif errata_found.size == 1
46
46
  errata_found.values.first.values.first.values.first
47
47
  else
48
- return errata_found
48
+ errata_found
49
49
  end
50
50
  end
51
51
 
@@ -72,11 +72,11 @@ module Origen
72
72
  sw_workarounds_found[id] = workarounds
73
73
  end
74
74
  if sw_workarounds_found.empty?
75
- return nil
75
+ nil
76
76
  elsif sw_workarounds_found.size == 1
77
77
  sw_workarounds_found.values.first # .values.first
78
78
  else
79
- return sw_workarounds_found
79
+ sw_workarounds_found
80
80
  end
81
81
  end
82
82
 
@@ -107,7 +107,6 @@ module Origen
107
107
  # when NilClass then true # Return all specs if a filter is set to nil (i.e. user doesn't care about this filter)
108
108
  # else true
109
109
  # end
110
- # rubocop:disable UnusedBlockArgument
111
110
  # filtered_hash = hash.select do |k, v|
112
111
  # [TrueClass, FalseClass].include?(select_logic.class) ? select_logic : eval(select_logic)
113
112
  # end
@@ -11,6 +11,7 @@ module Origen
11
11
 
12
12
  def describe
13
13
  return 'No description provided!' if @description == []
14
+
14
15
  if @description.class == Array
15
16
  @description.join(' ')
16
17
  else