1
0
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:
Dan Barber 2014-01-16 08:16:56 +00:00
parent f21d9dc8f3
commit 6c4fd4215f
2 changed files with 38 additions and 29 deletions

View File

@ -4,32 +4,4 @@ require 'musicbrainz'
require 'musicbrainz_discid'
require 'rippr/version'
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:"
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
require 'rippr/metadata'

37
lib/rippr/metadata.rb Normal file
View 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