music_metadata_score 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,30 +1,32 @@
1
- class Publisher
2
-
3
- def self.are_proper_format?(publishers)
4
- if publishers && publishers != []
5
- Publisher.loop_publishers(publishers)
6
- else
7
- false
1
+ module MusicMetadataScore
2
+ class Publisher
3
+
4
+ def self.are_proper_format?(publishers)
5
+ if publishers && publishers != []
6
+ MusicMetadataScore::Publisher.loop_publishers(publishers)
7
+ else
8
+ false
9
+ end
8
10
  end
9
- end
10
-
11
- def self.loop_publishers(publishers)
12
- value = true
13
- publishers.each do |c|
14
- if !Publisher.is_proper_format?(c)
15
- value = false
16
- break
11
+
12
+ def self.loop_publishers(publishers)
13
+ value = true
14
+ publishers.each do |c|
15
+ if !MusicMetadataScore::Publisher.is_proper_format?(c)
16
+ value = false
17
+ break
18
+ end
17
19
  end
20
+ value
18
21
  end
19
- value
20
- end
21
-
22
- def self.is_proper_format?(publisher)
23
- if publisher && publisher != ""
24
- true
25
- else
26
- false
22
+
23
+ def self.is_proper_format?(publisher)
24
+ if publisher && publisher != ""
25
+ true
26
+ else
27
+ false
28
+ end
27
29
  end
30
+
28
31
  end
29
-
30
32
  end
@@ -1,245 +1,249 @@
1
- class Score
2
-
3
- # Product level scores
4
- def self.product_score(metadata)
5
- score = Score.product_fields_exist(metadata) + Score.product_fields_quality(metadata)
6
- percent = score.to_f / 87 * 100
7
- return percent.round(1)
8
- end
9
-
10
- def self.product_fields_exist(metadata)
11
- score = 0
12
- score += 2 if !Score.object_is_blank?(metadata[:title])
13
- score += 2 if !Score.object_is_blank?(metadata[:cat_no])
14
- score += 2 if !Score.object_is_blank?(metadata[:barcode])
15
- score += 2 if !Score.object_is_blank?(metadata[:label])
16
- score += 2 if !Score.object_is_blank?(metadata[:primary_artists])
17
- score += 2 if !Score.object_is_blank?(metadata[:release_date])
18
- score += 1 if !Score.object_is_blank?(metadata[:original_release_date])
19
- score += 2 if !Score.object_is_blank?(metadata[:p_year])
20
- score += 2 if !Score.object_is_blank?(metadata[:p_line])
21
- score += 2 if !Score.object_is_blank?(metadata[:c_year])
22
- score += 2 if !Score.object_is_blank?(metadata[:c_line])
23
- score += 2 if !Score.object_is_blank?(metadata[:parental_advisory])
24
- score += 1 if !Score.object_is_blank?(metadata[:live])
25
- score += 1 if !Score.object_is_blank?(metadata[:remastered])
26
- score += 2 if !Score.object_is_blank?(metadata[:type])
27
- score += 2 if !Score.object_is_blank?(metadata[:media])
28
- score += 2 if !Score.object_is_blank?(metadata[:format])
29
- score += 2 if !Score.object_is_blank?(metadata[:primary_genre])
30
- score += 1 if !Score.object_is_blank?(metadata[:secondary_genre])
31
- score += 1 if !Score.object_is_blank?(metadata[:description])
32
- return score
33
- end
34
-
35
- def self.product_fields_quality(metadata)
36
- score = 0
37
- score += 10 if TitleCase.is_proper_title_format?(metadata[:title], metadata[:primary_artists], metadata[:featuring_artists])
38
- score += 10 if MusicMetadataScore.is_title_case?(metadata[:version])
39
- score += 5 if MusicMetadataScore.valid_barcode?(metadata[:barcode])
40
- score += 2 if MusicMetadataScore.is_title_case?(metadata[:label])
41
- score += 5 if MusicMetadataScore.is_title_case?(metadata[:p_line])
42
- score += 5 if MusicMetadataScore.is_title_case?(metadata[:c_line])
43
- score += 10 if Artist.are_proper_artist_format?(metadata[:primary_artists], false, :product)
44
- score += 5 if Artist.are_proper_artist_format?(metadata[:featuring_artists], false, :product)
45
- return score
46
- end
47
-
48
- def self.product_fields_corrected(metadata)
49
- titles = TitleCase.build_proper_title(metadata[:title], metadata[:version], metadata[:primary_artists], metadata[:featuring_artists])
50
- {
51
- :title => titles[:title],
52
- :version => titles[:version],
53
- :cat_no => metadata[:cat_no].upcase,
54
- :barcode => Barcode.valid_barcode_or_nil(metadata[:barcode]),
55
- :label => TitleCase.title_case(metadata[:label]),
56
- :primary_artists => Artist.format_artists(metadata[:primary_artists], false, :product),
57
- :featuring_artists => Artist.format_artists(metadata[:featuring_artists], false, :product),
58
- :release_date => metadata[:release_date],
59
- :original_release_date => metadata[:original_release_date],
60
- :p_year => metadata[:p_year],
61
- :p_line => TitleCase.title_case(metadata[:p_line]),
62
- :c_year => metadata[:c_year],
63
- :c_line => TitleCase.title_case(metadata[:c_line]),
64
- :parental_advisory => metadata[:parental_advisory],
65
- :live => metadata[:live],
66
- :remastered => metadata[:remastered],
67
- :type => metadata[:type],
68
- :media => metadata[:media],
69
- :format => metadata[:format],
70
- :primary_genre => TitleCase.title_case(metadata[:primary_genre]),
71
- :secondary_genre => TitleCase.title_case(metadata[:secondary_genre]),
72
- :description => metadata[:description]
73
- }
74
- end
75
-
76
- # Track level scores
77
- def self.track_score(metadata)
78
- score = Score.track_fields_exist(metadata) + Score.track_fields_quality(metadata)
79
- percent = score.to_f / 107 * 100
80
- return percent.round(1)
81
- end
82
-
83
- def self.track_fields_exist(metadata)
84
- score = 0
85
- score += 2 if !Score.object_is_blank?(metadata[:title])
86
- score += 2 if !Score.object_is_blank?(metadata[:isrc])
87
- score += 2 if !Score.object_is_blank?(metadata[:primary_artists])
88
- score += 2 if !Score.object_is_blank?(metadata[:p_year])
89
- score += 2 if !Score.object_is_blank?(metadata[:p_line])
90
- score += 2 if !Score.object_is_blank?(metadata[:parental_advisory])
91
- score += 2 if !Score.object_is_blank?(metadata[:primary_genre])
92
- score += 2 if !Score.object_is_blank?(metadata[:secondary_genre])
93
- score += 2 if !Score.object_is_blank?(metadata[:recording_year])
94
- score += 2 if !Score.object_is_blank?(metadata[:recording_country])
95
- score += 2 if !Score.object_is_blank?(metadata[:recording_location])
96
- score += 2 if !Score.object_is_blank?(metadata[:country_of_commission])
97
- score += 2 if !Score.object_is_blank?(metadata[:rights_holder])
98
- score += 2 if !Score.object_is_blank?(metadata[:contributors])
99
- score += 2 if !Score.object_is_blank?(metadata[:composers])
100
- score += 2 if !Score.object_is_blank?(metadata[:publishers])
101
- return score
102
- end
103
-
104
- def self.track_fields_quality(metadata)
105
- score = 0
106
- score += 10 if TitleCase.is_proper_title_format?(metadata[:title], metadata[:primary_artists], metadata[:featuring_artists])
107
- score += 10 if MusicMetadataScore.is_title_case?(metadata[:version])
108
- score += 5 if MusicMetadataScore.valid_isrc?(metadata[:isrc])
109
- score += 5 if MusicMetadataScore.is_title_case?(metadata[:p_line])
110
- score += 10 if Artist.are_proper_artist_format?(metadata[:primary_artists], false, :product)
111
- score += 5 if Artist.are_proper_artist_format?(metadata[:featuring_artists], false, :product)
112
- score += 10 if Contributor.are_proper_format?(metadata[:contributors])
113
- score += 10 if Composer.are_proper_format?(metadata[:composers])
114
- score += 10 if Publisher.are_proper_format?(metadata[:publishers])
115
- return score
116
- end
117
-
118
- def self.track_fields_corrected(metadata)
119
- titles = TitleCase.build_proper_title(metadata[:title], metadata[:version], metadata[:primary_artists], metadata[:featuring_artists])
120
- {
121
- :title => titles[:title],
122
- :version => titles[:version],
123
- :isrc => Isrc.valid_isrc_or_nil(metadata[:isrc]),
124
- :primary_artists => Artist.format_artists(metadata[:primary_artists], false, :track),
125
- :featuring_artists => Artist.format_artists(metadata[:featuring_artists], false, :track),
126
- :p_year => metadata[:p_year],
127
- :p_line => TitleCase.title_case(metadata[:p_line]),
128
- :parental_advisory => metadata[:parental_advisory],
129
- :primary_genre => TitleCase.title_case(metadata[:primary_genre]),
130
- :secondary_genre => TitleCase.title_case(metadata[:secondary_genre]),
131
- :recording_year => metadata[:recording_year],
132
- :recording_country => metadata[:recording_country],
133
- :recording_location => metadata[:recording_location],
134
- :country_of_commission => metadata[:country_of_commission],
135
- :rights_holder => metadata[:rights_holder],
136
- :contributors => metadata[:contributors],
137
- :composers => metadata[:composers],
138
- :publishers => metadata[:publishers]
139
- }
140
- end
141
-
142
- def self.object_is_blank?(value)
143
- if value != nil && value != "" && value != [] && value != {}
144
- false
145
- else
146
- true
1
+ module MusicMetadataScore
2
+ class Score
3
+
4
+ # Product level scores
5
+ def self.product_score(metadata)
6
+ score = MusicMetadataScore::Score.product_fields_exist(metadata) + MusicMetadataScore::Score.product_fields_quality(metadata)
7
+ percent = score.to_f / 87 * 100
8
+ return percent.round(1)
147
9
  end
148
- end
149
-
150
- # Total Product Score
151
- def self.total_product_score(metadata)
152
- product_score = Score.product_score(metadata[:product])
153
- tracks_score = Score.tracks_score(metadata[:tracks])
154
- final_score = (product_score + tracks_score) / (metadata[:tracks].count + 1)
155
- return final_score.round(1)
156
- end
157
-
158
- def self.tracks_score(tracks)
159
- tracks_score = 0
160
- if tracks
161
- tracks.each do |t|
162
- tracks_score += Score.track_score(t)
10
+
11
+ def self.product_fields_exist(metadata)
12
+ score = 0
13
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:title])
14
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:cat_no])
15
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:barcode])
16
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:label])
17
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:primary_artists])
18
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:release_date])
19
+ score += 1 if !MusicMetadataScore::Score.object_is_blank?(metadata[:original_release_date])
20
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:p_year])
21
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:p_line])
22
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:c_year])
23
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:c_line])
24
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:parental_advisory])
25
+ score += 1 if !MusicMetadataScore::Score.object_is_blank?(metadata[:live])
26
+ score += 1 if !MusicMetadataScore::Score.object_is_blank?(metadata[:remastered])
27
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:type])
28
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:media])
29
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:format])
30
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:primary_genre])
31
+ score += 1 if !MusicMetadataScore::Score.object_is_blank?(metadata[:secondary_genre])
32
+ score += 1 if !MusicMetadataScore::Score.object_is_blank?(metadata[:description])
33
+ return score
34
+ end
35
+
36
+ def self.product_fields_quality(metadata)
37
+ score = 0
38
+ score += 10 if MusicMetadataScore::TitleCase.is_proper_title_format?(metadata[:title], metadata[:primary_artists], metadata[:featuring_artists])
39
+ score += 10 if MusicMetadataScore.is_title_case?(metadata[:version])
40
+ score += 5 if MusicMetadataScore.valid_barcode?(metadata[:barcode])
41
+ score += 2 if MusicMetadataScore.is_title_case?(metadata[:label])
42
+ score += 5 if MusicMetadataScore.is_title_case?(metadata[:p_line])
43
+ score += 5 if MusicMetadataScore.is_title_case?(metadata[:c_line])
44
+ score += 10 if MusicMetadataScore::Artist.are_proper_artist_format?(metadata[:primary_artists], false, :product)
45
+ score += 5 if MusicMetadataScore::Artist.are_proper_artist_format?(metadata[:featuring_artists], false, :product)
46
+ return score
47
+ end
48
+
49
+ def self.product_fields_corrected(metadata)
50
+ titles = MusicMetadataScore::TitleCase.build_proper_title(metadata[:title], metadata[:version], metadata[:primary_artists], metadata[:featuring_artists])
51
+ {
52
+ :title => titles[:title],
53
+ :version => titles[:version],
54
+ :cat_no => metadata[:cat_no].upcase,
55
+ :barcode => MusicMetadataScore::Barcode.valid_barcode_or_nil(metadata[:barcode]),
56
+ :label => MusicMetadataScore::TitleCase.title_case(metadata[:label]),
57
+ :primary_artists => MusicMetadataScore::Artist.format_artists(metadata[:primary_artists], false, :product),
58
+ :featuring_artists => MusicMetadataScore::Artist.format_artists(metadata[:featuring_artists], false, :product),
59
+ :release_date => metadata[:release_date],
60
+ :original_release_date => metadata[:original_release_date],
61
+ :p_year => metadata[:p_year],
62
+ :p_line => MusicMetadataScore::TitleCase.title_case(metadata[:p_line]),
63
+ :c_year => metadata[:c_year],
64
+ :c_line => MusicMetadataScore::TitleCase.title_case(metadata[:c_line]),
65
+ :parental_advisory => metadata[:parental_advisory],
66
+ :live => metadata[:live],
67
+ :remastered => metadata[:remastered],
68
+ :type => metadata[:type],
69
+ :media => metadata[:media],
70
+ :format => metadata[:format],
71
+ :primary_genre => MusicMetadataScore::TitleCase.title_case(metadata[:primary_genre]),
72
+ :secondary_genre => MusicMetadataScore::TitleCase.title_case(metadata[:secondary_genre]),
73
+ :description => metadata[:description]
74
+ }
75
+ end
76
+
77
+ # Track level scores
78
+ def self.track_score(metadata)
79
+ score = MusicMetadataScore::Score.track_fields_exist(metadata) + MusicMetadataScore::Score.track_fields_quality(metadata)
80
+ percent = score.to_f / 107 * 100
81
+ return percent.round(1)
82
+ end
83
+
84
+ def self.track_fields_exist(metadata)
85
+ score = 0
86
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:title])
87
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:isrc])
88
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:primary_artists])
89
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:p_year])
90
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:p_line])
91
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:parental_advisory])
92
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:primary_genre])
93
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:secondary_genre])
94
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:recording_year])
95
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:recording_country])
96
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:recording_location])
97
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:country_of_commission])
98
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:rights_holder])
99
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:contributors])
100
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:composers])
101
+ score += 2 if !MusicMetadataScore::Score.object_is_blank?(metadata[:publishers])
102
+ return score
103
+ end
104
+
105
+ def self.track_fields_quality(metadata)
106
+ score = 0
107
+ score += 10 if MusicMetadataScore::TitleCase.is_proper_title_format?(metadata[:title], metadata[:primary_artists], metadata[:featuring_artists])
108
+ score += 10 if MusicMetadataScore.is_title_case?(metadata[:version])
109
+ score += 5 if MusicMetadataScore.valid_isrc?(metadata[:isrc])
110
+ score += 5 if MusicMetadataScore.is_title_case?(metadata[:p_line])
111
+ score += 10 if MusicMetadataScore::Artist.are_proper_artist_format?(metadata[:primary_artists], false, :product)
112
+ score += 5 if MusicMetadataScore::Artist.are_proper_artist_format?(metadata[:featuring_artists], false, :product)
113
+ score += 10 if MusicMetadataScore::Contributor.are_proper_format?(metadata[:contributors])
114
+ score += 10 if MusicMetadataScore::Composer.are_proper_format?(metadata[:composers])
115
+ score += 10 if MusicMetadataScore::Publisher.are_proper_format?(metadata[:publishers])
116
+ return score
117
+ end
118
+
119
+ def self.track_fields_corrected(metadata)
120
+ titles = MusicMetadataScore::TitleCase.build_proper_title(metadata[:title], metadata[:version], metadata[:primary_artists], metadata[:featuring_artists])
121
+ {
122
+ :title => titles[:title],
123
+ :version => titles[:version],
124
+ :isrc => MusicMetadataScore::Isrc.valid_isrc_or_nil(metadata[:isrc]),
125
+ :primary_artists => MusicMetadataScore::Artist.format_artists(metadata[:primary_artists], false, :track),
126
+ :featuring_artists => MusicMetadataScore::Artist.format_artists(metadata[:featuring_artists], false, :track),
127
+ :p_year => metadata[:p_year],
128
+ :p_line => MusicMetadataScore::TitleCase.title_case(metadata[:p_line]),
129
+ :parental_advisory => metadata[:parental_advisory],
130
+ :primary_genre => MusicMetadataScore::TitleCase.title_case(metadata[:primary_genre]),
131
+ :secondary_genre => MusicMetadataScore::TitleCase.title_case(metadata[:secondary_genre]),
132
+ :recording_year => metadata[:recording_year],
133
+ :recording_country => metadata[:recording_country],
134
+ :recording_location => metadata[:recording_location],
135
+ :country_of_commission => metadata[:country_of_commission],
136
+ :rights_holder => metadata[:rights_holder],
137
+ :contributors => metadata[:contributors],
138
+ :composers => metadata[:composers],
139
+ :publishers => metadata[:publishers]
140
+ }
141
+ end
142
+
143
+ def self.object_is_blank?(value)
144
+ if value != nil && value != "" && value != [] && value != {}
145
+ false
146
+ else
147
+ true
163
148
  end
164
149
  end
165
- return tracks_score
166
- end
167
-
168
- # Corrections
169
- def self.corrections(metadata)
170
- array = []
171
- array = Score.combine_arrays(array, Score.product_corrections(metadata[:product]))
172
- array = Score.combine_arrays(array, Score.tracks_corrections(metadata[:tracks]))
173
- end
174
-
175
- def self.product_corrections(metadata)
176
- array = []
177
- corrected_metadata = Score.product_fields_corrected(metadata)
178
- metadata.each do |m|
179
- error = Score.missing_or_corrected(m[0].to_s, m[1], corrected_metadata[m[0]])
180
- array << "Product " + error if error
181
- end
182
- array
183
- end
184
-
185
- def self.tracks_corrections(tracks)
186
- array = []
187
- tracks.each_with_index do |t, index|
188
- track_returned = Score.track_corrections(t)
189
- track_returned.each do |tr|
190
- array << "Track #{index + 1} #{tr}"
150
+
151
+ # Total Product Score
152
+ def self.total_product_score(metadata)
153
+ product_score = MusicMetadataScore::Score.product_score(metadata[:product])
154
+ tracks_score = MusicMetadataScore::Score.tracks_score(metadata[:tracks])
155
+ final_score = (product_score + tracks_score) / (metadata[:tracks].count + 1)
156
+ return final_score.round(1)
157
+ end
158
+
159
+ def self.tracks_score(tracks)
160
+ tracks_score = 0
161
+ if tracks
162
+ tracks.each do |t|
163
+ tracks_score += MusicMetadataScore::Score.track_score(t)
164
+ end
191
165
  end
166
+ return tracks_score
192
167
  end
193
- array
194
- end
195
-
196
- def self.track_corrections(metadata)
197
- array = []
198
- corrected_metadata = Score.track_fields_corrected(metadata)
199
- metadata.each do |m|
200
- error = Score.missing_or_corrected(m[0].to_s, m[1], corrected_metadata[m[0]])
201
- array << error if error
202
- end
203
- array
204
- end
205
-
206
- def self.missing_or_corrected(field, original, corrected)
207
- field = Score.format_field_name(field)
208
- is_or_are = Score.is_or_are(field)
209
- if original && original != "" && original != [] || original == false
210
- if original == corrected || corrected == ''
168
+
169
+ # Corrections
170
+ def self.corrections(metadata)
171
+ array = []
172
+ array = MusicMetadataScore::Score.combine_arrays(array, MusicMetadataScore::Score.product_corrections(metadata[:product]))
173
+ array = MusicMetadataScore::Score.combine_arrays(array, MusicMetadataScore::Score.tracks_corrections(metadata[:tracks]))
174
+ end
175
+
176
+ def self.product_corrections(metadata)
177
+ array = []
178
+ corrected_metadata = MusicMetadataScore::Score.product_fields_corrected(metadata)
179
+ metadata.each do |m|
180
+ error = MusicMetadataScore::Score.missing_or_corrected(m[0].to_s, m[1], corrected_metadata[m[0]])
181
+ array << "Product " + error if error
182
+ end
183
+ array
184
+ end
185
+
186
+ def self.tracks_corrections(tracks)
187
+ array = []
188
+ tracks.each_with_index do |t, index|
189
+ track_returned = MusicMetadataScore::Score.track_corrections(t)
190
+ track_returned.each do |tr|
191
+ array << "Track #{index + 1} #{tr}"
192
+ end
193
+ end
194
+ array
195
+ end
196
+
197
+ def self.track_corrections(metadata)
198
+ array = []
199
+ corrected_metadata = MusicMetadataScore::Score.track_fields_corrected(metadata)
200
+ metadata.each do |m|
201
+ error = MusicMetadataScore::Score.missing_or_corrected(m[0].to_s, m[1], corrected_metadata[m[0]])
202
+ array << error if error
203
+ end
204
+ array
205
+ end
206
+
207
+ def self.missing_or_corrected(field, original, corrected)
208
+ field = MusicMetadataScore::Score.format_field_name(field)
209
+ is_or_are = MusicMetadataScore::Score.is_or_are(field)
210
+ if original && original != "" && original != [] || original == false
211
+ if original == corrected || corrected == ''
212
+ nil
213
+ else
214
+ "#{field} #{is_or_are} incorrect. It should be #{corrected}"
215
+ end
216
+ elsif corrected == nil && field == 'Version' || field == 'Featuring Artists'
211
217
  nil
212
- else
218
+ elsif corrected != nil && field == 'Version' || field == 'Featuring Artists'
213
219
  "#{field} #{is_or_are} incorrect. It should be #{corrected}"
220
+ else
221
+ "#{field} #{is_or_are} missing"
214
222
  end
215
- elsif field == 'Version' || field == 'Featuring Artists'
216
- nil
223
+ end
224
+
225
+ def self.is_or_are(field)
226
+ if field[field.length - 1].downcase == 's'
227
+ 'are'
217
228
  else
218
- "#{field} #{is_or_are} missing"
229
+ 'is'
219
230
  end
220
- end
221
-
222
- def self.is_or_are(field)
223
- if field[field.length - 1].downcase == 's'
224
- 'are'
225
- else
226
- 'is'
227
231
  end
228
- end
229
-
230
- def self.format_field_name(field)
231
- split = field.split('_')
232
- split.each do |s|
233
- s = TitleCase.titleize(s)
232
+
233
+ def self.format_field_name(field)
234
+ split = field.split('_')
235
+ split.each do |s|
236
+ s = MusicMetadataScore::TitleCase.titleize(s)
237
+ end
238
+ split.join(' ')
234
239
  end
235
- split.join(' ')
236
- end
237
-
238
- def self.combine_arrays(first, second)
239
- second.each do |s|
240
- first << s
240
+
241
+ def self.combine_arrays(first, second)
242
+ second.each do |s|
243
+ first << s
244
+ end
245
+ first
241
246
  end
242
- first
247
+
243
248
  end
244
-
245
249
  end