overrides_tracker 0.1.13 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +5 -5
- data/bin/overrides_tracker +1 -0
- data/lib/overrides_tracker/methods_collector.rb +52 -0
- data/lib/overrides_tracker/version.rb +1 -1
- data/overrides_tracker/branch_name#last_commit_id.otf +1 -1
- data/spec/overrides_tracker/methods_collector_spec.rb +30 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 43cf4d931371c4f3781a672310dc100f2a6ec14ebff9d75113c3d0d1b5c336fb
|
4
|
+
data.tar.gz: ab49ef6c8b619543497708efd105451ad718450900a0d171ff2dde092b045239
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d84a9f391b0c4b25fe4f6c661fe001eb081265b8adb8d03913481382e9387e86598aa90dff56b16808ab5793a7f493cd88e0a86f3bd2ecdaefb8fc5b86d1f362
|
7
|
+
data.tar.gz: 7fd010bfa2cc019ff906bbe192005deaf43234f9772f27c5eed835ac031ae7679cff57662f840b5a4a102257c4a6cbb8f9c9767af90e28c13d06763724f1f590
|
data/Gemfile.lock
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
overrides_tracker (0.1.
|
4
|
+
overrides_tracker (0.1.13)
|
5
5
|
activesupport
|
6
6
|
method_source
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
|
-
activesupport (6.1.7)
|
11
|
+
activesupport (6.1.7.2)
|
12
12
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
13
13
|
i18n (>= 1.6, < 2)
|
14
14
|
minitest (>= 5.1)
|
@@ -17,7 +17,7 @@ GEM
|
|
17
17
|
addressable (2.8.1)
|
18
18
|
public_suffix (>= 2.0.2, < 6.0)
|
19
19
|
ast (2.4.2)
|
20
|
-
concurrent-ruby (1.
|
20
|
+
concurrent-ruby (1.2.0)
|
21
21
|
coveralls_reborn (0.25.0)
|
22
22
|
simplecov (>= 0.18.1, < 0.22.0)
|
23
23
|
term-ansicolor (~> 1.6)
|
@@ -32,7 +32,7 @@ GEM
|
|
32
32
|
concurrent-ruby (~> 1.0)
|
33
33
|
json (2.6.3)
|
34
34
|
method_source (1.0.0)
|
35
|
-
minitest (5.
|
35
|
+
minitest (5.17.0)
|
36
36
|
parallel (1.22.1)
|
37
37
|
parser (3.1.3.0)
|
38
38
|
ast (~> 2.4.1)
|
@@ -81,7 +81,7 @@ GEM
|
|
81
81
|
thor (1.2.1)
|
82
82
|
tins (1.32.1)
|
83
83
|
sync
|
84
|
-
tzinfo (2.0.
|
84
|
+
tzinfo (2.0.6)
|
85
85
|
concurrent-ruby (~> 1.0)
|
86
86
|
unicode-display_width (2.3.0)
|
87
87
|
vcr (6.1.0)
|
data/bin/overrides_tracker
CHANGED
@@ -29,6 +29,7 @@ if ARGV[0] == 'track'
|
|
29
29
|
end
|
30
30
|
|
31
31
|
OverridesTracker::MethodsCollector.instance.build_overrides_hash
|
32
|
+
OverridesTracker::MethodsCollector.instance.summarize_overrides
|
32
33
|
OverridesTracker::MethodsCollector.instance.save_to_file
|
33
34
|
|
34
35
|
if ENV['OVERRIDES_API_TOKEN']
|
@@ -140,6 +140,58 @@ overriding_method.source_location
|
|
140
140
|
data
|
141
141
|
end
|
142
142
|
|
143
|
+
def summarize_overrides
|
144
|
+
puts ""
|
145
|
+
puts "==========================================================================================="
|
146
|
+
puts ""
|
147
|
+
puts ""
|
148
|
+
puts "SUMMARY"
|
149
|
+
puts ""
|
150
|
+
@overridden_methods_collection.each do |class_name, class_methods|
|
151
|
+
class_methods[:instance_methods].each do |method_name, method_hash|
|
152
|
+
show_override(class_name, method_name, method_hash, '#', 'overridden')
|
153
|
+
end
|
154
|
+
class_methods[:singleton_methods].each do |method_name, method_hash|
|
155
|
+
show_override(class_name, method_name, method_hash, '.', 'overridden')
|
156
|
+
end
|
157
|
+
class_methods[:added_instance_methods].each do |method_name, method_hash|
|
158
|
+
show_override(class_name, method_name, method_hash, '#', 'added')
|
159
|
+
end
|
160
|
+
class_methods[:added_singleton_methods].each do |method_name, method_hash|
|
161
|
+
show_override(class_name, method_name, method_hash, '.', 'added')
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
def show_override(class_name, method_name, method_hash, separator = '#', word_choice = 'overridden')
|
167
|
+
|
168
|
+
puts ""
|
169
|
+
puts "==========================================================================================="
|
170
|
+
puts ""
|
171
|
+
|
172
|
+
puts "#{class_name}#{separator}#{method_name} was #{word_choice}."
|
173
|
+
unless method_hash[:body].nil?
|
174
|
+
puts "-------------------------------------------------------------------------------------------".pink
|
175
|
+
puts ''
|
176
|
+
puts 'Original:'.italic
|
177
|
+
puts ''
|
178
|
+
puts "#{method_hash[:body]}".pink
|
179
|
+
puts ''
|
180
|
+
puts "in #{method_hash[:location][0]}:#{method_hash[:location][1]}".italic
|
181
|
+
end
|
182
|
+
puts ''
|
183
|
+
puts ''
|
184
|
+
unless method_hash[:overriding_body].nil?
|
185
|
+
puts "-------------------------------------------------------------------------------------------".blue
|
186
|
+
puts ''
|
187
|
+
puts 'Override:'.italic
|
188
|
+
puts ''
|
189
|
+
puts "#{method_hash[:overriding_body]}".blue
|
190
|
+
puts ''
|
191
|
+
puts "in: #{method_hash[:overriding_location][0]}:#{method_hash[:overriding_location][1]}".italic
|
192
|
+
end
|
193
|
+
end
|
194
|
+
|
143
195
|
def save_to_file
|
144
196
|
file_data = {}
|
145
197
|
file_data[:version] = OverridesTracker::VERSION
|
@@ -1 +1 @@
|
|
1
|
-
{"version":"0.1.
|
1
|
+
{"version":"0.1.13","branch_name":"branch_name","author_name":"author_name","committer_name":"committer_name","branch_name_to_report":"master","last_commit_id":"last_commit_id","last_commit_name":"last_commit_name","last_commit_name_to_report":"last_commit_name_to_report","working_directory":"/Users/simonmeyborg/Documents/syborgstudios/projects/overrides_tracker","bundle_path":"/Library/Ruby/Gems/2.6.0","methods_collection":{"CustomClass":{"instance_methods":{"instance_test_method":{"sha":"3408e1f1736c6b83bc13f014e5338eec0c67393f","location":["/Users/simonmeyborg/Documents/syborgstudios/projects/overrides_tracker/spec/test_classes/custom_class.rb",10],"body":"def instance_test_method\n 'instance_test_method'\nend\n","is_part_of_app":true,"overriding_location":["/Users/simonmeyborg/Documents/syborgstudios/projects/overrides_tracker/spec/test_classes/custom_class.rb",14],"overriding_body":"def instance_override_test_method\n 'instance_override_test_method'\nend\n","overriding_sha":"75cf2b21c3033f33c155a329d8e9110ae3fb0290","overriding_is_part_of_app":true}},"singleton_methods":{},"added_instance_methods":{},"added_singleton_methods":{}}},"number_of_methods":1,"number_of_methods_in_app_path":1,"number_of_classes":1,"number_of_classes_in_app_path":1}
|
@@ -99,6 +99,33 @@ describe OverridesTracker::MethodsCollector do
|
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
102
|
+
describe '#summarize_overrides' do
|
103
|
+
let(:instance_method) { CustomClass.instance_method(:instance_test_method) }
|
104
|
+
let(:singleton_method) { CustomClass.singleton_method(:singleton_test_method) }
|
105
|
+
let(:added_instance_method) { CustomClass.instance_method(:instance_added_test_method) }
|
106
|
+
let(:added_singleton_method) { CustomClass.singleton_method(:singleton_added_test_method) }
|
107
|
+
|
108
|
+
before do
|
109
|
+
obj.instance_variable_set(:@methods_collection, nil)
|
110
|
+
obj.instance_variable_set(:@overridden_methods_collection, nil)
|
111
|
+
obj.add_method_for_class(:singleton_methods, 'CustomClass', :singleton_test_method, OverridesTracker::Util.method_hash(singleton_method))
|
112
|
+
obj.add_method_for_class(:instance_methods, 'CustomClass', :instance_test_method, OverridesTracker::Util.method_hash(instance_method))
|
113
|
+
obj.mark_method_as_override(:singleton_methods, 'CustomClass', :singleton_test_method, singleton_method, OverridesTracker::Util.method_hash(singleton_method))
|
114
|
+
obj.mark_method_as_override(:instance_methods, 'CustomClass', :instance_test_method, instance_method, OverridesTracker::Util.method_hash(instance_method))
|
115
|
+
obj.mark_method_as_added(:added_singleton_methods, 'CustomClass', :singleton_added_test_method, added_singleton_method, OverridesTracker::Util.method_hash(added_singleton_method))
|
116
|
+
obj.mark_method_as_added(:added_instance_methods, 'CustomClass', :instance_added_test_method, added_instance_method, OverridesTracker::Util.method_hash(added_instance_method))
|
117
|
+
end
|
118
|
+
|
119
|
+
it 'calls show_override for each overridden method' do
|
120
|
+
expect(obj).to receive(:show_override).with('CustomClass', :instance_test_method, {:sha=>"3408e1f1736c6b83bc13f014e5338eec0c67393f", :location=>["#{WORKING_DIR}/spec/test_classes/custom_class.rb", 10], :body=>"def instance_test_method\n 'instance_test_method'\nend\n", :is_part_of_app=>true, :overriding_location=>["#{WORKING_DIR}/spec/test_classes/custom_class.rb", 10], :overriding_body=>"def instance_test_method\n 'instance_test_method'\nend\n", :overriding_sha=>"3408e1f1736c6b83bc13f014e5338eec0c67393f", :overriding_is_part_of_app=>true},'#', 'overridden').once.and_call_original
|
121
|
+
expect(obj).to receive(:show_override).with('CustomClass', :singleton_test_method, {:sha=>"1e331d1bb802e5d0a21a6c18f574f6ceecb4bc91", :location=>["#{WORKING_DIR}/spec/test_classes/custom_class.rb", 6], :body=>"def self.singleton_test_method\n 'singleton_test_method'\nend\n", :is_part_of_app=>true, :overriding_location=>["#{WORKING_DIR}/spec/test_classes/custom_class.rb", 6], :overriding_body=>"def self.singleton_test_method\n 'singleton_test_method'\nend\n", :overriding_sha=>"1e331d1bb802e5d0a21a6c18f574f6ceecb4bc91", :overriding_is_part_of_app=>true},'.', 'overridden').once.and_call_original
|
122
|
+
expect(obj).to receive(:show_override).with('CustomClass', :instance_added_test_method, {:sha=>"5d7709e9d44e9f718cca1876a4fdec82bbe3cf4e", :location=>["#{WORKING_DIR}/spec/test_classes/custom_class.rb", 18], :body=>"def instance_added_test_method\n 'instance_added_test_method'\nend\n", :is_part_of_app=>true, :overriding_location=>["#{WORKING_DIR}/spec/test_classes/custom_class.rb", 18], :overriding_is_part_of_app=>true},'#', 'added').once.and_call_original
|
123
|
+
expect(obj).to receive(:show_override).with('CustomClass', :singleton_added_test_method, {:sha=>"ba6efb2d378551e55ee53660d25b266b3c515da3", :location=>["#{WORKING_DIR}/spec/test_classes/custom_class.rb", 22], :body=>"def self.singleton_added_test_method\n 'singleton_added_test_method'\nend\n", :is_part_of_app=>true, :overriding_location=>["#{WORKING_DIR}/spec/test_classes/custom_class.rb", 22], :overriding_is_part_of_app=>true},'.', 'added').once.and_call_original
|
124
|
+
|
125
|
+
obj.summarize_overrides
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
102
129
|
describe 'save and load_from_file' do
|
103
130
|
let(:method) { CustomClass.instance_method(:instance_test_method) }
|
104
131
|
let(:overriding_method) { CustomClass.instance_method(:instance_override_test_method) }
|
@@ -115,6 +142,7 @@ describe OverridesTracker::MethodsCollector do
|
|
115
142
|
allow(obj).to receive(:committer_name).and_return('committer_name')
|
116
143
|
|
117
144
|
obj.instance_variable_set(:@methods_collection, nil)
|
145
|
+
obj.instance_variable_set(:@overridden_methods_collection, nil)
|
118
146
|
obj.add_method_for_class(:instance_methods, 'CustomClass', :instance_test_method, OverridesTracker::Util.method_hash(method))
|
119
147
|
obj.mark_method_as_override(:instance_methods, 'CustomClass', :instance_test_method, overriding_method, OverridesTracker::Util.method_hash(overriding_method))
|
120
148
|
obj.save_to_file
|
@@ -125,8 +153,9 @@ describe OverridesTracker::MethodsCollector do
|
|
125
153
|
obj.instance_variable_set(:@overridden_methods_collection, nil)
|
126
154
|
|
127
155
|
data = obj.load_from_file(file_name)
|
156
|
+
|
128
157
|
expect(data).to eq(
|
129
|
-
{"branch_name" => "branch_name","branch_name_to_report" => "master","bundle_path" => Bundler.bundle_path.to_s, "author_name" => "author_name", "committer_name" => "committer_name","last_commit_id" => "last_commit_id","last_commit_name" => "last_commit_name","last_commit_name_to_report" => "last_commit_name_to_report","methods_collection" => {"CustomClass"
|
158
|
+
{"branch_name" => "branch_name","branch_name_to_report" => "master","bundle_path" => Bundler.bundle_path.to_s, "author_name" => "author_name", "committer_name" => "committer_name","last_commit_id" => "last_commit_id","last_commit_name" => "last_commit_name","last_commit_name_to_report" => "last_commit_name_to_report","methods_collection" => {"CustomClass"=>{"added_instance_methods"=>{}, "added_singleton_methods"=>{}, "instance_methods"=>{"instance_test_method"=>{"body"=>"def instance_test_method\n 'instance_test_method'\nend\n", "is_part_of_app"=>true, "location"=>["#{WORKING_DIR}/spec/test_classes/custom_class.rb", 10], "overriding_body"=>"def instance_override_test_method\n 'instance_override_test_method'\nend\n", "overriding_is_part_of_app"=>true, "overriding_location"=>["#{WORKING_DIR}/spec/test_classes/custom_class.rb", 14], "overriding_sha"=>"75cf2b21c3033f33c155a329d8e9110ae3fb0290", "sha"=>"3408e1f1736c6b83bc13f014e5338eec0c67393f"}}, "singleton_methods"=>{}}}, "version" => "#{OverridesTracker::VERSION}", "working_directory" => Dir.pwd,"number_of_classes" => 1, "number_of_classes_in_app_path" => 1, "number_of_methods" => 1, "number_of_methods_in_app_path" => 1})
|
130
159
|
end
|
131
160
|
|
132
161
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: overrides_tracker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Simon Meyborg
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|