Total Complexity | 7 |
Total Lines | 28 |
Duplicated Lines | 0 % |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
1 | require 'atom' |
||
7 | class AtomFeed |
||
8 | attr_accessor :feed |
||
9 | |||
10 | def initialize(response = nil, opts = {}) |
||
11 | if opts.key? :feed_name |
||
12 | @feed_name = opts[:feed_name] |
||
13 | else |
||
14 | @feed_name = 'RingCentral Feed' |
||
15 | end |
||
16 | @feed = nil |
||
17 | load_message_store_response(response) unless response.nil? |
||
18 | end |
||
19 | |||
20 | def load_message_store_response(response) |
||
21 | @feed = Atom::Feed.new do |f| |
||
22 | f.title = @feed_name |
||
23 | f.links << Atom::Link.new(href: response.body['uri'].to_s) |
||
24 | f.updated = Time.parse(response.headers['date'].to_s) |
||
25 | response.body['records'].each do |message| |
||
26 | f.entries << RingCentral::RSS::AtomEntry.new(message).entry |
||
27 | end |
||
28 | end |
||
29 | end |
||
30 | |||
31 | def to_xml |
||
32 | [email protected]? && @feed.is_a?(Atom::Feed) ? @feed.to_xml : nil |
||
33 | end |
||
34 | end |
||
35 | end |
||
37 |