File: run_tua.rb

package info (click to toggle)
ruby-sequel 5.63.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 10,408 kB
  • sloc: ruby: 113,747; makefile: 3
file content (43 lines) | stat: -rw-r--r-- 1,307 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
$:.unshift(File.expand_path('../../../lib', File.dirname(__FILE__)))
require 'json'
require 'coverage'

Coverage.start(methods: true)

require 'sequel'
DB = Sequel.mock(:columns=>[:id, :t_id], :fetch=>{:id=>1, :t_id=>2}, :numrows=>1)

opts = ENV['PLUGIN_OPTS'] ? Sequel.parse_json(ENV['PLUGIN_OPTS']).transform_keys(&:to_sym) : {}
Sequel::Model.plugin :unused_associations, opts

require_relative 'tua'

eval($stdin.read)

begin
  cov_data = if ENV['NO_COVERAGE_RESULT']
    Sequel::Model.update_associations_coverage
  else
    Sequel::Model.update_associations_coverage(coverage_result: Coverage.result)
  end

  data = if ENV['NO_COVERAGE_DATA']
    Sequel::Model.update_unused_associations_data
  elsif ENV['KEEP_COVERAGE']
    Sequel::Model.update_unused_associations_data(:keep_coverage=>true)
  else
    Sequel::Model.update_unused_associations_data(coverage_data: cov_data)
  end

  result = if ENV['NO_DATA']
    [Sequel::Model.unused_associations.sort,
     Sequel::Model.unused_association_options.sort]
  else
    [Sequel::Model.unused_associations(unused_associations_data: data).sort,
     Sequel::Model.unused_association_options(unused_associations_data: data).sort]
  end
rescue => e
  result = "#{e.class}: #{e.message}\n#{e.backtrace.join("\n")}"
end

print Sequel.object_to_json(result)