Add support for classification of non-fiction books.
[quanlib.git] / author.rb
1
2 class Author
3   def initialize(grouping, reading_order, sort_order)
4     @grouping = grouping
5     @reading_order = reading_order
6     @sort_order = sort_order
7
8     if (nil == sort_order) || ('Unknown' == sort_order)
9       @sort_order = reading_to_sort_order(reading_order)
10     end
11   end
12
13   def grouping
14     @grouping
15   end
16
17   def reading_order
18     @reading_order
19   end
20
21   def sort_order
22     @sort_order
23   end
24
25   def inspect
26     result = '(Author:'
27     if nil != @grouping
28       result += ' grouping="' + @grouping + '"'
29     end
30     if nil != @reading_order
31       result += ' reading_order="' + @reading_order + '"'
32     end
33     if nil != @sort_order
34       result += ' sort_order="' + @sort_order + '"'
35     end
36     result += ')'
37
38     return result
39   end
40
41   def to_s
42     inspect
43   end
44
45   protected
46   def reading_to_sort_order(reading_order)
47     sort_order = reading_order
48
49     parts = reading_order.split(' ')
50     if parts.length > 1
51       sort_order = parts[-1] + ', ' + parts[0..-2].join(' ')
52     end
53
54     return sort_order
55   end
56 end
57