| 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 |