AtomFeed   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 7
c 1
b 0
f 0
dl 0
loc 28
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A load_message_store_response() 0 10 1
A initialize() 0 9 3
A to_xml() 0 3 3
1
require 'atom'
2
3
module RingCentral
4
  module RSS
5
    # Represents an Atom feed which loads records via RingCentral
6
    # message-store responses
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
36
end
37