Class: Manhunt::Folder
- Inherits:
-
Object
- Object
- Manhunt::Folder
- Defined in:
- lib/manhunt/folder.rb
Instance Attribute Summary collapse
-
#count ⇒ Object
readonly
Returns the value of attribute count.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Class Method Summary collapse
- .parse_message_count(document) ⇒ Object
- .parse_message_header(header_row) ⇒ Object
- .parse_messages(document) ⇒ Object
Instance Method Summary collapse
-
#initialize(session, folder) ⇒ Folder
constructor
A new instance of Folder.
- #message(id) ⇒ Object
- #messages(page = 1) ⇒ Object
- #reload(page) ⇒ Object
Constructor Details
#initialize(session, folder) ⇒ Folder
Returns a new instance of Folder.
4 5 6 7 8 |
# File 'lib/manhunt/folder.rb', line 4 def initialize(session, folder) @session = session @name = folder @messages = {} end |
Instance Attribute Details
#count ⇒ Object (readonly)
Returns the value of attribute count.
2 3 4 |
# File 'lib/manhunt/folder.rb', line 2 def count @count end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
2 3 4 |
# File 'lib/manhunt/folder.rb', line 2 def name @name end |
Class Method Details
.parse_message_count(document) ⇒ Object
56 57 58 59 |
# File 'lib/manhunt/folder.rb', line 56 def self.(document) count_field = (document / "#msgsShownTxt").inner_text (/(\d+)\s+$/.match(count_field))[1].to_i end |
.parse_message_header(header_row) ⇒ Object
45 46 47 48 49 50 51 52 53 54 |
# File 'lib/manhunt/folder.rb', line 45 def self.(header_row) (header_row/'td').map do |column| header = column.inner_text.strip if header.empty? nil else header.delete(':').downcase.gsub(' ', '_').to_sym end end end |
.parse_messages(document) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/manhunt/folder.rb', line 30 def self.(document) = {} = (document/"#msgsListTable") format = (/"tr.header") (/"tr").each do |row| unless row[:class] == 'header' = ManhuntMessage.parse_header(format, row) [.id] = end end end |
Instance Method Details
#message(id) ⇒ Object
23 24 25 26 27 28 |
# File 'lib/manhunt/folder.rb', line 23 def (id) url = "/mail/viewMessage/id/#{id}/folder/#{@name}" document = @session.get_document(url) ManhuntMessage.(document, id) end |
#messages(page = 1) ⇒ Object
10 11 12 13 |
# File 'lib/manhunt/folder.rb', line 10 def (page = 1) reload(page) @messages.values.sort{ |a,b| a.date <=> b.date }.reverse end |
#reload(page) ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/manhunt/folder.rb', line 15 def reload(page) url = "/mail/folder/#{@name}/#{page}" document = @session.get_document(url) @count = ManhuntFolder.(document) @messages = ManhuntFolder.(document) end |