Module: AppMap::Depends
- Extended by:
- Depends
- Included in:
- Depends
- Defined in:
- lib/appmap_depends.rb,
lib/appmap/depends/api.rb,
lib/appmap/depends/util.rb,
lib/appmap/depends/version.rb,
lib/appmap/depends/git_diff.rb,
lib/appmap/depends/appmap_js.rb,
lib/appmap/depends/command_error.rb,
lib/appmap/depends/appmap_js_depends.rb,
lib/appmap/depends/test_file_inspector.rb
Defined Under Namespace
Modules: AppMapJS, Util Classes: AppMapJSDepends, CommandError, GitDiff, TestFileInspector
Constant Summary collapse
- DEFAULT_APPMAP_DIR =
Default directory to scan for appmap.s
File.join('tmp', 'appmap')
- DEFAULT_OUTPUT_FILE =
Default file to write Rake task results.
File.join('tmp', 'appmap_depends.txt')
- DEFAULT_BASE_BRANCHES =
Default base branches which will be checked for existance.
%w[remotes/origin/main remotes/origin/master].freeze
- DEFAULT_TEST_FILE_PATTERNS =
Default pattern to enumerate test cases.
[ 'spec/**/*_spec.rb', 'test/**/*_test.rb' ].freeze
- VERSION =
"0.3.0"
Class Method Summary collapse
Instance Method Summary collapse
- #diff(appmap_dir: DEFAULT_APPMAP_DIR, base_dir: nil, base_branches: DEFAULT_BASE_BRANCHES, base: nil, head: nil) ⇒ Object
- #inspect_test_files(appmap_dir: DEFAULT_APPMAP_DIR, test_file_patterns: DEFAULT_TEST_FILE_PATTERNS) ⇒ Object
- #modified(appmap_dir: DEFAULT_APPMAP_DIR, base_dir: nil) ⇒ Object
-
#remove_out_of_date_appmaps(since, appmap_dir: DEFAULT_APPMAP_DIR, base_dir: nil) ⇒ Object
Remove out-of-date AppMaps which are unmodified
since
the start time. - #report_list(title, files) ⇒ Object
- #run_tests(test_files, appmap_dir: DEFAULT_APPMAP_DIR) {|test_files| ... } ⇒ Object
Class Method Details
.verbose(arg = nil) ⇒ Object
14 15 16 17 |
# File 'lib/appmap_depends.rb', line 14 def self.verbose(arg = nil) @verbose = arg if arg @verbose end |
Instance Method Details
#diff(appmap_dir: DEFAULT_APPMAP_DIR, base_dir: nil, base_branches: DEFAULT_BASE_BRANCHES, base: nil, head: nil) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/appmap/depends/api.rb', line 15 def diff(appmap_dir: DEFAULT_APPMAP_DIR, base_dir: nil, base_branches: DEFAULT_BASE_BRANCHES, base: nil, head: nil) diff = AppMap::Depends::GitDiff.new(base_branches: base_branches, base: base, head: head) modified_files = diff.modified_files depends = AppMap::Depends::AppMapJSDepends.new(appmap_dir) depends.base_dir = base_dir if base_dir test_files = depends.depends(modified_files) Set.new prune_directory_prefix(test_files) end |
#inspect_test_files(appmap_dir: DEFAULT_APPMAP_DIR, test_file_patterns: DEFAULT_TEST_FILE_PATTERNS) ⇒ Object
26 27 28 29 |
# File 'lib/appmap/depends/api.rb', line 26 def inspect_test_files(appmap_dir: DEFAULT_APPMAP_DIR, test_file_patterns: DEFAULT_TEST_FILE_PATTERNS) inspector = AppMap::Depends::TestFileInspector.new(appmap_dir, test_file_patterns) inspector.report end |
#modified(appmap_dir: DEFAULT_APPMAP_DIR, base_dir: nil) ⇒ Object
7 8 9 10 11 12 13 |
# File 'lib/appmap/depends/api.rb', line 7 def modified(appmap_dir: DEFAULT_APPMAP_DIR, base_dir: nil) depends = AppMap::Depends::AppMapJSDepends.new(appmap_dir) depends.base_dir = base_dir if base_dir test_files = depends.depends Set.new prune_directory_prefix(test_files) end |
#remove_out_of_date_appmaps(since, appmap_dir: DEFAULT_APPMAP_DIR, base_dir: nil) ⇒ Object
Remove out-of-date AppMaps which are unmodified since
the start time. This operation is used to remove AppMaps that were previously generated from a test case that has been removed from a test file.
-
since
an instance of Time
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/appmap/depends/api.rb', line 48 def remove_out_of_date_appmaps(since, appmap_dir: DEFAULT_APPMAP_DIR, base_dir: nil) since_ms = ( since.to_f * 1000 ).to_i depends = AppMap::Depends::AppMapJSDepends.new(appmap_dir) depends.base_dir = base_dir if base_dir depends.field = nil out_of_date_appmaps = depends.depends removed = [] out_of_date_appmaps.each do |appmap_path| mtime_path = File.join(appmap_path, 'mtime') next unless File.exists?(mtime_path) appmap_mtime = File.read(mtime_path).to_i if appmap_mtime < since_ms Util.delete_appmap appmap_path removed << appmap_path end end removed.sort end |
#report_list(title, files) ⇒ Object
31 32 33 |
# File 'lib/appmap/depends/api.rb', line 31 def report_list(title, files) warn [ title, files.to_a.sort.join(' ') ].join(': ') unless files.empty? end |
#run_tests(test_files, appmap_dir: DEFAULT_APPMAP_DIR) {|test_files| ... } ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/appmap/depends/api.rb', line 35 def run_tests(test_files, appmap_dir: DEFAULT_APPMAP_DIR, &block) test_files = test_files.to_a.sort warn "Running tests: #{test_files.join(' ')}" yield test_files system(%(./node_modules/@appland/cli/src/cli.js index --appmap-dir #{appmap_dir.shellescape})) end |