origen 0.60.19 → 0.60.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/config/version.rb +1 -1
- data/lib/origen/application/configuration.rb +2 -2
- data/lib/origen/callbacks.rb +6 -1
- data/lib/origen/loader.rb +34 -10
- data/lib/origen/model_initializer.rb +12 -2
- data/lib/origen/sub_blocks.rb +4 -0
- data/origen_app_generators/origen_app_generators.gemspec +3 -3
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0ff67408cee3aae35f1f237df9b56f59671e4fded6ec18801b5add83850ec40
|
4
|
+
data.tar.gz: ac44e4e681cb14cb8d5cef023dff12f0430365bfc0e4dc73fbcd4f5a63615634
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c9f687da5d64f04da00bf588c4683694a8bdc2567c2f7714a846dbad755dfb2e7afc91e4af0c8eb26e5535d74c534049998f17a16dd766b387383d0da8bfb3a
|
7
|
+
data.tar.gz: 51393f786f377c74bf4b8251fcc908720e2387f15409ac0392fcc58a9d7d65da0eb61cf7562c160e5aba60cc7b29a36e439893cef56c5eea1d24420f16899bd6
|
data/config/version.rb
CHANGED
@@ -91,8 +91,8 @@ module Origen
|
|
91
91
|
@proceed_with_pattern = ->(_name) { true }
|
92
92
|
@erb_trim_mode = '%'
|
93
93
|
@referenced_pattern_list = -> { "#{Origen.root}/list/referenced.list" }
|
94
|
-
@copy_command = -> { Origen.running_on_windows? ? 'copy' : 'cp' }
|
95
|
-
@diff_command = -> { Origen.running_on_windows? ? 'start winmerge' : 'tkdiff' }
|
94
|
+
@copy_command = -> { Origen.session.user[:copy_command] || (Origen.running_on_windows? ? 'copy' : 'cp') }
|
95
|
+
@diff_command = -> { Origen.session.user[:diff_command] || (Origen.running_on_windows? ? 'start winmerge' : 'tkdiff') }
|
96
96
|
@imports = []
|
97
97
|
@imports_dev = []
|
98
98
|
@external_app_dirs = []
|
data/lib/origen/callbacks.rb
CHANGED
@@ -12,7 +12,12 @@ module Origen
|
|
12
12
|
# If this object has been instantiated after on_create has already been called,
|
13
13
|
# then invoke it now
|
14
14
|
if Origen.app.on_create_called?
|
15
|
-
|
15
|
+
if respond_to?(:on_create)
|
16
|
+
unless @_on_create_called
|
17
|
+
@_on_create_called = true
|
18
|
+
on_create
|
19
|
+
end
|
20
|
+
end
|
16
21
|
end
|
17
22
|
end
|
18
23
|
end
|
data/lib/origen/loader.rb
CHANGED
@@ -124,16 +124,6 @@ module Origen
|
|
124
124
|
model = model.model # Ensure we have a handle on the model and not its controller
|
125
125
|
loaded = nil
|
126
126
|
|
127
|
-
if options[:inherit]
|
128
|
-
# pass down any bugs/features from the inherited block class
|
129
|
-
unless options[:disable_bug_inheritance]
|
130
|
-
model.class.instance_variable_set(:@bugs, options[:inherit].constantize.bugs.merge(model.class.bugs))
|
131
|
-
end
|
132
|
-
unless options[:disable_feature_inheritance]
|
133
|
-
model.class.instance_variable_set(:@features, options[:inherit].constantize.features.merge(model.class.features))
|
134
|
-
end
|
135
|
-
end
|
136
|
-
|
137
127
|
if local_app = options[:app] || model.app
|
138
128
|
if options[:path]
|
139
129
|
local_full_paths = Array(options[:path])
|
@@ -143,6 +133,8 @@ module Origen
|
|
143
133
|
local_full_paths = [local_full_paths.join('/')]
|
144
134
|
end
|
145
135
|
app_paths_map = { local_app => local_full_paths }
|
136
|
+
inherit_app = nil
|
137
|
+
inherited_sub_blocks_files = []
|
146
138
|
if options[:inherit]
|
147
139
|
# update app_paths_map with the relevant inherited files
|
148
140
|
inherit_full_paths = options[:inherit].split('::')
|
@@ -179,6 +171,9 @@ module Origen
|
|
179
171
|
app.blocks_files[key][type].each do |f|
|
180
172
|
if type == :attributes
|
181
173
|
success = load_attributes(f, model)
|
174
|
+
elsif type == :sub_blocks && app == inherit_app
|
175
|
+
# handle inherited sub blocks later
|
176
|
+
inherited_sub_blocks_files << f
|
182
177
|
else
|
183
178
|
success = load_block_file(f, model)
|
184
179
|
end
|
@@ -203,7 +198,36 @@ module Origen
|
|
203
198
|
end
|
204
199
|
end
|
205
200
|
end
|
201
|
+
|
202
|
+
# Now load the inherited sub blocks, but don't override any existing sub blocks this model has already defined
|
203
|
+
inherited_sub_blocks_files.each do |f|
|
204
|
+
model.instance_variable_set(:@_inherited_sub_blocks_mode, true)
|
205
|
+
load_block_file(f, model)
|
206
|
+
model.instance_variable_set(:@_inherited_sub_blocks_mode, false)
|
207
|
+
end
|
206
208
|
end
|
209
|
+
|
210
|
+
# pass down any bugs/features from the inherited block class
|
211
|
+
if options[:inherit]
|
212
|
+
inherited_ancestors = options[:inherit].constantize.ancestors
|
213
|
+
inherited_features = inherited_ancestors.map do |a|
|
214
|
+
a.respond_to?(:features) ? a.features : {}
|
215
|
+
end
|
216
|
+
inherited_features = inherited_features.reject(&:empty?).reverse.reduce({}, :merge)
|
217
|
+
|
218
|
+
inherited_bugs = inherited_ancestors.map do |a|
|
219
|
+
a.respond_to?(:bugs) ? a.bugs : {}
|
220
|
+
end
|
221
|
+
inherited_bugs = inherited_bugs.reject(&:empty?).reverse.reduce({}, :merge)
|
222
|
+
|
223
|
+
unless options[:disable_feature_inheritance]
|
224
|
+
model.class.instance_variable_set(:@features, inherited_features.merge(model.class.features))
|
225
|
+
end
|
226
|
+
unless options[:disable_bug_inheritance]
|
227
|
+
model.class.instance_variable_set(:@bugs, inherited_bugs.merge(model.class.bugs))
|
228
|
+
end
|
229
|
+
end
|
230
|
+
|
207
231
|
loaded
|
208
232
|
end
|
209
233
|
|
@@ -68,10 +68,20 @@ module Origen
|
|
68
68
|
if x.try(:is_a_model_and_controller)
|
69
69
|
m = x.model
|
70
70
|
c = x.controller
|
71
|
-
|
71
|
+
if m.respond_to_directly?(:on_create)
|
72
|
+
unless m_on_create_called = m.instance_variable_get(:@_on_create_called)
|
73
|
+
m.instance_variable_set(:@_on_create_called, true)
|
74
|
+
m.on_create
|
75
|
+
end
|
76
|
+
end
|
72
77
|
c.on_create if c.respond_to_directly?(:on_create)
|
73
78
|
else
|
74
|
-
|
79
|
+
if x.respond_to?(:on_create)
|
80
|
+
unless x_on_create_called = x.instance_variable_get(:@_on_create_called)
|
81
|
+
x.instance_variable_set(:@_on_create_called, true)
|
82
|
+
x.on_create
|
83
|
+
end
|
84
|
+
end
|
75
85
|
end
|
76
86
|
end
|
77
87
|
if is_top_level
|
data/lib/origen/sub_blocks.rb
CHANGED
@@ -296,6 +296,10 @@ module Origen
|
|
296
296
|
return sub_block(name.class)
|
297
297
|
end
|
298
298
|
|
299
|
+
if sub_blocks[name] && model.instance_variable_get(:@_inherited_sub_blocks_mode)
|
300
|
+
return
|
301
|
+
end
|
302
|
+
|
299
303
|
if i = options.delete(:instances)
|
300
304
|
# permit creating multiple instances of a particular sub_block class
|
301
305
|
# can pass array for base_address, which will be processed above
|
@@ -8,16 +8,16 @@ 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 = "
|
11
|
+
s.date = "2025-05-28"
|
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
|
15
15
|
s.licenses = ["MIT".freeze]
|
16
16
|
s.required_ruby_version = Gem::Requirement.new(">= 1.9.3".freeze)
|
17
|
-
s.rubygems_version = "3.
|
17
|
+
s.rubygems_version = "3.1.6".freeze
|
18
18
|
s.summary = "Origen application generators".freeze
|
19
19
|
|
20
|
-
s.installed_by_version = "3.
|
20
|
+
s.installed_by_version = "3.1.6" if s.respond_to? :installed_by_version
|
21
21
|
|
22
22
|
if s.respond_to? :specification_version then
|
23
23
|
s.specification_version = 4
|
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.60.
|
4
|
+
version: 0.60.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen McGinty
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-05-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -346,7 +346,7 @@ dependencies:
|
|
346
346
|
- - ">="
|
347
347
|
- !ruby/object:Gem::Version
|
348
348
|
version: '0'
|
349
|
-
description:
|
349
|
+
description:
|
350
350
|
email:
|
351
351
|
- stephen.f.mcginty@gmail.com
|
352
352
|
executables:
|
@@ -716,7 +716,7 @@ homepage: https://origen-sdk.org
|
|
716
716
|
licenses:
|
717
717
|
- MIT
|
718
718
|
metadata: {}
|
719
|
-
post_install_message:
|
719
|
+
post_install_message:
|
720
720
|
rdoc_options: []
|
721
721
|
require_paths:
|
722
722
|
- lib
|
@@ -731,8 +731,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
731
731
|
- !ruby/object:Gem::Version
|
732
732
|
version: 1.8.11
|
733
733
|
requirements: []
|
734
|
-
rubygems_version: 3.
|
735
|
-
signing_key:
|
734
|
+
rubygems_version: 3.1.6
|
735
|
+
signing_key:
|
736
736
|
specification_version: 4
|
737
737
|
summary: The Semiconductor Developer's Kit
|
738
738
|
test_files: []
|