origen 0.52.3 → 0.54.1

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: 6b900b1cea172703c5a4057a93b35ccb5f85305972b05b1939fa4a793553a98d
4
- data.tar.gz: 5bc67cfa0fd368351600ec6e11f7ad927825ad604e1ed02c555441c1ffde8ddb
3
+ metadata.gz: 97f6380df23c488d06f774bd1b58f625b84fa270d83431c82bff7a51c1c39672
4
+ data.tar.gz: 212e6637822e9cbb64f7fa503c05cef9eb9c43dd28301686d129b335c05685c8
5
5
  SHA512:
6
- metadata.gz: ab397dafe249184e5d64115f06451a5ff3dab3a6688dc243e85e23a55075d8b14685cac0f7f2cea62827aa2bbd9abd69232697e121833ad060b4c0ff4d421ac6
7
- data.tar.gz: 878c11b33cbfa5f9e0a4d584a7a7058dddf905168a1f54397f2e5e8967875f558430a9cce744bf0e25a80998d9911ea1194be151e82be2f27e4d38429af51916
6
+ metadata.gz: f624165d1f99e3614f56fd872f804b9605b6481266dd5a633ecfddb99a9c8533ff219934341c253fa9146fb68cb23ed73a7cf1a126c017ed6b873b345364cf4a
7
+ data.tar.gz: 6f3886f8ed80c5032ee8009b8072203eded3cec774a017c6425fbd722c9bee0ce653879fa547e51630a087dc4beb9fcaef7b3986fb9b685dd57edbc0548b0dab
data/config/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Origen
2
2
  MAJOR = 0
3
- MINOR = 52
4
- BUGFIX = 3
3
+ MINOR = 54
4
+ BUGFIX = 1
5
5
  DEV = nil
6
6
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
7
7
  end
@@ -19,7 +19,8 @@ module Origen
19
19
  :web_domain,
20
20
  :strict_errors, :unmanaged_dirs, :unmanaged_files, :remotes,
21
21
  :external_app_dirs, :lint_test, :shared, :yammer_group, :rc_url, :rc_workflow,
22
- :user_aliases, :release_externally, :gem_name, :disqus_shortname
22
+ :user_aliases, :release_externally, :gem_name, :disqus_shortname,
23
+ :default_plugin
23
24
 
24
25
  # Mark any attributes that are likely to depend on properties of the target here,
25
26
  # this will raise an error if they are ever accessed before the target has been
@@ -38,16 +38,24 @@ module Origen
38
38
  def current
39
39
  return nil if @temporary == :none
40
40
  return nil if @disabled
41
- name = @temporary || @current ||= Origen.app.session.origen_core[:default_plugin]
41
+ name = @temporary || @current ||= begin
42
+ if Origen.app.session.origen_core[:default_plugin]
43
+ Origen.app.session.origen_core[:default_plugin]
44
+ elsif Origen.app.config.default_plugin && !Origen.app.session.origen_core[:default_plugin_cleared_by_user]
45
+ Origen.app.config.default_plugin
46
+ end
47
+ end
42
48
  find { |p| p.name.to_sym == name } if name
43
49
  end
44
50
 
45
51
  def current=(name)
46
52
  name = name.to_sym if name
47
- Origen.app.session.origen_core[:default_plugin] = name
48
- if name == :none
53
+ if name == :none || name.nil?
49
54
  @current = nil
55
+ Origen.app.session.origen_core[:default_plugin] = nil
56
+ Origen.app.session.origen_core[:default_plugin_cleared_by_user] = true
50
57
  else
58
+ Origen.app.session.origen_core[:default_plugin] = name
51
59
  @current = name
52
60
  end
53
61
  end
@@ -22,6 +22,11 @@ module Origen
22
22
  end
23
23
 
24
24
  class Integer
25
+ class << self
26
+ attr_accessor :width
27
+ end
28
+ @width = 32
29
+
25
30
  if RUBY_VERSION >= '2.4.0'
26
31
  prepend Origen::IntegerExtension
27
32
  end
@@ -72,6 +77,19 @@ class Integer
72
77
  alias_method :to_xls_col, :to_spreadsheet_column
73
78
  alias_method :to_xlsx_col, :to_spreadsheet_column
74
79
  alias_method :to_spreadsheet_col, :to_spreadsheet_column
80
+
81
+ def twos_complement(width = nil)
82
+ _width = width || Integer.width
83
+ if self > 2**(_width - 1) - 1
84
+ fail(RangeError, "Integer #{self} cannot fit into #{_width} bits with 2s complement encoding")
85
+ elsif self < -1 * (2**(_width - 1))
86
+ fail(RangeError, "Integer #{self} cannot fit into #{_width} bits with 2s complement encoding")
87
+ end
88
+
89
+ self < 0 ? ((-1 * self) ^ (2**_width - 1)) + 1 : self
90
+ end
91
+ alias_method :twos_comp, :twos_complement
92
+ alias_method :twos_compliment, :twos_complement
75
93
  end
76
94
 
77
95
  if RUBY_VERSION <= '2.4.0'
@@ -10,4 +10,18 @@ class Object
10
10
  end
11
11
  nil
12
12
  end
13
+
14
+ # Indicates whether the object is or can be used as an Origen subblock, where
15
+ # being an Origen subblock is defined as inheriting from either {Origen::Model} or
16
+ # {Origen::Controller}.
17
+ # @return [True/False]
18
+ # @example Subblock NVM (from the Origen guides)
19
+ # dut.nvm.origen_subblock? #=> true
20
+ # @example Non-subblocks
21
+ # 'hi'.origen_subblock? #=> false
22
+ # @see https://origen-sdk.org/origen/guides/models/defining/#Adding_Sub_Blocks
23
+ def origen_subblock?
24
+ self.is_a?(Origen::Model) || self.is_a?(Origen::Controller) || self.is_a?(Origen::SubBlocks::Placeholder)
25
+ end
26
+ alias_method :origen_sub_block?, :origen_subblock?
13
27
  end
@@ -18,9 +18,19 @@ module Origen
18
18
 
19
19
  # Execute the given pattern
20
20
  def run(pattern_name)
21
- pattern = Origen.generator.pattern_finder.find(pattern_name.to_s, {})
22
- pattern = pattern[:pattern] if pattern.is_a?(Hash)
23
- load pattern
21
+ name = Pathname.new(pattern_name).basename
22
+ ss "START OF PATTERN: #{name}"
23
+ # Give the app a chance to handle pattern dispatch
24
+ skip = false
25
+ Origen.app.listeners_for(:before_pattern_lookup).each do |listener|
26
+ skip ||= !listener.before_pattern_lookup(pattern_name.to_s)
27
+ end
28
+ unless skip
29
+ pattern = Origen.generator.pattern_finder.find(pattern_name.to_s, {})
30
+ pattern = pattern[:pattern] if pattern.is_a?(Hash)
31
+ load pattern
32
+ end
33
+ ss "END OF PATTERN: #{name}"
24
34
  end
25
35
  alias_method :call, :run
26
36
 
@@ -117,13 +117,18 @@ module Origen
117
117
  _parameter_sets[name] = Origen::Parameters::Set.new(top_level: true, owner: self)
118
118
  end
119
119
  if options[:inherit]
120
- kontext = _validate_parameter_set_name(options[:inherit])
121
- parent = kontext[:obj]._parameter_sets[kontext[:context]]
122
- if Origen::Parameters.transaction_open && !Origen::Parameters.transaction_redefine
123
- define_params_transaction[kontext[:obj]][kontext[:context]][:children] << [self, name]
120
+ parents = {}
121
+ Array(options[:inherit]).each do |inherit|
122
+ kontext = _validate_parameter_set_name(inherit)
123
+ parent = kontext[:obj]._parameter_sets[kontext[:context]]
124
+ parents[inherit] = parent
125
+ if Origen::Parameters.transaction_open && !Origen::Parameters.transaction_redefine
126
+ define_params_transaction[kontext[:obj]][kontext[:context]][:children] << [self, name]
127
+ end
128
+ _parameter_sets[name].copy_defaults_from(parent) unless defaults_already_set
124
129
  end
125
- _parameter_sets[name].copy_defaults_from(parent) unless defaults_already_set
126
- _parameter_sets[name].define(parent, &block)
130
+ parents = parents.values.first if parents.size == 1
131
+ _parameter_sets[name].define(parents, &block)
127
132
  else
128
133
  _parameter_sets[name].define(&block)
129
134
  end
@@ -131,6 +136,7 @@ module Origen
131
136
  redefine_children.each { |model, set_name| Origen::Parameters.redefine(model, set_name) }
132
137
  end
133
138
  end
139
+ _parameter_sets[name]
134
140
  end
135
141
  alias_method :define_parameters, :define_params
136
142
 
data/lib/origen/pins.rb CHANGED
@@ -693,27 +693,78 @@ If you meant to define the virtual_pin_group then use the add_virtual_pin_group
693
693
  end
694
694
  alias_method :virtual_pin_group, :virtual_pin_groups
695
695
 
696
+ def all_pin_ids(type: nil, **options)
697
+ case type
698
+ when :power_pin, :power_pins
699
+ dut.pins(power_pin: true).map { |n, p| [n, *p.aliases.keys] }.flatten.map { |n| [n, dut.power_pin(n)] }.to_h
700
+ when :ground_pin, :ground_pins
701
+ dut.pins(ground_pin: true).map { |n, p| [n, *p.aliases.keys] }.flatten.map { |n| [n, dut.ground_pin(n)] }.to_h
702
+ when :virtual_pin, :virtual_pins
703
+ dut.pins(virtual_pin: true).map { |n, p| [n, *p.aliases.keys] }.flatten.map { |n| [n, dut.virtual_pin(n)] }.to_h
704
+ when :other_pin, :other_pins
705
+ dut.pins(other_pin: true).map { |n, p| [n, *p.aliases.keys] }.flatten.map { |n| [n, dut.other_pin(n)] }.to_h
706
+ else
707
+ # Maintain the legacy lookup of power_pin: true, ground_pin: true, etc.
708
+ if options[:power_pin]
709
+ all_pin_ids(type: :power_pin)
710
+ elsif options[:ground_pin]
711
+ all_pin_ids(type: :ground_pin)
712
+ elsif options[:virtual_pin]
713
+ all_pin_ids(type: :virtual_pin)
714
+ elsif options[:other_pin]
715
+ all_pin_ids(type: :other_pin)
716
+ else
717
+ dut.pins.map { |n, p| [n, *p.aliases.keys] }.flatten.map { |n| [n, dut.pin(n)] }.to_h
718
+ end
719
+ end
720
+ end
721
+
696
722
  # Permits access via object.pin(x), returns a hash of all pins if no id
697
723
  # is specified.
698
724
  # ==== Examples
699
725
  # $top.pin(:done)
700
726
  # $soc.pin(:port_a1)
701
727
  # pin(:fail) # Access directly from within the module
702
- def pins(id = nil, options = {}, &_block)
703
- id, options = nil, id if id.is_a?(Hash)
704
- if id
705
- pin = Origen.pin_bank.find(id, options)
706
- unless pin
707
- puts <<-END
728
+ def pins(*ids, &_block)
729
+ options = (ids.pop if ids.last.is_a?(Hash)) || {}
730
+
731
+ # Methods may give an ID of nil, which would previously gloss over
732
+ # the pin lookup. To maintain backwards compability, reject any nils in the input,
733
+ # then proceed as normal.
734
+ ids.reject!(&:nil?)
735
+ if !ids.empty? || block_given?
736
+ pins = []
737
+
738
+ if block_given?
739
+ pins += all_pin_ids(options).select { |n, p| yield(n, p) }.values.uniq
740
+ end
741
+
742
+ ids.each do |id|
743
+ if id.is_a?(Regexp)
744
+ pins += all_pin_ids(options).select { |n, p| n.to_s =~ id }.values.uniq
745
+ else
746
+ pin = Origen.pin_bank.find(id, options)
747
+ unless pin
748
+ puts <<-END
708
749
  You have tried to reference pin :#{id} within #{self.class} but it does not exist, this could be
709
750
  because the pin has not been defined yet or it is an alias that is not available in the current context.
710
751
 
711
752
  If you meant to define the pin then use the add_pin method instead.
712
753
 
713
- END
714
- fail 'Pin not found'
754
+ END
755
+ fail 'Pin not found'
756
+ end
757
+ pins << pin
758
+ end
759
+ end
760
+
761
+ # Maintain return value of a single pin object if only given a single identifier
762
+ if ids.size == 1 && !ids.first.is_a?(Regexp)
763
+ pins.first
764
+ else
765
+ options[:keep_duplicates] ? pins : pins.uniq!
766
+ PinCollection.new(self, *pins, options)
715
767
  end
716
- pin
717
768
  else
718
769
  if options[:power_pin]
719
770
  Origen.pin_bank.power_pins
@@ -741,12 +792,13 @@ If you meant to define the pin then use the add_pin method instead.
741
792
  alias_method :power_pin, :power_pins
742
793
 
743
794
  # Equivalent to the pins method but considers ground pins rather than regular pins
744
- def ground_pins(id = nil, options = {}, &block)
745
- id, options = nil, id if id.is_a?(Hash)
795
+ def ground_pins(*ids, &block)
796
+ options = (ids.pop if ids.last.is_a?(Hash)) || {}
797
+
746
798
  options = {
747
799
  ground_pin: true
748
800
  }.merge(options)
749
- pins(id, options, &block)
801
+ pins(*ids, options, &block)
750
802
  end
751
803
  alias_method :ground_pin, :ground_pins
752
804
 
@@ -1072,6 +1072,85 @@ module Origen
1072
1072
  end
1073
1073
  end
1074
1074
 
1075
+ def index?(context: nil)
1076
+ !!index(context: context).nil?
1077
+ end
1078
+
1079
+ def index(context: nil)
1080
+ if context.is_a?(Symbol)
1081
+ # Context pin group provided
1082
+ group = groups[context].instance_variable_get(:@store)
1083
+ if group
1084
+ group.index(self)
1085
+ end
1086
+ elsif context.is_a?(Array)
1087
+ # Anonymous pin group given
1088
+ context.map { |p| p.is_a?(Symbol) ? owner.pin(p) : p }.index(self)
1089
+ else
1090
+ # Try an index based off of the pin name.
1091
+ # Only works if the pin ends in a decimal. Otherwise, returns nil.
1092
+ i = name.to_s.index(/\d+$/)
1093
+ if i
1094
+ name.to_s[i..-1].to_i
1095
+ end
1096
+ end
1097
+ end
1098
+
1099
+ def mask(context: nil)
1100
+ index = context.is_a?(Integer) ? context : self.index(context: context)
1101
+
1102
+ if index.nil? && context.nil?
1103
+ # If the index is nil and no context was given, no implicit index could be resolved
1104
+ fail("Could not discern pin :#{name}'s implicit index!")
1105
+ elsif index.nil?
1106
+ # If the index is nil and some context was given, then the pin is not in the given context
1107
+ fail("Pin :#{name} is not a member of the given context!")
1108
+ end
1109
+
1110
+ 2**index
1111
+ end
1112
+ alias_method :set_mask, :mask
1113
+ alias_method :smask, :mask
1114
+
1115
+ def clear_mask(context: nil, size: nil)
1116
+ index = context.is_a?(Integer) ? context : self.index(context: context)
1117
+
1118
+ if index.nil? && context.nil?
1119
+ # If the index is nil and no context was given, no implicit index could be resolved
1120
+ fail("Could not discern pin :#{name}'s implicit index!")
1121
+ elsif index.nil?
1122
+ # If the index is nil and some context was given, then the pin is not in the given context
1123
+ fail("Pin :#{name} is not a member of the given context!")
1124
+ end
1125
+
1126
+ if size && context && !context.is_a?(Integer)
1127
+ # A context was given, that was not just an Integer, and size was given
1128
+ # Raise an exception as these two conflict.
1129
+ fail('Both a sized context (e.g. pin group) and a :size option cannot be used simultaneously!')
1130
+ elsif size
1131
+ # A size option was given. Use that.
1132
+ ((2**size) - 1) ^ (1 << index)
1133
+ elsif context.is_a?(Symbol)
1134
+ ((2**groups[context].instance_variable_get(:@store).size) - 1) ^ (1 << index)
1135
+ elsif context.respond_to?(:size) && !context.is_a?(Integer)
1136
+ # PinCollection or Array
1137
+ ((2**context.size) - 1) ^ (1 << index)
1138
+ else
1139
+ # No size option was given. Use the implicit index instead.
1140
+ (2**index) - 1
1141
+ end
1142
+ end
1143
+ alias_method :clr_mask, :clear_mask
1144
+ alias_method :cmask, :clear_mask
1145
+
1146
+ def named?(n)
1147
+ if n.is_a?(Regexp)
1148
+ [name.to_s, *aliases.keys].any? { |na| na =~ n }
1149
+ else
1150
+ [name.to_s, *aliases.keys.map(&:to_s)].include?(n.to_s)
1151
+ end
1152
+ end
1153
+
1075
1154
  def method_missing(m, *args, &block)
1076
1155
  if meta.include? m
1077
1156
  meta[m]
@@ -476,6 +476,9 @@ module Origen
476
476
  # @api private
477
477
  def parse_descriptions
478
478
  desc = []
479
+ unless File.exist?(define_file)
480
+ return desc
481
+ end
479
482
  File.readlines(define_file).each do |line|
480
483
  if line =~ /^\s*#(.*)/
481
484
  desc << Regexp.last_match[1].strip
@@ -274,6 +274,13 @@ module Origen
274
274
  def sub_block(name = nil, options = {})
275
275
  name, options = nil, name if name.is_a?(Hash)
276
276
  return sub_blocks unless name
277
+
278
+ if name.is_a?(Class)
279
+ return sub_blocks.select { |n, s| s.is_a?(name) }
280
+ elsif name.origen_sub_block?
281
+ return sub_block(name.class)
282
+ end
283
+
277
284
  if i = options.delete(:instances)
278
285
  # permit creating multiple instances of a particular sub_block class
279
286
  # can pass array for base_address, which will be processed above
@@ -3,6 +3,9 @@ module Origen
3
3
  class User
4
4
  require 'openssl'
5
5
  require 'digest/sha1'
6
+ # Required for STDIN.noecho to work
7
+ # https://stackoverflow.com/questions/9324697/why-cannot-use-instance-method-noecho-of-class-io
8
+ require 'io/console'
6
9
 
7
10
  attr_reader :role
8
11
  attr_writer :name, :email
@@ -45,7 +48,9 @@ module Origen
45
48
  end
46
49
 
47
50
  def id(options = {})
48
- @id.to_s.downcase
51
+ # Way to force Origen to use the new user ID in case of WSL where the core ID might not match the WSL login name
52
+ # User needs to setup the environment variable in their .bashrc or .tcshrc file
53
+ ENV['ORIGEN_USER_ID'] || @id.to_s.downcase
49
54
  end
50
55
  alias_method :core_id, :id
51
56
  alias_method :username, :id
@@ -67,7 +72,7 @@ module Origen
67
72
  end
68
73
 
69
74
  def name
70
- @name ||= ENV['ORIGEN_NAME'] || name_from_rc || @id
75
+ @name ||= ENV['ORIGEN_NAME'] || ENV['ORIGEN_USER_NAME'] || name_from_rc || @id
71
76
  end
72
77
 
73
78
  def name_from_rc
@@ -76,7 +81,7 @@ module Origen
76
81
 
77
82
  def email(options = {})
78
83
  if current?
79
- @email ||= ENV['ORIGEN_EMAIL'] || email_from_rc || begin
84
+ @email ||= ENV['ORIGEN_EMAIL'] || ENV['ORIGEN_USER_EMAIL'] || email_from_rc || begin
80
85
  if Origen.site_config.email_domain
81
86
  "#{id}@#{Origen.site_config.email_domain}"
82
87
  end
@@ -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 = "2019-07-30"
11
+ s.date = "2019-09-13"
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.52.3
4
+ version: 0.54.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen McGinty
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-02 00:00:00.000000000 Z
11
+ date: 2019-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -70,14 +70,14 @@ dependencies:
70
70
  name: bundler
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '1.7'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '1.7'
83
83
  - !ruby/object:Gem::Dependency