Sha256: a65e5f2d6591058f331a4554aa98491fda86b3fef34e7cc58c92b48b2b2058b9

Contents?: true

Size: 483 Bytes

Versions: 1

Compression:

Stored size: 483 Bytes

Contents

require 'json'

module Fantasyhub::Feed::Parser
  extend self

  def parse(feed)
    hash = parse_json(feed)
    transform_feed_keys(hash)
  end
  alias_method :call, :parse

private

  def transform_feed_keys(feed)
    feed.map {|item| {
      actor: item.fetch("actor"),
      repo_url: item.fetch("repository", {}).fetch("url", "private"),
      created_at: item.fetch("created_at"), event_type: item.fetch("type") } }
  end

  def parse_json(feed)
    JSON.parse(feed)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fantasyhub-1.0.1 lib/fantasyhub/feed/parser.rb