class GoogleAnalyticsFeeds::RowParser

Parses rows from the GA feed via SAX. Clients shouldn’t have to use this - use a RowHandler instead.

@api private

Public Class Methods

new(handler) click to toggle source
# File lib/google_analytics_feeds.rb, line 126
def initialize(handler)
  @handler = handler
end

Public Instance Methods

attr(name, value) click to toggle source
# File lib/google_analytics_feeds.rb, line 140
def attr(name, value)
  if @property
    @property[name] = value
  end
end
end_element(element) click to toggle source
# File lib/google_analytics_feeds.rb, line 146
def end_element(element)
  case element
  when :entry
    handle_complete_row
    @row = nil
  when :"dxp:dimension", :"dxp:metric"
    handle_complete_property
    @property = nil
  end
end
start_element(element) click to toggle source
# File lib/google_analytics_feeds.rb, line 130
def start_element(element)
  case element

  when :entry
    @row = {}
  when :"dxp:dimension", :"dxp:metric"
    @property = {}
  end
end

Private Instance Methods

handle_complete_property() click to toggle source
# File lib/google_analytics_feeds.rb, line 163
def handle_complete_property
  if @row
    value = @property[:value]
    if @property[:type] == "integer"
      value = Integer(value)
    end
    name = name_to_symbol(@property[:name])
    @row[name] = value
  end
end
handle_complete_row() click to toggle source
# File lib/google_analytics_feeds.rb, line 159
def handle_complete_row
  @handler.row(@row)
end