@@ -22,30 +22,30 @@ class MigrationClassName < Base
22
22
extend AutoCorrector
23
23
include MigrationsHelper
24
24
25
- MSG = 'Replace with `%<corrected_class_name >s` that matches the file name.'
25
+ MSG = 'Replace with `%<camelized_basename >s` that matches the file name.'
26
26
27
27
def on_class ( node )
28
28
return unless migration_class? ( node )
29
29
30
- snake_class_name = to_snakecase ( node . identifier . source )
30
+ basename = basename_without_timestamp_and_suffix ( processed_source . file_path )
31
31
32
- basename = basename_without_timestamp_and_suffix
33
- return if snake_class_name == basename
32
+ class_identifier = node . identifier
33
+ camelized_basename = camelize ( basename )
34
+ return if class_identifier . source . casecmp ( camelized_basename ) . zero?
34
35
35
- corrected_class_name = to_camelcase ( basename )
36
- message = format ( MSG , corrected_class_name : corrected_class_name )
36
+ message = format ( MSG , camelized_basename : camelized_basename )
37
37
38
- add_offense ( node . identifier , message : message ) do |corrector |
39
- corrector . replace ( node . identifier , corrected_class_name )
38
+ add_offense ( class_identifier , message : message ) do |corrector |
39
+ corrector . replace ( class_identifier , camelized_basename )
40
40
end
41
41
end
42
42
43
43
private
44
44
45
- def basename_without_timestamp_and_suffix
46
- filepath = processed_source . file_path
45
+ def basename_without_timestamp_and_suffix ( filepath )
47
46
basename = File . basename ( filepath , '.rb' )
48
47
basename = remove_gem_suffix ( basename )
48
+
49
49
basename . sub ( /\A \d +_/ , '' )
50
50
end
51
51
@@ -54,17 +54,9 @@ def remove_gem_suffix(file_name)
54
54
file_name . sub ( /\. .+\z / , '' )
55
55
end
56
56
57
- def to_camelcase ( word )
57
+ def camelize ( word )
58
58
word . split ( '_' ) . map ( &:capitalize ) . join
59
59
end
60
-
61
- def to_snakecase ( word )
62
- word
63
- . gsub ( /([A-Z\d ]+)([A-Z][a-z])/ , '\1_\2' )
64
- . gsub ( /([a-z\d ])([A-Z])/ , '\1_\2' )
65
- . tr ( '-' , '_' )
66
- . downcase
67
- end
68
60
end
69
61
end
70
62
end
0 commit comments