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 '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
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