music_metadata_score 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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