blob: 8cd353588b6dba4736f9977b5d26307216a4d9cb (
plain) (
tree)
|
|
require_relative 'contact'
require_relative 'member'
require_relative 'song'
class Band
attr_reader :name, :city, :website, :label, :short_bio, :contact, :members, :songs
attr_reader :errors
def initialize(params = nil)
@errors = []
@contact = Contact.new
@members = []
@songs = []
if params
@name = params['name']
@city = params['city']
@website = params['website']
@label = params['label']
@short_bio = params['shortbio']
@contact = Contact.new(params['contact'])
if params['members']
params['members'].each do |k, m|
@members << Member.new(m)
end
end
if params['songs']
params['songs'].each do |k, s|
@songs << Song.new(s)
end
end
end
end
def valid?
validate!
errors.length == 0
end
def validate!
if @name.nil? || @name.strip.empty?
errors << "Bandnavn mangler"
end
errors.concat(@contact.validate!)
if @songs.length <= 0
errors << "Du må ha med minst én låt!"
end
end
def has_errors
errors.length > 0
end
end
|