mirror of
https://github.com/danbee/rippr
synced 2025-03-04 08:39:08 +00:00
Refactor metadata class and put in its own file.
This commit is contained in:
parent
f21d9dc8f3
commit
6c4fd4215f
30
lib/rippr.rb
30
lib/rippr.rb
@ -4,32 +4,4 @@ require 'musicbrainz'
|
|||||||
require 'musicbrainz_discid'
|
require 'musicbrainz_discid'
|
||||||
require 'rippr/version'
|
require 'rippr/version'
|
||||||
|
|
||||||
module Rippr
|
require 'rippr/metadata'
|
||||||
class MetaData
|
|
||||||
attr_accessor :releases
|
|
||||||
|
|
||||||
def initialize(discid)
|
|
||||||
MusicBrainz.configure do |c|
|
|
||||||
c.app_name = "Rippr"
|
|
||||||
c.app_version = "0.1"
|
|
||||||
c.contact = "rippr@danbarber.me"
|
|
||||||
end
|
|
||||||
@discid = discid
|
|
||||||
end
|
|
||||||
|
|
||||||
def choose_release
|
|
||||||
return releases[0] if releases.count == 1
|
|
||||||
puts "There are multiple matches, please choose:"
|
|
||||||
releases.to_enum.with_index(1) do |release, index|
|
|
||||||
puts "#{index}: #{release.title} (#{release.country})"
|
|
||||||
end
|
|
||||||
print "Choose a release: "
|
|
||||||
index = STDIN.gets.chomp.to_i
|
|
||||||
releases[index - 1] unless index.zero?
|
|
||||||
end
|
|
||||||
|
|
||||||
def releases
|
|
||||||
@releases ||= MusicBrainz::Release.find_by_discid(@discid)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|||||||
37
lib/rippr/metadata.rb
Normal file
37
lib/rippr/metadata.rb
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
module Rippr
|
||||||
|
class MetaData
|
||||||
|
attr_accessor :releases
|
||||||
|
|
||||||
|
def initialize(discid)
|
||||||
|
MusicBrainz.configure do |c|
|
||||||
|
c.app_name = "Rippr"
|
||||||
|
c.app_version = "0.1"
|
||||||
|
c.contact = "rippr@danbarber.me"
|
||||||
|
end
|
||||||
|
@discid = discid
|
||||||
|
end
|
||||||
|
|
||||||
|
def choose_release
|
||||||
|
return releases[0] if releases.count == 1
|
||||||
|
puts "There are multiple matches, please choose:"
|
||||||
|
index = prompt_for_release
|
||||||
|
releases[index - 1] unless index.zero?
|
||||||
|
end
|
||||||
|
|
||||||
|
def list_releases
|
||||||
|
releases.to_enum.with_index(1) do |release, index|
|
||||||
|
puts "#{index}: #{release.title} (#{release.country})"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def prompt_for_release
|
||||||
|
list_releases
|
||||||
|
print "Choose a release: "
|
||||||
|
STDIN.gets.chomp.to_i
|
||||||
|
end
|
||||||
|
|
||||||
|
def releases
|
||||||
|
@releases ||= MusicBrainz::Release.find_by_discid(@discid)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
Reference in New Issue
Block a user