summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/band.rb26
-rw-r--r--lib/contact.rb10
-rw-r--r--lib/member.rb9
-rw-r--r--lib/song.rb11
4 files changed, 56 insertions, 0 deletions
diff --git a/lib/band.rb b/lib/band.rb
new file mode 100644
index 0000000..44d1e7c
--- /dev/null
+++ b/lib/band.rb
@@ -0,0 +1,26 @@
+require_relative 'contact'
+require_relative 'member'
+require_relative 'song'
+
+class Band
+ attr_reader :name, :city, :website, :label, :short_bio, :contact, :members, :songs
+
+ def initialize(params)
+ @name = params['name']
+ @city = params['city']
+ @website = params['website']
+ @label = params['label']
+ @short_bio = params['shortbio']
+ @contact = Contact.new(params['contact'])
+
+ @members = []
+ params['members'].each do |k, m|
+ @members << Member.new(m)
+ end
+
+ @songs = []
+ params['songs'].each do |k, s|
+ @songs << Song.new(s)
+ end
+ end
+end
diff --git a/lib/contact.rb b/lib/contact.rb
new file mode 100644
index 0000000..1e6ba4b
--- /dev/null
+++ b/lib/contact.rb
@@ -0,0 +1,10 @@
+class Contact
+ attr_reader :name, :addr, :phone, :email
+
+ def initialize(params)
+ @name = params['name']
+ @addr = params['addr']
+ @phone = params['phone']
+ @email = params['email']
+ end
+end
diff --git a/lib/member.rb b/lib/member.rb
new file mode 100644
index 0000000..c67915a
--- /dev/null
+++ b/lib/member.rb
@@ -0,0 +1,9 @@
+class Member
+ attr_reader :name, :instrument, :age
+
+ def initialize(params)
+ @name = params['name']
+ @instrument = params['instrument']
+ @age = params['age'].to_i
+ end
+end
diff --git a/lib/song.rb b/lib/song.rb
new file mode 100644
index 0000000..c045ed2
--- /dev/null
+++ b/lib/song.rb
@@ -0,0 +1,11 @@
+class Song
+ attr_reader :title, :time, :composers, :performers, :notes
+
+ def initialize(params)
+ @title = params['title']
+ @time = params['time']
+ @composers = params['composers']
+ @performers = params['performers']
+ @notes = params['notes']
+ end
+end