origen 0.60.7 → 0.60.8

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