Class: MusicMetadataScore::Barcode
- Inherits:
-
Object
- Object
- MusicMetadataScore::Barcode
- Defined in:
- lib/music_metadata_score/barcode.rb
Class Method Summary collapse
- .calculate_barcode(barcode) ⇒ Object
- .calculate_checksum(number) ⇒ Object
- .get_checksum(barcode) ⇒ Object
-
.is_valid?(barcode) ⇒ Boolean
Check length Check checksum.
- .remove_checksum(barcode) ⇒ Object
- .valid_barcode_or_nil(barcode) ⇒ Object
- .valid_characters?(barcode) ⇒ Boolean
- .valid_checksum?(barcode) ⇒ Boolean
- .valid_length?(barcode) ⇒ Boolean
Class Method Details
.calculate_barcode(barcode) ⇒ Object
53 54 55 56 57 58 59 60 61 62 |
# File 'lib/music_metadata_score/barcode.rb', line 53 def self.() = .to_s if .length == 11 ([0].to_i * 3) + [1].to_i + ([2].to_i * 3) + [3].to_i + ([4].to_i * 3) + [5].to_i + ([6].to_i * 3) + [7].to_i + ([8].to_i * 3) + [9].to_i + ([10].to_i * 3) elsif .length == 12 [0].to_i + ([1].to_i * 3) + [2].to_i + ([3].to_i * 3) + [4].to_i + ([5].to_i * 3) + [6].to_i + ([7].to_i * 3) + [8].to_i + ([9].to_i * 3) + [10].to_i + ([11].to_i * 3) else nil end end |
.calculate_checksum(number) ⇒ Object
64 65 66 67 68 69 70 71 |
# File 'lib/music_metadata_score/barcode.rb', line 64 def self.calculate_checksum(number) over = number % 10 if over != 0 10 - over else 0 end end |
.get_checksum(barcode) ⇒ Object
39 40 41 42 43 44 45 46 |
# File 'lib/music_metadata_score/barcode.rb', line 39 def self.get_checksum() = MusicMetadataScore::Barcode.(MusicMetadataScore::Barcode.remove_checksum()) if != nil MusicMetadataScore::Barcode.calculate_checksum() else nil end end |
.is_valid?(barcode) ⇒ Boolean
Check length Check checksum
6 7 8 9 10 11 12 |
# File 'lib/music_metadata_score/barcode.rb', line 6 def self.is_valid?() if MusicMetadataScore::Barcode.valid_length?() && MusicMetadataScore::Barcode.valid_characters?() && MusicMetadataScore::Barcode.valid_checksum?() true else false end end |
.remove_checksum(barcode) ⇒ Object
48 49 50 51 |
# File 'lib/music_metadata_score/barcode.rb', line 48 def self.remove_checksum() = .to_s return [0...length - 2] end |
.valid_barcode_or_nil(barcode) ⇒ Object
73 74 75 76 77 78 79 |
# File 'lib/music_metadata_score/barcode.rb', line 73 def self.() if MusicMetadataScore::Barcode.is_valid?() else nil end end |
.valid_characters?(barcode) ⇒ Boolean
22 23 24 25 26 27 28 29 |
# File 'lib/music_metadata_score/barcode.rb', line 22 def self.valid_characters?() number = Integer() rescue false if number != false true else false end end |
.valid_checksum?(barcode) ⇒ Boolean
31 32 33 34 35 36 37 |
# File 'lib/music_metadata_score/barcode.rb', line 31 def self.valid_checksum?() if .to_s[.to_s.length - 1].to_i == MusicMetadataScore::Barcode.get_checksum() true else false end end |
.valid_length?(barcode) ⇒ Boolean
14 15 16 17 18 19 20 |
# File 'lib/music_metadata_score/barcode.rb', line 14 def self.valid_length?() if .to_s.length == 12 || .to_s.length == 13 true else false end end |