origen 0.44.0 → 0.50.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/application.rb +2 -2
- data/config/boot.rb +0 -7
- data/config/commands.rb +3 -74
- data/config/rubocop/easy_disabled.yml +4 -0
- data/config/rubocop/easy_enabled.yml +0 -4
- data/config/rubocop/strict_disabled.yml +4 -0
- data/config/rubocop/strict_enabled.yml +0 -4
- data/config/version.rb +1 -2
- data/lib/origen/application/deployer.rb +3 -1
- data/lib/origen/application/release.rb +2 -2
- data/lib/origen/application/runner.rb +9 -2
- data/lib/origen/application.rb +91 -2
- data/lib/origen/boot/app.rb +0 -4
- data/lib/origen/boot.rb +2 -1
- data/lib/origen/code_generators/actions.rb +244 -34
- data/lib/origen/code_generators/base.rb +9 -2
- data/lib/origen/code_generators/block.rb +203 -0
- data/lib/origen/code_generators/block_common.rb +100 -0
- data/lib/origen/code_generators/dut.rb +62 -0
- data/lib/origen/code_generators/feature.rb +50 -0
- data/lib/origen/code_generators/klass.rb +41 -0
- data/lib/origen/code_generators/model.rb +60 -0
- data/lib/origen/code_generators/module.rb +92 -0
- data/lib/origen/code_generators.rb +30 -10
- data/lib/origen/commands/lint.rb +6 -1
- data/lib/origen/commands/new.rb +1 -1
- data/lib/origen/commands/new_resource.rb +41 -0
- data/lib/origen/commands/web.rb +11 -6
- data/lib/origen/commands.rb +18 -0
- data/lib/{option_parser → origen/core_ext/option_parser}/optparse.rb +0 -0
- data/lib/origen/dependencies.rb +0 -0
- data/lib/origen/file_handler.rb +8 -4
- data/lib/origen/generator/pattern_finder.rb +3 -3
- data/lib/origen/loader.rb +377 -0
- data/lib/origen/model.rb +22 -1
- data/lib/origen/model_initializer.rb +5 -1
- data/lib/origen/parameters/set.rb +2 -1
- data/lib/origen/parameters.rb +95 -3
- data/lib/origen/sub_blocks.rb +21 -7
- data/lib/origen/top_level.rb +11 -0
- data/lib/origen.rb +3 -1
- data/origen_app_generators/Gemfile +6 -2
- data/origen_app_generators/Gemfile.lock +83 -72
- data/origen_app_generators/bin/boot.rb +4 -2
- data/origen_app_generators/config/commands.rb +3 -3
- data/origen_app_generators/config/shared_commands.rb +11 -6
- data/origen_app_generators/lbin/bundle +105 -0
- data/origen_app_generators/lbin/byebug +29 -0
- data/origen_app_generators/lbin/coderay +29 -0
- data/origen_app_generators/lbin/htmldiff +29 -0
- data/origen_app_generators/lbin/httparty +29 -0
- data/origen_app_generators/lbin/httpclient +29 -0
- data/origen_app_generators/lbin/kramdown +29 -0
- data/origen_app_generators/lbin/ldiff +29 -0
- data/origen_app_generators/lbin/nanoc +29 -0
- data/origen_app_generators/lbin/nokogiri +29 -0
- data/origen_app_generators/lbin/origen +62 -0
- data/origen_app_generators/lbin/pry +29 -0
- data/origen_app_generators/lbin/rackup +29 -0
- data/origen_app_generators/lbin/rake +29 -0
- data/origen_app_generators/lbin/rspec +29 -0
- data/origen_app_generators/lbin/rubocop +29 -0
- data/origen_app_generators/lbin/ruby-parse +29 -0
- data/origen_app_generators/lbin/ruby-rewrite +29 -0
- data/origen_app_generators/lbin/thor +29 -0
- data/origen_app_generators/lbin/tilt +29 -0
- data/origen_app_generators/lbin/yard +29 -0
- data/origen_app_generators/lbin/yardoc +29 -0
- data/origen_app_generators/lbin/yri +29 -0
- data/origen_app_generators/lib/origen_app_generators/application.rb +12 -12
- data/origen_app_generators/lib/origen_app_generators/base.rb +34 -8
- data/origen_app_generators/lib/origen_app_generators/new.rb +17 -9
- data/origen_app_generators/lib/{tasks/new_app_tests.rake → origen_app_generators/new_app_tests.rb} +1 -5
- data/origen_app_generators/lib/origen_app_generators/origen_infrastructure/app_generator_plugin.rb +6 -8
- data/origen_app_generators/lib/origen_app_generators/plugin.rb +4 -7
- data/origen_app_generators/lib/origen_app_generators/test_engineering/common.rb +29 -0
- data/origen_app_generators/lib/origen_app_generators/test_engineering/stand_alone_application.rb +9 -181
- data/origen_app_generators/lib/origen_app_generators/test_engineering/test_block.rb +4 -105
- data/origen_app_generators/lib/origen_app_generators.rb +6 -4
- data/origen_app_generators/origen_app_generators.gemspec +7 -7
- data/origen_app_generators/templates/app_generators/application/Gemfile +14 -3
- data/origen_app_generators/templates/app_generators/application/{lib → app/blocks}/top_level.rb +1 -1
- data/origen_app_generators/templates/app_generators/application/app/lib/module.rb +6 -0
- data/origen_app_generators/templates/app_generators/application/{templates → app/templates}/web/index.md.erb +0 -0
- data/origen_app_generators/templates/app_generators/application/{templates → app/templates}/web/layouts/_basic.html.erb +0 -0
- data/origen_app_generators/templates/app_generators/application/{templates → app/templates}/web/partials/_navbar.html.erb +0 -0
- data/origen_app_generators/templates/app_generators/application/{templates → app/templates}/web/release_notes.md.erb +0 -0
- data/origen_app_generators/templates/app_generators/application/config/application.rb +51 -55
- data/origen_app_generators/templates/app_generators/application/{spec → test/spec}/spec_helper.rb +0 -0
- data/origen_app_generators/templates/app_generators/origen_infrastructure/app_generator_plugin/{lib → app/lib}/application.rb +0 -0
- data/origen_app_generators/templates/app_generators/origen_infrastructure/app_generator_plugin/{lib → app/lib}/base.rb +0 -0
- data/origen_app_generators/templates/app_generators/origen_infrastructure/app_generator_plugin/{lib → app/lib}/module.rb +0 -0
- data/origen_app_generators/templates/app_generators/origen_infrastructure/app_generator_plugin/{lib → app/lib}/plugin.rb +0 -0
- data/origen_app_generators/templates/app_generators/origen_infrastructure/app_generator_plugin/config/load_generators.rb +1 -1
- data/origen_app_generators/templates/app_generators/plugin/Gemfile +5 -2
- data/origen_app_generators/templates/app_generators/plugin/{templates → app/templates}/web/index.md.erb +0 -0
- data/origen_app_generators/templates/app_generators/plugin/{templates → app/templates}/web/partials/_navbar_external.html.erb +0 -0
- data/origen_app_generators/templates/app_generators/plugin/{templates → app/templates}/web/partials/_navbar_internal.html.erb +0 -0
- data/origen_app_generators/templates/app_generators/plugin/gemspec.rb +4 -3
- data/origen_app_generators/templates/app_generators/test_engineering/{stand_alone_application/environment → environment}/j750.rb +0 -0
- data/origen_app_generators/templates/app_generators/test_engineering/{stand_alone_application/environment → environment}/uflex.rb +0 -0
- data/origen_app_generators/templates/app_generators/test_engineering/{stand_alone_application/environment → environment}/v93k.rb +0 -0
- data/origen_site_config.yml +0 -7
- data/templates/code_generators/attributes.rb +20 -0
- data/templates/code_generators/class.rb +9 -0
- data/templates/code_generators/controller.rb +87 -0
- data/templates/code_generators/model.rb +21 -0
- data/templates/code_generators/module.rb +4 -0
- data/templates/code_generators/parameters.rb +19 -0
- data/templates/code_generators/pins.rb +28 -0
- data/templates/code_generators/registers.rb +20 -0
- data/templates/code_generators/sub_blocks.rb +24 -0
- data/templates/code_generators/timesets.rb +24 -0
- data/templates/code_generators/version.rb +0 -1
- metadata +66 -77
- data/lib/c99/ate_interface.rb +0 -77
- data/lib/c99/nvm.rb +0 -110
- data/lib/c99/target/mock2.rb +0 -1
- data/lib/c99/target/subdir/mock3.rb +0 -1
- data/lib/origen/code_generators/bundler.rb +0 -17
- data/lib/origen/code_generators/gem_setup.rb +0 -49
- data/lib/origen/code_generators/rake.rb +0 -13
- data/lib/origen/code_generators/rspec.rb +0 -12
- data/lib/origen/commands/add.rb +0 -12
- data/lib/tasks/private/build.rake +0 -8
- data/origen_app_generators/bin/fix_my_workspace +0 -100
- data/origen_app_generators/lib/origen_app_generators/sub_block_parser.rb +0 -81
- data/origen_app_generators/lib/tasks/app_generators.rake +0 -6
- data/origen_app_generators/spec/sub_block_spec.rb +0 -36
- data/origen_app_generators/templates/app_generators/application/lib/app.rake +0 -6
- data/origen_app_generators/templates/app_generators/application/lib/module.rb +0 -22
- data/origen_app_generators/templates/app_generators/plugin/lib/README +0 -4
- data/origen_app_generators/templates/app_generators/plugin/lib_dev/README +0 -5
- data/origen_app_generators/templates/app_generators/test_engineering/stand_alone_application/Gemfile +0 -23
- data/origen_app_generators/templates/app_generators/test_engineering/stand_alone_application/environment/jlink.rb +0 -1
- data/origen_app_generators/templates/app_generators/test_engineering/stand_alone_application/lib/ip_block.rb +0 -23
- data/origen_app_generators/templates/app_generators/test_engineering/stand_alone_application/lib/ip_block_controller.rb +0 -5
- data/origen_app_generators/templates/app_generators/test_engineering/stand_alone_application/lib/top_level.rb +0 -33
- data/origen_app_generators/templates/app_generators/test_engineering/stand_alone_application/lib/top_level_controller.rb +0 -21
- data/origen_app_generators/templates/app_generators/test_engineering/stand_alone_application/pattern/example.rb +0 -4
- data/origen_app_generators/templates/app_generators/test_engineering/stand_alone_application/target/top_level.rb +0 -4
- data/origen_app_generators/templates/app_generators/test_engineering/test_block/environment/j750.rb +0 -2
- data/origen_app_generators/templates/app_generators/test_engineering/test_block/environment/ultraflex.rb +0 -2
- data/origen_app_generators/templates/app_generators/test_engineering/test_block/environment/v93k.rb +0 -2
- data/origen_app_generators/templates/app_generators/test_engineering/test_block/lib/controller.rb +0 -12
- data/origen_app_generators/templates/app_generators/test_engineering/test_block/lib/interface.rb +0 -21
- data/origen_app_generators/templates/app_generators/test_engineering/test_block/lib/model.rb +0 -18
- data/origen_app_generators/templates/app_generators/test_engineering/test_block/lib_dev/dut.rb +0 -27
- data/origen_app_generators/templates/app_generators/test_engineering/test_block/lib_dev/dut_controller.rb +0 -26
- data/origen_app_generators/templates/app_generators/test_engineering/test_block/pattern/example.rb +0 -5
- data/origen_app_generators/templates/app_generators/test_engineering/test_block/program/prb1.rb +0 -11
- data/origen_app_generators/templates/app_generators/test_engineering/test_block/target/default.rb +0 -2
- data/templates/code_generators/gemfile_app.rb +0 -4
- data/templates/code_generators/gemfile_plugin.rb +0 -6
- data/templates/code_generators/gemspec.rb +0 -33
- data/templates/code_generators/rakefile.rb +0 -10
- data/templates/code_generators/spec_helper.rb +0 -49
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c9ad10ac5859dc7cfe9fdbb76fea98e5c429b8844b016b661b28a346dbd83b17
|
4
|
+
data.tar.gz: c0f4b0490390588849aadd3fb5b4aa04b7a7d10b16e13e28b8bdae410b816e05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f425e0db9c3374cf6c53ee2ce1fa66defa5e09ce5b0fd3bb7aa21473a843f13b117e0026ad1c43bd23bcce98c124baf7a00aae040063184610fc9747666cb63d
|
7
|
+
data.tar.gz: cd2391055c02ba08d3fd3a31717f8e0db8bfa60d83254820bb6931485854339be842abc1c8f9b74dc929c1d66e6c73e852860eca9f28e0d5ee1899cee78846e7
|
data/config/application.rb
CHANGED
@@ -79,13 +79,13 @@ class OrigenCoreApplication < Origen::Application
|
|
79
79
|
iterator.key = :by_block
|
80
80
|
|
81
81
|
iterator.loop do |&pattern|
|
82
|
-
|
82
|
+
dut.nvm.blocks.each do |block|
|
83
83
|
pattern.call(block)
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
87
87
|
iterator.setup do |block|
|
88
|
-
blk =
|
88
|
+
blk = dut.nvm.find_block_by_id(block.id)
|
89
89
|
blk.select
|
90
90
|
blk
|
91
91
|
end
|
data/config/boot.rb
CHANGED
@@ -1,10 +1,3 @@
|
|
1
|
-
# Interfaces must be required, can't autoload
|
2
|
-
require "c99/ate_interface"
|
3
|
-
# The majority of this class is defined in the support application,
|
4
|
-
# this is to test that the importing application can override and
|
5
|
-
# extend imported classes.
|
6
|
-
require_relative "../lib/c99/nvm"
|
7
|
-
|
8
1
|
require_relative "../helpers/guides"
|
9
2
|
|
10
3
|
require "#{Origen.root(:origen_sim)}/config/boot"
|
data/config/commands.rb
CHANGED
@@ -15,83 +15,12 @@ when "tags"
|
|
15
15
|
exit 0
|
16
16
|
|
17
17
|
when "specs"
|
18
|
+
Origen.app.session.origen_core[:mode] = 'debug'
|
18
19
|
require "rspec"
|
19
|
-
|
20
|
-
options = {}
|
21
|
-
opt_parser = OptionParser.new do |opts|
|
22
|
-
opts.banner = [
|
23
|
-
'Run the specs unit tests',
|
24
|
-
'Usage: origen specs [filename_substrings...] [options]',
|
25
|
-
"Note: all files must reside in #{Origen.app.root}/specs for filename substrings",
|
26
|
-
"E.g.: origen specs site_config #=> runs only specs in filenames matching 'site_config'"
|
27
|
-
].join("\n")
|
28
|
-
opts.on('-h', '--help', 'Show this help message') do |h|
|
29
|
-
puts opt_parser
|
30
|
-
exit!
|
31
|
-
end
|
32
|
-
end
|
33
|
-
opt_parser.parse! ARGV
|
34
|
-
|
35
|
-
# Search for the filenames given.
|
36
|
-
spec_files = ARGV.map do |file|
|
37
|
-
f = Pathname.new(file)
|
38
|
-
dir = Origen.app.root.join('spec')
|
39
|
-
|
40
|
-
# Find any files that match the name. Include all these files.
|
41
|
-
# Note that this will map a string to an array, so we'll flatten the array later.
|
42
|
-
# Also, we'll only search for .rb files in spec. Append that to the glob if no file ext is provided.
|
43
|
-
if f.exist? && f.extname == '.rb'
|
44
|
-
# This is a hard-coded path. Don't glob this, just make sure its witin the spec directory.
|
45
|
-
File.expand_path(f)
|
46
|
-
elsif f.extname == '.rb'
|
47
|
-
# Search includes the extension, so don't add it.
|
48
|
-
# (limited to .rb files)
|
49
|
-
Dir.glob(dir.join("**/*#{f}"))
|
50
|
-
else
|
51
|
-
# Search for matching ruby files.
|
52
|
-
# (limited to .rb files)
|
53
|
-
Dir.glob(dir.join("**/*#{f}*.rb"))
|
54
|
-
end
|
55
|
-
end
|
56
|
-
spec_files.flatten!
|
57
|
-
|
58
|
-
if ARGV.empty?
|
59
|
-
# No filename substrings given. Run all *_spec files in spec/ directory
|
60
|
-
spec_files = ['spec']
|
61
|
-
elsif spec_files.empty? && !ARGV.empty?
|
62
|
-
# The spec files to run is empty, but file substring were given.
|
63
|
-
# Report that no files were found and exit.
|
64
|
-
Origen.app!.fail!(message: "No matching spec files could be found at #{Origen.app.root}/spec for patterns: #{ARGV.join(', ')}")
|
65
|
-
else
|
66
|
-
# Filename substrings were given and matching files were found. List the files just for user awareness.
|
67
|
-
Origen.log.info "Found matching specs files for patterns: #{ARGV.join(', ')}"
|
68
|
-
spec_files.each { |f| Origen.log.info(f) }
|
69
|
-
end
|
70
|
-
|
71
|
-
current_mode = Origen.mode.instance_variable_get(:@current_mode)
|
72
|
-
Origen.mode = :debug
|
73
|
-
Origen.app.session.origen_core[:mode] = Origen.mode.to_s
|
74
|
-
begin
|
75
|
-
status = RSpec::Core::Runner.run(spec_files)
|
76
|
-
rescue SystemExit => e
|
77
|
-
Origen.log.error "Unexpected SystemExit reached. Reporting failure status..."
|
78
|
-
status = 1
|
79
|
-
end
|
80
|
-
Origen.mode = current_mode
|
81
|
-
Origen.app.session.origen_core[:mode] = Origen.mode.to_s
|
82
|
-
|
83
|
-
# One kind of confusing thing is that Specs can still print the 'pass'/'success' verbiage even when it actually failed.
|
84
|
-
# This is due to rspec itself catching the errors, so there's no exception to catch from outside Rspec.
|
85
|
-
# Most likely the user will see red and see that nothing was actually run, but print a reassuring message from Origen saying that the specs actually failed,
|
86
|
-
# despite what Rspec's verbiage says.
|
87
|
-
if status == 1
|
88
|
-
Origen.log.error "Some errors occurred outside of the examples: received exit status 1 (failure). Please review RSpec output for details."
|
89
|
-
end
|
90
|
-
|
91
|
-
exit(status)
|
20
|
+
exit RSpec::Core::Runner.run(['spec'])
|
92
21
|
|
93
22
|
when "examples", "test"
|
94
|
-
Origen.
|
23
|
+
Origen.app.session.origen_core[:mode] = 'debug'
|
95
24
|
status = 0
|
96
25
|
Dir["#{Origen.root}/examples/*.rb"].each do |example|
|
97
26
|
require example
|
@@ -78,10 +78,6 @@ Style/CharacterLiteral:
|
|
78
78
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-character-literals'
|
79
79
|
Enabled: true
|
80
80
|
|
81
|
-
Style/ClassAndModuleChildren:
|
82
|
-
Description: 'Checks style of children classes and modules.'
|
83
|
-
Enabled: true
|
84
|
-
|
85
81
|
Style/ClassCheck:
|
86
82
|
Description: 'Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.'
|
87
83
|
Enabled: true
|
@@ -88,10 +88,6 @@ Style/CharacterLiteral:
|
|
88
88
|
StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-character-literals'
|
89
89
|
Enabled: true
|
90
90
|
|
91
|
-
Style/ClassAndModuleChildren:
|
92
|
-
Description: 'Checks style of children classes and modules.'
|
93
|
-
Enabled: true
|
94
|
-
|
95
91
|
Style/ClassCheck:
|
96
92
|
Description: 'Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.'
|
97
93
|
Enabled: true
|
data/config/version.rb
CHANGED
@@ -224,7 +224,9 @@ module Origen
|
|
224
224
|
end
|
225
225
|
|
226
226
|
def create_web_server_dir
|
227
|
-
|
227
|
+
templates_web_dir = 'app/templates/web'
|
228
|
+
templates_web_dir = 'templates/web' unless File.exist?("#{Origen.root}/#{templates_web_dir}")
|
229
|
+
if File.exist?("#{Origen.root}/#{templates_web_dir}")
|
228
230
|
dir = web_server_dir
|
229
231
|
FileUtils.rm_rf dir if File.exist?(dir)
|
230
232
|
FileUtils.mkdir_p dir
|
@@ -328,9 +328,9 @@ Your workspace has local modifications that are preventing the requested action
|
|
328
328
|
# Sets the version number in the file store
|
329
329
|
def write_version(version)
|
330
330
|
if version.semantic?
|
331
|
-
Origen::CodeGenerators.
|
331
|
+
Origen::CodeGenerators.invoke_internal 'semver', [], config: { change: version }
|
332
332
|
else
|
333
|
-
Origen::CodeGenerators.
|
333
|
+
Origen::CodeGenerators.invoke_internal 'timever', [], config: { change: version }
|
334
334
|
end
|
335
335
|
system 'origen -v' # Invoke Origen under the new version, this updates Gemfile.lock
|
336
336
|
end
|
@@ -263,8 +263,15 @@ module Origen
|
|
263
263
|
if Origen.mode.production? && Origen.app.rc
|
264
264
|
unless Origen.app.rc.local_modifications.empty?
|
265
265
|
puts <<-EOT
|
266
|
-
Your workspace has local modifications
|
267
|
-
|
266
|
+
Your workspace is running in production mode and it has local modifications which are preventing
|
267
|
+
the requested action, run the following command to see what files have been modified:
|
268
|
+
|
269
|
+
origen rc mods
|
270
|
+
|
271
|
+
If you are currently developing this application and are not ready to check everything in yet,
|
272
|
+
then run the following command to switch your workspace to debug/development mode:
|
273
|
+
|
274
|
+
origen m debug
|
268
275
|
EOT
|
269
276
|
exit 1
|
270
277
|
end
|
data/lib/origen/application.rb
CHANGED
@@ -62,6 +62,33 @@ module Origen
|
|
62
62
|
super || instance.respond_to?(*args)
|
63
63
|
end
|
64
64
|
|
65
|
+
# Returns the application instance (i.e. main app or the plugin) that owns the given class/module
|
66
|
+
# (literal, string or symbol representation is accepted) or object instance.
|
67
|
+
# Returns nil if no matching Origen application can be found.
|
68
|
+
#
|
69
|
+
# Origen::Application.from_namespace(MyApp) # => <my_app instance>
|
70
|
+
# Origen::Application.from_namespace(MyApp::MyClass) # => <my_app instance>
|
71
|
+
# Origen::Application.from_namespace('MyApp::MyClass') # => <my_app instance>
|
72
|
+
# Origen::Application.from_namespace(<my_app::my_class instance>) # => <my_app instance>
|
73
|
+
def from_namespace(item)
|
74
|
+
unless item.is_a?(String)
|
75
|
+
if item.is_a?(Module) || item.is_a?(Class) || item.is_a?(Symbol)
|
76
|
+
item = item.to_s
|
77
|
+
else # Assume to be an object instance in this case
|
78
|
+
item = item.class.to_s
|
79
|
+
end
|
80
|
+
end
|
81
|
+
namespace = item.split('::').first
|
82
|
+
@apps_by_namespace ||= {}
|
83
|
+
@apps_by_namespace[namespace] ||= begin
|
84
|
+
return Origen.app if Origen.app.namespace == namespace
|
85
|
+
Origen.app.plugins.each do |plugin|
|
86
|
+
return plugin if plugin.namespace == namespace
|
87
|
+
end
|
88
|
+
nil
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
65
92
|
protected
|
66
93
|
|
67
94
|
def method_missing(*args, &block)
|
@@ -104,6 +131,63 @@ module Origen
|
|
104
131
|
end
|
105
132
|
end
|
106
133
|
|
134
|
+
# @api private
|
135
|
+
#
|
136
|
+
# Returns a lookup table for all block definitions (app/blocks) that the app contains
|
137
|
+
def blocks_files
|
138
|
+
# There seems to be some issue with this cache being corrupted when running the test suite
|
139
|
+
# in Travis, but don't believe that this is really an issue in practice and cannot replicate
|
140
|
+
# it locally. Therefore maintaining the cache of this potentially expensive operation except
|
141
|
+
# from when running in CI.
|
142
|
+
@blocks_files = nil if ENV['CONTINUOUS_INTEGRATION']
|
143
|
+
@blocks_files ||= begin
|
144
|
+
files = {}
|
145
|
+
block_dir = Pathname.new(File.join(root, 'app', 'blocks'))
|
146
|
+
if block_dir.exist?
|
147
|
+
block_dir.children.each do |item|
|
148
|
+
if item.directory?
|
149
|
+
_add_block_files(files, block_dir, item)
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
153
|
+
files
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
# @api private
|
158
|
+
def _add_block_files(files, block_dir, current_dir, sub_block = false)
|
159
|
+
fields = current_dir.relative_path_from(block_dir).to_s.split('/')
|
160
|
+
fields.delete('derivatives')
|
161
|
+
fields.delete('sub_blocks')
|
162
|
+
path = fields.join('/')
|
163
|
+
files[path] ||= {}
|
164
|
+
files[path][:_sub_block] = true if sub_block
|
165
|
+
Dir.glob(current_dir.join('*.rb')).each do |file|
|
166
|
+
file = Pathname.new(file)
|
167
|
+
type = file.basename('.rb').to_s.to_sym
|
168
|
+
unless type == :model || type == :controller
|
169
|
+
files[path][type] ||= []
|
170
|
+
files[path][type] << file
|
171
|
+
end
|
172
|
+
end
|
173
|
+
derivatives = current_dir.join('derivatives')
|
174
|
+
if derivatives.exist?
|
175
|
+
derivatives.children.each do |item|
|
176
|
+
if item.directory?
|
177
|
+
_add_block_files(files, block_dir, item)
|
178
|
+
end
|
179
|
+
end
|
180
|
+
end
|
181
|
+
sub_blocks = current_dir.join('sub_blocks')
|
182
|
+
if sub_blocks.exist?
|
183
|
+
sub_blocks.children.each do |item|
|
184
|
+
if item.directory?
|
185
|
+
_add_block_files(files, block_dir, item, true)
|
186
|
+
end
|
187
|
+
end
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
107
191
|
def current_job
|
108
192
|
current_jobs.last
|
109
193
|
end
|
@@ -766,6 +850,7 @@ END
|
|
766
850
|
force_debug: false
|
767
851
|
}.merge(options)
|
768
852
|
@on_create_called = false
|
853
|
+
@target_loading = true
|
769
854
|
if options[:reload]
|
770
855
|
@target_load_count = 0
|
771
856
|
else
|
@@ -814,7 +899,7 @@ END
|
|
814
899
|
end
|
815
900
|
listeners_for(:after_load_target).each(&:after_load_target)
|
816
901
|
Origen.app.plugins.validate_production_status
|
817
|
-
|
902
|
+
@target_loading = false
|
818
903
|
end
|
819
904
|
|
820
905
|
# Returns true if the on_create callback has already been called during a target load
|
@@ -900,6 +985,10 @@ END
|
|
900
985
|
@target_instantiated
|
901
986
|
end
|
902
987
|
|
988
|
+
def target_loading?
|
989
|
+
@target_loading || false
|
990
|
+
end
|
991
|
+
|
903
992
|
# Prepends the application name to the fail message and throws a RuntimeError exception.
|
904
993
|
# Very similar to the plain <code>fail</code> method with the addition of prepending the application name.
|
905
994
|
# Prepended message: 'Fail in app.name: '
|
@@ -956,7 +1045,7 @@ END
|
|
956
1045
|
# config.i18n.backend = MyBackend
|
957
1046
|
# end
|
958
1047
|
def add_lib_to_load_path! #:nodoc:
|
959
|
-
[root.join('lib'), root.join('vendor', 'lib')].each do |path|
|
1048
|
+
[root.join('lib'), root.join('vendor', 'lib'), root.join('app', 'lib')].each do |path|
|
960
1049
|
$LOAD_PATH.unshift(path.to_s) if File.exist?(path) && !$LOAD_PATH.include?(path.to_s)
|
961
1050
|
end
|
962
1051
|
end
|
data/lib/origen/boot/app.rb
CHANGED
@@ -193,10 +193,6 @@ end
|
|
193
193
|
if BIN_DEPS.any? { |bin, gem| !File.exist?(File.join(lbin_dir, bin)) }
|
194
194
|
system "bundle binstubs #{BIN_DEPS.map { |bin, gem| gem }.join(' ')} --path #{lbin_dir} --force"
|
195
195
|
end
|
196
|
-
if Origen.site_config.use_bootsnap && !Origen.os.windows?
|
197
|
-
ENV['BOOTSNAP_CACHE_DIR'] ||= "#{origen_root}/tmp/cache"
|
198
|
-
require 'bootsnap/setup'
|
199
|
-
end
|
200
196
|
end
|
201
197
|
require 'origen'
|
202
198
|
warnings
|
data/lib/origen/boot.rb
CHANGED
@@ -54,8 +54,9 @@ else
|
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
57
|
-
# Defer loading
|
57
|
+
# Defer loading these until we have re-launched above to save time
|
58
58
|
load File.expand_path('../site_config.rb', __FILE__)
|
59
|
+
load File.expand_path('../loader.rb', __FILE__)
|
59
60
|
|
60
61
|
warnings = nil
|
61
62
|
|