Add `arrived` attribute (file creation timestamp) to books table.
[quanlib.git] / author.rb
index 6bfe610495b6e7a090499141ba890b7e5ec17208..fb2003bf43b87bbd3a81c566065d0e84347a12cb 100644 (file)
--- a/author.rb
+++ b/author.rb
@@ -1,7 +1,57 @@
 
 class Author
-  def initialize(surname, givenNames)
-    @surname = surname
-    @givenNames = givenNames
+  def initialize(grouping, reading_order, sort_order)
+    @grouping = grouping
+    @reading_order = reading_order
+    @sort_order = sort_order
+
+    if (nil == sort_order) || ('Unknown' == sort_order)
+      @sort_order = reading_to_sort_order(reading_order)
+    end
+  end
+
+  def grouping
+    @grouping
+  end
+
+  def reading_order
+    @reading_order
+  end
+
+  def sort_order
+    @sort_order
+  end
+
+  def inspect
+    result = '(Author:'
+    if nil != @grouping
+      result += ' grouping="' + @grouping + '"'
+    end
+    if nil != @reading_order
+      result += ' reading_order="' + @reading_order + '"'
+    end
+    if nil != @sort_order
+      result += ' sort_order="' + @sort_order + '"'
+    end
+    result += ')'
+
+    return result
+  end
+
+  def to_s
+    inspect
+  end
+
+  protected
+  def reading_to_sort_order(reading_order)
+    sort_order = reading_order
+
+    parts = reading_order.split(' ')
+    if parts.length > 1
+      sort_order = parts[-1] + ', ' + parts[0..-2].join(' ')
+    end
+
+    return sort_order
   end
 end
+