@@ -15,41 +15,26 @@ def problems
15
15
end
16
16
17
17
def determine_problems
18
- problems = { }
19
-
20
- gems . each do |name , version |
18
+ gems . flat_map do |name , version |
21
19
next if ignore_gem? ( name )
22
20
next if exclude_because_of_only_list? ( name )
23
21
24
- key = "#{ name } -#{ version } "
22
+ key = "#{ name } -#{ version } -cache-bust-1 "
25
23
26
24
gem_problems = cache ( key ) do
27
25
find_gem_problems ( name , version )
28
26
end
29
27
30
- gem_problems = objectify ( gem_problems )
31
-
32
- problems [ key ] = gem_problems if gem_problems . any?
28
+ objectify ( name , version , gem_problems )
33
29
end
34
-
35
- puts problems
36
-
37
- problems
38
30
end
39
31
40
- def objectify ( gem_problems )
41
- gem_problems . flat_map do |filename , file_problems |
42
- file_problems . map do |problem |
43
- Problem . new (
44
- gem_name : name ,
45
- gem_version : version ,
46
- type : problem [ :type ] ,
47
- filename : filename ,
48
- line_number : problem [ :line_number ] ,
49
- code : problem [ :name ] . to_s ,
50
- out_of_date : outdated_gems . include? ( name )
51
- )
52
- end
32
+ def objectify ( name , version , gem_problems )
33
+ gem_problems . map do |problem |
34
+ problem . gem_name = name
35
+ problem . gem_version = version
36
+ problem . out_of_date = outdated_gems . include? ( name )
37
+ problem
53
38
end
54
39
end
55
40
@@ -74,19 +59,23 @@ def ignore_list
74
59
@ignore_list ||= ProblematicVariableFinder . read_file ( File . expand_path ( 'DEFAULT_IGNORED_GEMS' , __dir__ ) ) . split ( "\n " ) . map ( &:strip )
75
60
end
76
61
77
- def outdated_gems
62
+ def outdated_gems
63
+ byebug
78
64
@outdated_gems ||= outdated . map { |o | o . gsub ( /\s +\* \s +/ , '' ) . split ( " " ) . first }
79
65
end
80
66
81
67
def outdated
82
- @outdated ||= cache ( 'BUNDLE_OUT_OF_DATE_INFO' ) do
83
- `bundle outdated` . split ( "\n " ) . grep ( / \* / ) . reject do |s |
84
- s [ 'development' ] ||
85
- s [ 'test' ]
68
+ @outdated ||= cache ( "BUNDLE_OUT_OF_DATE_INFO_#{ gemfile_lock_sha } " ) do
69
+ `bundle outdated --group default --group production` . split ( "\n " ) . map do |s |
70
+ s . split ( " " ) . map ( &:strip ) . first
86
71
end
87
72
end
88
73
end
89
74
75
+ def gemfile_lock_sha
76
+ Digest ::SHA1 . hexdigest ( ProblematicVariableFinder . read_file ( 'Gemfile.lock' ) )
77
+ end
78
+
90
79
def find_gem_problems ( name , version )
91
80
directory = "#{ gem_path } /#{ name } -#{ version } /"
92
81
folder = gem_path + '/' + [ name , version ] . join ( '-' ) + '/'
0 commit comments