origen 0.55.5 → 0.58.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dfa42e7386a88300a4c615ccbfff6fadbab0ba6a705baa0ed3125963e53badac
4
- data.tar.gz: e6b18773bde78595c6f785539c425fb5ac342b45b1b5195404ce0ffc336d3724
3
+ metadata.gz: 4e328347b1a702ec37c86bbf6dbc0d65c9bf9376479fca31e4adc5208043f749
4
+ data.tar.gz: c72f5d3bbddbe4d4374450a828db82b14c3af5ea1177366e3cb62b2051037115
5
5
  SHA512:
6
- metadata.gz: bc51bc8d568ab2d520e59dae431eb48bb2c9378b497d695ed95bdf97b4d19b824e95ecfbb07122dcd696b493a3fc627100f58c1e9990c6504b4804ac3a1d156e
7
- data.tar.gz: fb01b860bff1024bc8fc5838012607440ffb069ae6e78757e01b6680c3600449c409f503a71730dac00eeab3d156a746e39cebf42b217f38fb9cef6bfbd8b6b2
6
+ metadata.gz: 441978473ed06d1df7f8ba36cd6734e5057de398846b7be6856c14e1d8a4973cc8d896958ab70dc69dccb44dea85012264006069afb50ec5406324c016841554
7
+ data.tar.gz: 21a81041aa01df9774cb94303e016460b070c7c9f296a5297148018c9d314a995ade0aa3432b959232bb70c524fe4249eb7912ecdf7798f273f46cfe3f493a4f
@@ -240,7 +240,7 @@ Style/InfiniteLoop:
240
240
  Style/Lambda:
241
241
  Description: 'Use the new lambda literal syntax for single-line blocks.'
242
242
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#lambda-multi-line'
243
- Enabled: true
243
+ Enabled: false
244
244
 
245
245
  Style/LambdaCall:
246
246
  Description: 'Use lambda.call(...) instead of lambda.(...).'
@@ -1,7 +1,7 @@
1
1
  module Origen
2
2
  MAJOR = 0
3
- MINOR = 55
4
- BUGFIX = 5
3
+ MINOR = 58
4
+ BUGFIX = 0
5
5
  DEV = nil
6
6
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
7
7
  end
@@ -610,6 +610,9 @@ unless defined? RGen::ORIGENTRANSITION
610
610
  else
611
611
  @interface.reset_globals if @interface.respond_to?(:reset_globals)
612
612
  end
613
+ if @interface.respond_to?(:on_interface_reset)
614
+ @interface.on_interface_reset
615
+ end
613
616
  @interface
614
617
  end
615
618
 
@@ -252,8 +252,9 @@ module Origen
252
252
  end
253
253
 
254
254
  # Build the log file from the completed jobs
255
- def build_log(_options = {})
256
- Origen.log.info '*' * 70
255
+ def build_log(options = {})
256
+ log_method = options[:log_file] ? options[:log_file] : :info
257
+ Origen.log.send(log_method, '*' * 70)
257
258
  completed_jobs.each do |job|
258
259
  File.open(log_file(job[:id])) do |f|
259
260
  last_line_blank = false
@@ -291,12 +292,12 @@ module Origen
291
292
  stats.failed_files += Regexp.last_match[1].to_i
292
293
  elsif line =~ /ERROR!/
293
294
  stats.errors += 1
294
- Origen.log.send :relog, line
295
+ Origen.log.send :relog, line, options
295
296
  else
296
297
  # Compress multiple blank lines
297
298
  if line =~ /^\s*$/ || line =~ /.*\|\|\s*$/
298
299
  unless last_line_blank
299
- Origen.log.info
300
+ Origen.log.send(log_method, nil)
300
301
  last_line_blank = true
301
302
  end
302
303
  else
@@ -305,8 +306,7 @@ module Origen
305
306
  line =~ /Insecure world writable dir/ ||
306
307
  line =~ /To save all of/
307
308
  line.strip!
308
- # line.sub!(/.*\|\| /, '')
309
- Origen.log.send :relog, line
309
+ Origen.log.send :relog, line, options
310
310
  last_line_blank = false
311
311
  end
312
312
  end
@@ -319,7 +319,7 @@ module Origen
319
319
  end
320
320
  end
321
321
  end
322
- Origen.log.info '*' * 70
322
+ Origen.log.send(log_method, '*' * 70)
323
323
  stats.print_summary
324
324
  end
325
325
 
@@ -409,7 +409,7 @@ module Origen
409
409
  end
410
410
 
411
411
  str = "#{action} #{cmd}".strip
412
- str.sub('origen ', '') if str =~ /^origen /
412
+ str.sub!('origen ', '') if str =~ /^origen /
413
413
 
414
414
  # Append the --exec_remote switch to all Origen commands, this allows command
415
415
  # processing to be altered based on whether it is running locally or
@@ -114,7 +114,7 @@ module Origen
114
114
  fail "Sorry but #{path} already exists!"
115
115
  end
116
116
  FileUtils.rm_rf(path.to_s) if File.exist?(path.to_s)
117
- rc = RevisionControl.new remote: options[:rc_url], local: path.to_s
117
+ rc = RevisionControl.new options.merge(remote: options[:rc_url], local: path.to_s)
118
118
  rc.build
119
119
  end
120
120
 
@@ -54,27 +54,27 @@ class Numeric
54
54
  end
55
55
 
56
56
  def as_units(units)
57
- if self >= 1_000_000_000_000_000
57
+ if abs >= 1_000_000_000_000_000
58
58
  "#{self / 1_000_000_000_000_000.0}P#{units}"
59
- elsif self >= 1_000_000_000_000
59
+ elsif abs >= 1_000_000_000_000
60
60
  "#{self / 1_000_000_000_000.0}T#{units}"
61
- elsif self >= 1_000_000_000
61
+ elsif abs >= 1_000_000_000
62
62
  "#{self / 1_000_000_000.0}G#{units}"
63
- elsif self >= 1_000_000
63
+ elsif abs >= 1_000_000
64
64
  "#{self / 1_000_000.0}M#{units}"
65
- elsif self >= 1_000
65
+ elsif abs >= 1_000
66
66
  "#{self / 1_000.0}k#{units}"
67
- elsif self >= 1
67
+ elsif abs >= 1
68
68
  "#{self}#{units}"
69
- elsif self >= 1e-3
69
+ elsif abs >= 1e-3
70
70
  "#{self * 1_000}m#{units}"
71
- elsif self >= 1e-6
71
+ elsif abs >= 1e-6
72
72
  "#{self * 1_000_000}u#{units}"
73
- elsif self >= 1e-9
73
+ elsif abs >= 1e-9
74
74
  "#{self * 1_000_000_000}n#{units}"
75
- elsif self >= 1e-12
75
+ elsif abs >= 1e-12
76
76
  "#{self * 1_000_000_000_000}p#{units}"
77
- elsif self >= 1e-15
77
+ elsif abs >= 1e-15
78
78
  "#{self * 1_000_000_000_000_000}a#{units}"
79
79
  else
80
80
  "%.3e#{units}" % self
@@ -91,9 +91,23 @@ module Origen
91
91
  # end
92
92
 
93
93
  @pattern_sequence = true
94
- pattern_wrapper([], [], options) do
94
+
95
+ # The startup callbacks need to be skipped for now until the main thread is open for business
96
+ pattern_wrapper([], [], options.merge(call_startup_callbacks: false)) do
97
+ # The startup callbacks, if required, need to be wrapped up in a closure for calling
98
+ # later by the main thread
99
+ if (options.key?(:call_startup_callbacks) && !options[:call_startup_callbacks]) || options[:skip_startup]
100
+ pre_block = nil
101
+ else
102
+ pre_block = proc do
103
+ # Call startup callbacks
104
+ Origen.app.listeners_for(:startup).each do |listener|
105
+ listener.startup(options)
106
+ end
107
+ end
108
+ end
95
109
  PatternSequencer.send(:active=, true)
96
- @pattern_sequence = PatternSequence.new(job.output_pattern_filename, block)
110
+ @pattern_sequence = PatternSequence.new(job.output_pattern_filename, block, pre_block)
97
111
  @pattern_sequence.send(:execute)
98
112
  PatternSequencer.send(:active=, false)
99
113
  end
@@ -5,15 +5,17 @@ module Origen
5
5
  # Manages a single pattern sequence, i.e. an instance of PatternSequence is
6
6
  # created for every Pattern.sequence do ... end block
7
7
  class PatternSequence
8
- def initialize(name, block)
8
+ def initialize(name, block, pre_block = nil)
9
9
  @number_of_threads = 1
10
10
  @name = name
11
11
  @running_thread_ids = { main: true }
12
12
  # The contents of the main Pattern.sequence block will be executed as a thread and treated
13
13
  # like any other parallel block
14
- thread = PatternThread.new(:main, self, block, true)
14
+ thread = PatternThread.new(:main, self, block, true, pre_block)
15
15
  threads << thread
16
16
  active_threads << thread
17
+ PatSeq.send(:current_sequence=, self)
18
+ @sync_ups = {}
17
19
  end
18
20
 
19
21
  # Execute the given pattern
@@ -45,7 +47,7 @@ module Origen
45
47
  end
46
48
  alias_method :in_parallel, :thread
47
49
 
48
- def wait_for_threads(*ids)
50
+ def wait_for_threads_to_complete(*ids)
49
51
  completed = false
50
52
  blocked = false
51
53
  ids = ids.map(&:to_sym)
@@ -71,10 +73,48 @@ module Origen
71
73
  end
72
74
  end
73
75
  end
74
- alias_method :wait_for_thread, :wait_for_threads
76
+ alias_method :wait_for_thread, :wait_for_threads_to_complete
77
+ alias_method :wait_for_threads, :wait_for_threads_to_complete
78
+ alias_method :wait_for_thread_to_complete, :wait_for_threads_to_complete
75
79
 
76
80
  private
77
81
 
82
+ def sync_up(location, *ids)
83
+ options = ids.pop if ids.last.is_a?(Hash)
84
+ options ||= {}
85
+ ids = ids.map(&:to_sym)
86
+ if ids.empty? || ids.include?(:all)
87
+ ids = @running_thread_ids.keys
88
+ ids.delete(:main) unless options[:include_main]
89
+ end
90
+ # Just continue if this thread is not in the list
91
+ return unless ids.include?(current_thread.id)
92
+ # If we have entered the same sync up point after having previously completed it,
93
+ # then clear it and start again
94
+ if @sync_ups[location] && @sync_ups[location][:completed]
95
+ @sync_ups[location] = nil
96
+ end
97
+ # Don't need to worry about race conditions here as Origen only allows 1 thread
98
+ # to be active at a time
99
+ if @sync_ups[location]
100
+ @sync_ups[location][:arrived] << current_thread.id
101
+ else
102
+ @sync_ups[location] = { required: Set.new, arrived: Set.new, completed: false }
103
+ ids.each { |id| @sync_ups[location][:required] << id }
104
+ @sync_ups[location][:arrived] << current_thread.id
105
+ end
106
+ if @sync_ups[location][:required] == @sync_ups[location][:arrived]
107
+ @sync_ups[location][:completed] = true
108
+ end
109
+ blocked = false
110
+ until @sync_ups[location][:completed]
111
+ current_thread.waiting_for_thread(blocked)
112
+ blocked = true
113
+ Origen.log.debug "Waiting for sync_up: #{@sync_ups}"
114
+ end
115
+ current_thread.record_active if blocked
116
+ end
117
+
78
118
  def thread_running?(id)
79
119
  @running_thread_ids[id]
80
120
  end
@@ -86,7 +126,11 @@ module Origen
86
126
  def log_execution_profile
87
127
  if threads.size > 1
88
128
  thread_id_size = threads.map { |t| t.id.to_s.size }.max
89
- line_size = IO.console.winsize[1] - 35 - thread_id_size
129
+ begin
130
+ line_size = IO.console.winsize[1] - 35 - thread_id_size
131
+ rescue
132
+ line_size = 150
133
+ end
90
134
  line_size -= 16 if tester.try(:sim?)
91
135
  cycles_per_tick = (@cycle_count_stop / (line_size * 1.0)).ceil
92
136
  if tester.try(:sim?)
@@ -81,8 +81,27 @@ module Origen
81
81
  str
82
82
  end
83
83
 
84
+ # Wait for the given threads to complete. If no IDs given it will wait for all currently running
85
+ # threads (except for the one who called this) to complete.
86
+ def wait_for_threads_to_complete(*ids)
87
+ @current_sequence.wait_for_threads_to_complete(*ids)
88
+ end
89
+ alias_method :wait_for_thread, :wait_for_threads_to_complete
90
+ alias_method :wait_for_threads, :wait_for_threads_to_complete
91
+ alias_method :wait_for_thread_to_complete, :wait_for_threads_to_complete
92
+
93
+ def sync_up(*ids)
94
+ if @current_sequence
95
+ @current_sequence.send(:sync_up, caller[0], *ids)
96
+ end
97
+ end
98
+
84
99
  private
85
100
 
101
+ def current_sequence=(seq)
102
+ @current_sequence = seq
103
+ end
104
+
86
105
  def active=(val)
87
106
  @active = val
88
107
  end
@@ -14,7 +14,7 @@ module Origen
14
14
  # A record of when the thread is active to construct the execution profile
15
15
  attr_reader :events
16
16
 
17
- def initialize(id, sequence, block, primary = false)
17
+ def initialize(id, sequence, block, primary = false, pre_block = nil)
18
18
  if primary
19
19
  @cycle_count_start = 0
20
20
  else
@@ -24,6 +24,7 @@ module Origen
24
24
  @id = id.to_sym
25
25
  @sequence = sequence
26
26
  @block = block
27
+ @pre_block = pre_block
27
28
  @primary = primary
28
29
  @running = Concurrent::Event.new
29
30
  @waiting = Concurrent::Event.new
@@ -46,6 +47,7 @@ module Origen
46
47
  @thread = Thread.new do
47
48
  PatSeq.send(:thread=, self)
48
49
  wait
50
+ @pre_block.call if @pre_block
49
51
  @block.call(sequence)
50
52
  sequence.send(:thread_completed, self)
51
53
  record_cycle_count_stop
@@ -274,6 +274,7 @@ module Origen
274
274
  else
275
275
  msg = format_msg(method.to_s.upcase, msg)
276
276
  end
277
+ console.info msg if options[:verbose]
277
278
  @custom_logs[method.to_sym].info(msg)
278
279
  end
279
280
 
@@ -364,8 +365,10 @@ module Origen
364
365
  end
365
366
  end
366
367
 
367
- def relog(msg)
368
- if msg =~ /^\[(\w+)\] .*/
368
+ def relog(msg, options = {})
369
+ if options[:log_file]
370
+ send options[:log_file], msg.sub(/.*\|\|\s*/, ''), options
371
+ elsif msg =~ /^\[(\w+)\] .*/
369
372
  method = Regexp.last_match(1).downcase
370
373
  if respond_to?(method)
371
374
  send method, msg.sub(/.*\|\|\s*/, '')
@@ -443,6 +443,24 @@ module Origen
443
443
  end
444
444
  alias_method :add_locn, :add_location
445
445
 
446
+ # Add a way to update packages for the pins after the pins have been added.
447
+ #
448
+ # @example Updating a package after the pin has been added
449
+ # dut.add_pin :p1
450
+ # dut.add_package: package1
451
+ # dut.add_package: package2
452
+ # dut.pin(:p1).packages # => {}
453
+ # dut.pin(:p1).update_packages :packages # => [:package1, :package2]
454
+ # dut.pin(:p1).packages # => {:package1=>{}, :package2=>{}}
455
+ def update_packages(options = {})
456
+ packages = resolve_packages(options)
457
+ packages.each do |package_id|
458
+ package_id = package_id.respond_to?(:id) ? package_id.id : package_id
459
+ myself.packages[package_id] ||= {}
460
+ end
461
+ end
462
+ alias_method :update_package, :update_packages
463
+
446
464
  # Add a Device Interface Board (e.g. probecard at wafer probe or loadboard at final package test)
447
465
  # assignment to the pin. Some refer to this as a channel but API name is meant to be generic.
448
466
  def add_dib_assignment(str, options = {})
@@ -27,6 +27,7 @@ module Origen
27
27
  # @param [Hash] options Options to customize the run instance
28
28
  # @option options [Array] :target String Array of target names on which to run regression
29
29
  # @option options [Boolean] :build_reference (true) Build reference workspace automatically
30
+ # @option options [Symbol] :build_method (:init) whether to use a git init or git clone method to build the workspace
30
31
  # @option options [Boolean] :send_email (false) Send results email when regression complete
31
32
  # @option options [Boolean] :email_all_developers (false) If sending email, whether to email all developers or just user
32
33
  # @option options [Boolean] :report_results (false) Whether to report results inline to console
@@ -35,6 +36,7 @@ module Origen
35
36
  def run(options = {})
36
37
  options = {
37
38
  build_reference: true,
39
+ build_method: :init,
38
40
  send_email: false,
39
41
  email_all_developers: false,
40
42
  report_results: false,
@@ -46,7 +48,7 @@ module Origen
46
48
  Origen.lsf.clear_all
47
49
  yield options
48
50
  wait_for_completion(options) if options[:uses_lsf]
49
- save_and_delete_output
51
+ save_and_delete_output(options)
50
52
  else
51
53
  if options[:build_reference]
52
54
  @reference_tag = version_to_tag(options[:version] || get_version(options))
@@ -58,7 +60,8 @@ module Origen
58
60
  disable_origen_version_check do
59
61
  Dir.chdir reference_origen_root do
60
62
  Bundler.with_clean_env do
61
- system 'rm -rf lbin'
63
+ # Origen 0.40.0 started using origen-owned binstubs
64
+ system 'rm -rf lbin' if Gem::Version.new(Origen.version) < Gem::Version.new('0.40.0')
62
65
  # If regression is run using a service account, we need to setup the path/bundler manually
63
66
  # The regression manager needs to be passed a --service_account option when initiated.
64
67
  if options[:service_account]
@@ -125,7 +128,7 @@ module Origen
125
128
  end
126
129
 
127
130
  def summarize_results(options = {})
128
- Origen.lsf.build_log
131
+ Origen.lsf.build_log(options)
129
132
  stats = Origen.app.stats
130
133
  if options[:report_results]
131
134
  puts "Regression results: \n"
@@ -144,12 +147,16 @@ module Origen
144
147
 
145
148
  # Saves all generated output (to the reference dir) and then
146
149
  # deletes the output directory to save space
147
- def save_and_delete_output
148
- Origen.lsf.build_log
150
+ def save_and_delete_output(options = {})
151
+ Origen.lsf.build_log(options)
149
152
  Origen.log.flush
150
153
  Dir.chdir reference_origen_root do
151
154
  Bundler.with_clean_env do
152
- system 'bundle exec origen save all'
155
+ if options[:log_file]
156
+ system "bundle exec origen save all -f log/#{options[:log_file]}.txt"
157
+ else
158
+ system 'bundle exec origen save all'
159
+ end
153
160
  end
154
161
  end
155
162
  FileUtils.rm_rf "#{reference_origen_root}/output"
@@ -214,7 +221,7 @@ module Origen
214
221
  # Build the new reference workspace now.
215
222
  unless File.exist?(@reference_workspace)
216
223
  highlight { Origen.log.info 'Building reference workspace...' }
217
- ws.build(@reference_workspace)
224
+ ws.build(@reference_workspace, options)
218
225
  end
219
226
  ws.set_reference_workspace(@reference_workspace)
220
227
  else
@@ -229,7 +236,7 @@ module Origen
229
236
  end
230
237
  unless File.exist?(@reference_workspace)
231
238
  highlight { Origen.log.info 'Building reference workspace...' }
232
- ws.build(@reference_workspace)
239
+ ws.build(@reference_workspace, options)
233
240
  end
234
241
  ws.set_reference_workspace(@reference_workspace)
235
242
  end
@@ -345,6 +345,7 @@ module Origen
345
345
  end
346
346
 
347
347
  def initialize_local_dir(options = {})
348
+ return if options[:build_method] == :clone
348
349
  super
349
350
  unless initialized?(options)
350
351
  Origen.log.debug "Initializing Git workspace at #{local}"
@@ -8,7 +8,7 @@ Gem::Specification.new do |s|
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 1.8.11".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
10
10
  s.authors = ["Stephen McGinty".freeze]
11
- s.date = "2020-05-08"
11
+ s.date = "2020-09-01"
12
12
  s.email = ["stephen.f.mcginty@gmail.com".freeze]
13
13
  s.files = ["bin/boot.rb".freeze, "config/application.rb".freeze, "config/boot.rb".freeze, "config/commands.rb".freeze, "config/shared_commands.rb".freeze, "config/version.rb".freeze, "lib/origen_app_generators.rb".freeze, "lib/origen_app_generators/application.rb".freeze, "lib/origen_app_generators/base.rb".freeze, "lib/origen_app_generators/empty_application.rb".freeze, "lib/origen_app_generators/empty_plugin.rb".freeze, "lib/origen_app_generators/new.rb".freeze, "lib/origen_app_generators/new_app_tests.rb".freeze, "lib/origen_app_generators/origen_infrastructure/app_generator_plugin.rb".freeze, "lib/origen_app_generators/plugin.rb".freeze, "lib/origen_app_generators/test_engineering/common.rb".freeze, "lib/origen_app_generators/test_engineering/stand_alone_application.rb".freeze, "lib/origen_app_generators/test_engineering/test_block.rb".freeze, "templates/app_generators".freeze, "templates/app_generators/application".freeze, "templates/app_generators/application/.gitignore".freeze, "templates/app_generators/application/.irbrc".freeze, "templates/app_generators/application/.rspec".freeze, "templates/app_generators/application/.travis.yml".freeze, "templates/app_generators/application/Gemfile".freeze, "templates/app_generators/application/Rakefile".freeze, "templates/app_generators/application/app".freeze, "templates/app_generators/application/app/blocks".freeze, "templates/app_generators/application/app/blocks/top_level.rb".freeze, "templates/app_generators/application/app/lib".freeze, "templates/app_generators/application/app/lib/module.rb".freeze, "templates/app_generators/application/app/templates".freeze, "templates/app_generators/application/app/templates/web".freeze, "templates/app_generators/application/app/templates/web/index.md.erb".freeze, "templates/app_generators/application/app/templates/web/layouts".freeze, "templates/app_generators/application/app/templates/web/layouts/_basic.html.erb".freeze, "templates/app_generators/application/app/templates/web/partials".freeze, "templates/app_generators/application/app/templates/web/partials/_navbar.html.erb".freeze, "templates/app_generators/application/app/templates/web/release_notes.md.erb".freeze, "templates/app_generators/application/config".freeze, "templates/app_generators/application/config/application.rb".freeze, "templates/app_generators/application/config/boot.rb".freeze, "templates/app_generators/application/config/commands.rb".freeze, "templates/app_generators/application/config/maillist_dev.txt".freeze, "templates/app_generators/application/config/maillist_prod.txt".freeze, "templates/app_generators/application/config/version.rb".freeze, "templates/app_generators/application/doc".freeze, "templates/app_generators/application/doc/history".freeze, "templates/app_generators/application/dot_keep".freeze, "templates/app_generators/application/origen_core_session".freeze, "templates/app_generators/application/spec".freeze, "templates/app_generators/application/spec/spec_helper.rb".freeze, "templates/app_generators/application/target".freeze, "templates/app_generators/application/target/debug.rb".freeze, "templates/app_generators/application/target/default.rb".freeze, "templates/app_generators/application/target/production.rb".freeze, "templates/app_generators/new".freeze, "templates/app_generators/new/generator.rb".freeze, "templates/app_generators/new/info.md.erb".freeze, "templates/app_generators/origen_infrastructure".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib/application.rb".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib/base.rb".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib/module.rb".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib/plugin.rb".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/config".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/config/load_generators.rb".freeze, "templates/app_generators/plugin".freeze, "templates/app_generators/plugin/Gemfile".freeze, "templates/app_generators/plugin/Rakefile".freeze, "templates/app_generators/plugin/app".freeze, "templates/app_generators/plugin/app/templates".freeze, "templates/app_generators/plugin/app/templates/web".freeze, "templates/app_generators/plugin/app/templates/web/index.md.erb".freeze, "templates/app_generators/plugin/app/templates/web/partials".freeze, "templates/app_generators/plugin/app/templates/web/partials/_navbar_external.html.erb".freeze, "templates/app_generators/plugin/app/templates/web/partials/_navbar_internal.html.erb".freeze, "templates/app_generators/plugin/config".freeze, "templates/app_generators/plugin/config/boot.rb".freeze, "templates/app_generators/plugin/gemspec.rb".freeze, "templates/app_generators/test_engineering".freeze, "templates/app_generators/test_engineering/environment".freeze, "templates/app_generators/test_engineering/environment/j750.rb".freeze, "templates/app_generators/test_engineering/environment/uflex.rb".freeze, "templates/app_generators/test_engineering/environment/v93k.rb".freeze, "templates/app_generators/test_engineering/stand_alone_application".freeze, "templates/app_generators/test_engineering/stand_alone_application/.keep".freeze, "templates/app_generators/test_engineering/test_block".freeze, "templates/app_generators/test_engineering/test_block/.keep".freeze]
14
14
  s.homepage = "http://origen-sdk.org/origen_app_generators".freeze
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: origen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.55.5
4
+ version: 0.58.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen McGinty
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-08 00:00:00.000000000 Z
11
+ date: 2020-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport