origen 0.1.3 → 0.2.0
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 +2 -2
- data/lib/origen/application/deployer.rb +16 -17
- data/lib/origen/application/plugins_manager.rb +1 -1
- data/lib/origen/commands.rb +33 -1
- data/lib/origen/commands/interactive.rb +11 -3
- data/lib/origen/commands/rc.rb +5 -1
- data/lib/origen/commands/web.rb +2 -0
- data/lib/origen/generator/pattern.rb +25 -2
- data/lib/origen/regression_manager.rb +6 -5
- data/lib/origen/revision_control/git.rb +95 -15
- data/lib/origen/specs.rb +19 -13
- data/lib/origen/specs/checkers.rb +99 -93
- data/lib/origen/specs/creation_info.rb +23 -3
- data/lib/origen/specs/spec.rb +8 -1
- data/lib/origen/users/user.rb +13 -4
- data/lib/origen/utility.rb +1 -0
- data/lib/origen/utility/diff.rb +7 -3
- data/lib/origen/utility/file_diff.rb +213 -0
- data/templates/nanoc/Rules +13 -15
- data/templates/nanoc/layouts/bootstrap.html.erb +31 -4
- data/templates/shared/web/_logo.html +3 -3
- data/templates/web/css/landing.css +3 -0
- data/templates/web/design-engineering.html.erb +0 -0
- data/templates/web/index.html.erb +23 -0
- data/templates/web/js/jquery-singlePageNav.js +8 -0
- data/templates/web/js/landing.js +9 -0
- data/templates/web/layouts/_basic.html.erb +1 -0
- data/templates/web/layouts/_cyborg.html.erb +111 -0
- data/templates/web/layouts/_doc.html.erb +1 -0
- data/templates/web/test-engineering.html.erb +79 -0
- metadata +11 -5
- data/templates/nanoc/content/favicon.ico +0 -0
- data/templates/web/index.md.erb +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c03ed69b554f6d924ac5fcffe87d9c18724a9606
|
4
|
+
data.tar.gz: 8f1c2964ce925f3ccb176bd3ee9a3c0c0e6e7841
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 254950fe29f7941f9eb65a1e2ac37e4dcac85dc141a5825c93ae96c13db1cea0d26520a5043281f664f0ca3c93ea2157801b29616fc6460bcd30aa2e14b9a194
|
7
|
+
data.tar.gz: b2aaac13da19297800d4301b275d91f201b7e92e02483fa59b852718580afa15c051da52422d73da621403c6a7d2cd0b9a067530767ada7b5dd97de461411fcb
|
data/config/version.rb
CHANGED
@@ -157,21 +157,22 @@ module Origen
|
|
157
157
|
end
|
158
158
|
|
159
159
|
def deploy_file(file)
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
160
|
+
remote_dir = deploy_to_git? ? "#{git_repo.local}/#{git_sub_dir}" : live_remote_directory
|
161
|
+
if remote_dir
|
162
|
+
file = Origen.file_handler.clean_path_to(file)
|
163
|
+
sub_dir = Origen.file_handler.sub_dir_of(file, "#{Origen.root}/templates/web") .to_s
|
164
|
+
page = file.basename.to_s.sub(/\..*/, '')
|
165
|
+
# Special case for the main index page
|
166
|
+
if page == 'index' && sub_dir == '.'
|
167
|
+
FileUtils.cp "#{Origen.root}/web/output/index.html", remote_dir
|
168
|
+
file = "#{remote_dir}/index.html"
|
169
|
+
else
|
170
|
+
FileUtils.mkdir_p("#{remote_dir}/#{sub_dir}/#{page}")
|
171
|
+
file = "#{remote_dir}/#{sub_dir}/#{page}/index.html"
|
172
|
+
FileUtils.cp "#{Origen.root}/web/output/#{sub_dir}/#{page}/index.html", file
|
173
|
+
end
|
174
|
+
if deploy_to_git?
|
175
|
+
git_repo.checkin file, unmanaged: true, comment: @commit_message
|
175
176
|
end
|
176
177
|
end
|
177
178
|
end
|
@@ -237,8 +238,6 @@ module Origen
|
|
237
238
|
FileUtils.cp_r Dir.glob("#{Origen.root}/templates/nanoc/*").sort, dir, remove_destination: true
|
238
239
|
end
|
239
240
|
end
|
240
|
-
# Remove the .SYNCs
|
241
|
-
system "find #{dir} -name \".SYNC\" | xargs rm -fr"
|
242
241
|
@nanoc_dir = dir
|
243
242
|
end
|
244
243
|
end
|
@@ -151,7 +151,7 @@ module Origen
|
|
151
151
|
printf(format, 'Origen_Name', 'Name', 'Version')
|
152
152
|
printf(format, '---------', '----', '-------')
|
153
153
|
|
154
|
-
Origen.plugins.each do |plugin|
|
154
|
+
Origen.plugins.sort_by { |p| p.name.to_s }.each do |plugin|
|
155
155
|
printf(format, plugin.name, plugin.config.name, plugin.version)
|
156
156
|
end
|
157
157
|
puts ''
|
data/lib/origen/commands.rb
CHANGED
@@ -159,15 +159,47 @@ end
|
|
159
159
|
# prevent Origen from then having a go.
|
160
160
|
# This order is preferable to allowing Origen to go first since it allows
|
161
161
|
# overloading of Origen commands by the application.
|
162
|
+
@application_options = []
|
163
|
+
@plugin_commands = []
|
164
|
+
@application_commands = []
|
165
|
+
app_id = @application_options.object_id
|
166
|
+
plugin_id = @plugin_commands.object_id
|
167
|
+
app_cmd_id = @application_commands.object_id
|
168
|
+
app_opt_err = false
|
169
|
+
plugin_opt_err = false
|
170
|
+
app_cmd_err = false
|
162
171
|
if File.exist? "#{Origen.root}/config/commands.rb"
|
163
172
|
require "#{Origen.root}/config/commands"
|
173
|
+
if @application_options.object_id != app_id
|
174
|
+
Origen.log.warning "Don't assign @application_options to a value in config/commands.rb!"
|
175
|
+
Origen.log.warning 'Do something like this instead:'
|
176
|
+
Origen.log.warning ' @application_options << ["-v", "--vector_comments", "Add the vector and cycle number to the vector comments"]'
|
177
|
+
app_opt_err = true
|
178
|
+
end
|
179
|
+
if @plugin_commands.object_id != plugin_id
|
180
|
+
Origen.log.warning "Don't assign @plugin_commands to a new value in config/commands.rb!"
|
181
|
+
Origen.log.warning 'Do something like this instead:'
|
182
|
+
Origen.log.warning ' @plugin_commands << " testers:build Build a test program from a collection of sub-programs"'
|
183
|
+
plugin_opt_err = true
|
184
|
+
end
|
164
185
|
end
|
165
186
|
|
166
187
|
shared_commands = Origen.import_manager.command_launcher
|
167
|
-
@plugin_commands ||= []
|
168
188
|
if shared_commands && shared_commands.size != 0
|
169
189
|
shared_commands.each do |file|
|
170
190
|
require file
|
191
|
+
if @application_options.object_id != app_id && !app_opt_err
|
192
|
+
Origen.log.warning "Don't assign @application_options to a new value in #{file}!"
|
193
|
+
Origen.log.warning 'Do something like this instead:'
|
194
|
+
Origen.log.warning ' @application_options << ["-v", "--vector_comments", "Add the vector and cycle number to the vector comments"]'
|
195
|
+
app_opt_err = true
|
196
|
+
end
|
197
|
+
if @plugin_commands.object_id != plugin_id && !plugin_opt_err
|
198
|
+
Origen.log.warning "Don't assign @plugin_commands to a new value in #{file}!"
|
199
|
+
Origen.log.warning 'Do something like this instead:'
|
200
|
+
Origen.log.warning ' @plugin_commands << " testers:build Build a test program from a collection of sub-programs"'
|
201
|
+
plugin_opt_err = true
|
202
|
+
end
|
171
203
|
end
|
172
204
|
end
|
173
205
|
|
@@ -11,9 +11,17 @@ module Origen
|
|
11
11
|
# Methods available to the command line in a console session, split this to a
|
12
12
|
# separate file if it gets large over time
|
13
13
|
module ConsoleMethods
|
14
|
-
def
|
15
|
-
|
16
|
-
|
14
|
+
def ls
|
15
|
+
`ls`.split("\n")
|
16
|
+
end
|
17
|
+
|
18
|
+
def cd(dir)
|
19
|
+
Dir.chdir(dir)
|
20
|
+
Dir.pwd
|
21
|
+
end
|
22
|
+
|
23
|
+
def pwd
|
24
|
+
Dir.pwd
|
17
25
|
end
|
18
26
|
end
|
19
27
|
|
data/lib/origen/commands/rc.rb
CHANGED
@@ -350,7 +350,11 @@ The following options are available:
|
|
350
350
|
else
|
351
351
|
puts 'The following files have been modified:'
|
352
352
|
changes.flatten.each do |file|
|
353
|
-
|
353
|
+
if Origen.app.rc.git?
|
354
|
+
puts " #{Origen.app.rc.diff_cmd(file)}"
|
355
|
+
else
|
356
|
+
puts " #{Origen.app.rc.diff_cmd(file, Origen.app.version)}"
|
357
|
+
end
|
354
358
|
end
|
355
359
|
end
|
356
360
|
end
|
data/lib/origen/commands/web.rb
CHANGED
@@ -197,6 +197,7 @@ The following options are available:
|
|
197
197
|
when 'deploy'
|
198
198
|
Origen.app.load_target!
|
199
199
|
_require_web_directory
|
200
|
+
_deployer.prepare!(options)
|
200
201
|
if ARGV.empty?
|
201
202
|
_deployer.deploy_site
|
202
203
|
else
|
@@ -211,6 +212,7 @@ The following options are available:
|
|
211
212
|
when 'archive'
|
212
213
|
Origen.app.load_target!
|
213
214
|
_require_web_directory
|
215
|
+
_deployer.prepare!(options)
|
214
216
|
unless ARGV[0]
|
215
217
|
puts 'You must supply an ID argument to create an archive'
|
216
218
|
end
|
@@ -224,13 +224,36 @@ module Origen
|
|
224
224
|
c2 '*' * 75
|
225
225
|
c2 'ENVIRONMENT:'
|
226
226
|
c2 ' Application'
|
227
|
-
|
227
|
+
if Origen.app.rc.git?
|
228
|
+
c2 " Source: #{Origen.config.rc_url}"
|
229
|
+
else
|
230
|
+
c2 " Vault: #{Origen.config.vault}"
|
231
|
+
end
|
228
232
|
c2 " Version: #{Origen.app.version}"
|
229
233
|
c2 " Workspace: #{Origen.root}"
|
234
|
+
if Origen.app.rc.git?
|
235
|
+
begin
|
236
|
+
status = "#{Origen.app.rc.current_branch}(#{Origen.app.rc.current_commit})"
|
237
|
+
status += ' (+local edits)' unless Origen.app.rc.local_modifications.empty?
|
238
|
+
c2 " Branch: #{status}"
|
239
|
+
rescue
|
240
|
+
# No problem, we did our best
|
241
|
+
end
|
242
|
+
end
|
230
243
|
c2 ' Origen'
|
231
|
-
|
244
|
+
if Origen.app.rc.git?
|
245
|
+
c2 ' Source: https://github.com/Origen-SDK/origen'
|
246
|
+
else
|
247
|
+
c2 " Vault: #{Origen.config.vault}"
|
248
|
+
end
|
232
249
|
c2 " Version: #{Origen.version}"
|
233
250
|
c2 " Workspace: #{Origen.top}"
|
251
|
+
unless Origen.plugins.empty?
|
252
|
+
c2 ' Plugins'
|
253
|
+
Origen.plugins.sort_by { |p| p.name.to_s }.each do |plugin|
|
254
|
+
c2 " #{plugin.name}:".ljust(30) + plugin.version
|
255
|
+
end
|
256
|
+
end
|
234
257
|
c2 '*' * 75
|
235
258
|
if Origen.config.pattern_header
|
236
259
|
c2 '*' * 75
|
@@ -219,7 +219,11 @@ module Origen
|
|
219
219
|
puts ''
|
220
220
|
puts 'WHAT VERSION DO YOU WANT TO COMPARE AGAINST?'
|
221
221
|
puts ''
|
222
|
-
|
222
|
+
if Origen.app.rc.git?
|
223
|
+
puts "Valid values are 'latest', 'last' (production release), a tag, a commit or a branch."
|
224
|
+
else
|
225
|
+
puts "Valid values are 'latest', 'last' (production release), or a tag."
|
226
|
+
end
|
223
227
|
puts ''
|
224
228
|
get_text(default: Origen.app.version, single: true)
|
225
229
|
end
|
@@ -230,11 +234,8 @@ module Origen
|
|
230
234
|
Origen.app.version_tracker.versions.last
|
231
235
|
elsif version.downcase == 'latest'
|
232
236
|
version
|
233
|
-
elsif VersionString.new(version).valid?
|
234
|
-
version
|
235
237
|
else
|
236
|
-
|
237
|
-
exit 1
|
238
|
+
version
|
238
239
|
end
|
239
240
|
end
|
240
241
|
|
@@ -25,9 +25,14 @@ module Origen
|
|
25
25
|
end
|
26
26
|
|
27
27
|
if options[:force]
|
28
|
-
|
29
|
-
|
30
|
-
|
28
|
+
version = "origin/#{version}" if remote_branch?(version)
|
29
|
+
if paths == [local.to_s]
|
30
|
+
git "reset --hard #{version}"
|
31
|
+
else
|
32
|
+
git 'reset HEAD'
|
33
|
+
git 'pull', options
|
34
|
+
git "checkout #{version} #{paths.join(' ')}", options
|
35
|
+
end
|
31
36
|
else
|
32
37
|
if paths.size > 1 || paths.first != local.to_s
|
33
38
|
fail 'The Git driver does not support partial merge checkout, it has to be the whole workspace'
|
@@ -63,8 +68,8 @@ module Origen
|
|
63
68
|
# Can't check in unless we have the latest
|
64
69
|
if options[:force] && !options[:initial]
|
65
70
|
# Locally check in the given files
|
66
|
-
checkin(paths.join(' '),
|
67
|
-
local_rev = current_commit
|
71
|
+
checkin(paths.join(' '), no_push: true, verbose: false, comment: options[:comment])
|
72
|
+
local_rev = current_commit(short: false)
|
68
73
|
# Pull latest
|
69
74
|
checkout
|
70
75
|
# Restore the given files to our previous version
|
@@ -103,7 +108,7 @@ module Origen
|
|
103
108
|
end
|
104
109
|
git cmd, options
|
105
110
|
end
|
106
|
-
git "push origin #{current_branch}" unless options[:
|
111
|
+
git "push origin #{current_branch}" unless options[:no_push]
|
107
112
|
paths
|
108
113
|
end
|
109
114
|
|
@@ -161,8 +166,12 @@ module Origen
|
|
161
166
|
git(cmd, options).map(&:strip)
|
162
167
|
end
|
163
168
|
|
164
|
-
def diff_cmd(file, version)
|
165
|
-
|
169
|
+
def diff_cmd(file, version = nil)
|
170
|
+
if version
|
171
|
+
"git difftool --tool tkdiff -y #{prefix_tag(version)} #{file}"
|
172
|
+
else
|
173
|
+
"git difftool --tool tkdiff -y #{file}"
|
174
|
+
end
|
166
175
|
end
|
167
176
|
|
168
177
|
def tag(id, options = {})
|
@@ -184,6 +193,18 @@ module Origen
|
|
184
193
|
git('rev-parse --abbrev-ref HEAD', verbose: false).first
|
185
194
|
end
|
186
195
|
|
196
|
+
def current_commit(options = {})
|
197
|
+
options = {
|
198
|
+
short: true
|
199
|
+
}.merge(options)
|
200
|
+
commit = git('rev-parse HEAD', verbose: false).first
|
201
|
+
if options[:short]
|
202
|
+
commit[0, 11]
|
203
|
+
else
|
204
|
+
commit
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
187
208
|
# Returns true if the given tag already exists
|
188
209
|
def tag_exists?(tag)
|
189
210
|
git('fetch', verbose: false) unless @all_tags_fetched
|
@@ -191,9 +212,24 @@ module Origen
|
|
191
212
|
git('tag', verbose: false).include?(tag.to_s)
|
192
213
|
end
|
193
214
|
|
215
|
+
# Returns true if the given string matches a branch name in the remote repo
|
216
|
+
# Origen.app.rc.remote_branch?("master") # => true
|
217
|
+
# Origen.app.rc.remote_branch?("feature/exists") # => true
|
218
|
+
# Origen.app.rc.remote_branch?("feature/does_not_exist") # => false
|
219
|
+
def remote_branch?(str)
|
220
|
+
# Github doesn't like the ssh:// for this command, whereas Stash seems
|
221
|
+
# to require it.
|
222
|
+
if github?
|
223
|
+
rem = remote_without_protocol
|
224
|
+
else
|
225
|
+
rem = remote
|
226
|
+
end
|
227
|
+
!git("ls-remote --heads #{rem} #{str}", verbose: false).empty?
|
228
|
+
end
|
229
|
+
|
194
230
|
def initialized?
|
195
231
|
File.exist?("#{local}/.git") &&
|
196
|
-
git('remote -v', verbose: false).any? { |r| r =~ /#{
|
232
|
+
git('remote -v', verbose: false).any? { |r| r =~ /#{remote_without_protocol_and_user}/ || r =~ /#{remote_without_protocol_and_user.to_s.gsub(':', "\/")}/ } &&
|
197
233
|
!git('status', verbose: false).any? { |l| l =~ /^#? ?Initial commit$/ }
|
198
234
|
end
|
199
235
|
|
@@ -204,12 +240,45 @@ module Origen
|
|
204
240
|
FileUtils.rm_f files
|
205
241
|
end
|
206
242
|
|
243
|
+
# A class method is provided to fetch the user name since it is useful to have access
|
244
|
+
# to this when outside of an application workspace, e.g. when creating a new app
|
245
|
+
def self.user_name
|
246
|
+
git('config user.name', verbose: false).first
|
247
|
+
rescue
|
248
|
+
nil
|
249
|
+
end
|
250
|
+
|
251
|
+
# A class method is provided to fetch the user email since it is useful to have access
|
252
|
+
# to this when outside of an application workspace, e.g. when creating a new app
|
253
|
+
def self.user_email
|
254
|
+
git('config user.email', verbose: false).first
|
255
|
+
rescue
|
256
|
+
nil
|
257
|
+
end
|
258
|
+
|
259
|
+
def user_name
|
260
|
+
self.class.user_name
|
261
|
+
end
|
262
|
+
|
263
|
+
def user_email
|
264
|
+
self.class.user_email
|
265
|
+
end
|
266
|
+
|
267
|
+
# Returns true if the remote points to a github url
|
268
|
+
def github?
|
269
|
+
!!(remote.to_s =~ /github.com/)
|
270
|
+
end
|
271
|
+
|
207
272
|
private
|
208
273
|
|
209
274
|
def remote_without_protocol
|
210
275
|
Pathname.new(remote.sub(/^.*:\/\//, ''))
|
211
276
|
end
|
212
277
|
|
278
|
+
def remote_without_protocol_and_user
|
279
|
+
Pathname.new(remote_without_protocol.to_s.sub(/^.*@/, ''))
|
280
|
+
end
|
281
|
+
|
213
282
|
def create_gitignore
|
214
283
|
c = Origen::Generator::Compiler.new
|
215
284
|
c.compile "#{Origen.top}/templates/git/gitignore.erb",
|
@@ -223,10 +292,6 @@ module Origen
|
|
223
292
|
!(git('status --verbose', verbose: false).last =~ /^(no changes|nothing to commit)/)
|
224
293
|
end
|
225
294
|
|
226
|
-
def current_commit
|
227
|
-
git('rev-parse HEAD', verbose: false).first
|
228
|
-
end
|
229
|
-
|
230
295
|
def initialize_local_dir
|
231
296
|
super
|
232
297
|
unless initialized?
|
@@ -236,8 +301,13 @@ module Origen
|
|
236
301
|
end
|
237
302
|
end
|
238
303
|
|
239
|
-
# Execute a git operation, the resultant output is returned in an array
|
240
304
|
def git(command, options = {})
|
305
|
+
options[:local] = local
|
306
|
+
self.class.git(command, options)
|
307
|
+
end
|
308
|
+
|
309
|
+
# Execute a git operation, the resultant output is returned in an array
|
310
|
+
def self.git(command, options = {})
|
241
311
|
options = {
|
242
312
|
check_errors: true,
|
243
313
|
verbose: true
|
@@ -247,7 +317,7 @@ module Origen
|
|
247
317
|
Origen.log.info "git #{command}"
|
248
318
|
Origen.log.info ''
|
249
319
|
end
|
250
|
-
|
320
|
+
chdir options[:local] do
|
251
321
|
Open3.popen2e("git #{command}") do |_stdin, stdout_err, wait_thr|
|
252
322
|
while line = stdout_err.gets
|
253
323
|
Origen.log.info line.strip if options[:verbose]
|
@@ -266,6 +336,16 @@ module Origen
|
|
266
336
|
end
|
267
337
|
output
|
268
338
|
end
|
339
|
+
|
340
|
+
def self.chdir(dir)
|
341
|
+
if dir
|
342
|
+
Dir.chdir dir do
|
343
|
+
yield
|
344
|
+
end
|
345
|
+
else
|
346
|
+
yield
|
347
|
+
end
|
348
|
+
end
|
269
349
|
end
|
270
350
|
end
|
271
351
|
end
|
data/lib/origen/specs.rb
CHANGED
@@ -9,7 +9,8 @@ module Origen
|
|
9
9
|
autoload :Mode_Select, 'origen/specs/mode_select.rb'
|
10
10
|
autoload :Version_History, 'origen/specs/version_history.rb'
|
11
11
|
autoload :Creation_Info, 'origen/specs/creation_info.rb'
|
12
|
-
|
12
|
+
require 'origen/specs/checkers'
|
13
|
+
include Checkers
|
13
14
|
|
14
15
|
attr_accessor :_specs, :_notes, :_exhibits, :_doc_resources, :_overrides, :_power_supplies, :_mode_selects, :_version_history, :_creation_info
|
15
16
|
|
@@ -19,6 +20,14 @@ module Origen
|
|
19
20
|
|
20
21
|
SpecTableAttr = Struct.new(:table_text, :show, :padding)
|
21
22
|
|
23
|
+
# A regular Array but print specs to the console via their ID for brevity and
|
24
|
+
# consistency with other APIs (e.g. $dut.regs # => [:reg1, :reg2])
|
25
|
+
class SpecArray < Array
|
26
|
+
def inspect
|
27
|
+
map(&:name).inspect
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
22
31
|
# Returns a hash of hash containing all specs/modes
|
23
32
|
# If no spec is specified then all specs are returned via inspect
|
24
33
|
# If a spec is specified, a spec object will be returned if found
|
@@ -31,9 +40,8 @@ module Origen
|
|
31
40
|
sub_type: nil,
|
32
41
|
mode: current_mode.nil? ? nil : current_mode.name,
|
33
42
|
spec: nil,
|
34
|
-
verbose: false,
|
35
43
|
creating_spec: false
|
36
|
-
}.update(options)
|
44
|
+
}.update(options || {})
|
37
45
|
_specs
|
38
46
|
if s.nil?
|
39
47
|
return show_specs(options)
|
@@ -47,7 +55,9 @@ module Origen
|
|
47
55
|
end
|
48
56
|
|
49
57
|
# Define and instantiate a Spec object
|
50
|
-
def spec(name, type, mode = nil, &block)
|
58
|
+
def spec(name, type = nil, mode = nil, &block)
|
59
|
+
return specs(name, type) unless block_given?
|
60
|
+
fail 'A type argument is required when defining a spec!' unless type
|
51
61
|
_specs
|
52
62
|
name = name_audit(name)
|
53
63
|
fail 'Specification names must be of SPEC_TYPES Symbol or String and cannot start with a number' if name.nil?
|
@@ -80,7 +90,6 @@ module Origen
|
|
80
90
|
sub_type: nil,
|
81
91
|
mode: current_mode.nil? ? nil : current_mode.name,
|
82
92
|
spec: nil,
|
83
|
-
verbose: false,
|
84
93
|
creating_spec: false
|
85
94
|
}.update(options)
|
86
95
|
if @_specs.nil? || @_specs == {}
|
@@ -102,7 +111,6 @@ module Origen
|
|
102
111
|
sub_type: nil,
|
103
112
|
mode: current_mode.nil? ? nil : current_mode.name,
|
104
113
|
spec: nil,
|
105
|
-
verbose: false,
|
106
114
|
creating_spec: false
|
107
115
|
}.update(options)
|
108
116
|
options[:spec] = s
|
@@ -157,8 +165,8 @@ module Origen
|
|
157
165
|
end
|
158
166
|
end
|
159
167
|
|
160
|
-
def creation_info(author, date, src_info = {}, tool_info = {})
|
161
|
-
@_creation_info = Creation_Info.new(author, date, src_info, tool_info)
|
168
|
+
def creation_info(author, date, version, src_info = {}, tool_info = {})
|
169
|
+
@_creation_info = Creation_Info.new(author, date, version, src_info, tool_info)
|
162
170
|
end
|
163
171
|
|
164
172
|
# Returns a Note object from the notes hash
|
@@ -434,8 +442,7 @@ module Origen
|
|
434
442
|
spec: nil,
|
435
443
|
type: nil,
|
436
444
|
sub_type: nil,
|
437
|
-
|
438
|
-
specs_to_be_shown: [],
|
445
|
+
specs_to_be_shown: SpecArray.new,
|
439
446
|
owner: nil,
|
440
447
|
creating_spec: false
|
441
448
|
}.update(options)
|
@@ -476,13 +483,12 @@ module Origen
|
|
476
483
|
return specs_to_be_shown.first
|
477
484
|
else
|
478
485
|
Origen.log.debug "returning an array of specs during initial search: #{specs_to_be_shown}"
|
479
|
-
print_to_console(specs_to_be_shown) if options[:verbose] == true
|
480
486
|
return specs_to_be_shown
|
481
487
|
end
|
482
488
|
end
|
483
489
|
|
484
490
|
# Method to print a spec table to the console
|
485
|
-
def
|
491
|
+
def specs_to_table_string(specs_to_be_shown)
|
486
492
|
whitespace_padding = 3
|
487
493
|
table = []
|
488
494
|
attrs_to_be_shown = {
|
@@ -543,7 +549,7 @@ module Origen
|
|
543
549
|
table << data += '|'
|
544
550
|
end
|
545
551
|
table << '-' * header.length
|
546
|
-
|
552
|
+
table.flatten.join("\n")
|
547
553
|
end
|
548
554
|
end
|
549
555
|
end
|