Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions app/controllers/api/v1/activities_controller.rb
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
class Api::V1::ActivitiesController < Api::BaseController
def latest
versions = Version.new_pushed_versions(50)
render_rubygems(versions)
rubygems = Rubygem.includes(:linkset, :gem_download, latest_version: %i[dependencies gem_download])
.with_versions
.order(created_at: :desc)
.limit(50)
.map { |rubygem| rubygem.payload(rubygem.latest_version) }
render_rubygems(rubygems)
end

def just_updated
versions = Version.just_updated(50)
render_rubygems(versions)
rubygems = Version.includes(:dependencies, :gem_download, rubygem: %i[linkset gem_download])
.just_updated(50)
.map { |version| version.rubygem.payload(version) }
render_rubygems(rubygems)
end

private

def render_rubygems(versions)
rubygems = versions.includes(:dependencies, :gem_download, rubygem: %i[linkset gem_download]).map do |version|
version.rubygem.payload(version)
end

def render_rubygems(rubygems)
set_surrogate_key "api/v1/activities"
cache_expiry_headers

Expand Down
6 changes: 4 additions & 2 deletions test/functional/api/v1/activities_controller_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,20 @@ class Api::V1::ActivitiesControllerTest < ActionController::TestCase
get :latest, format: :json
gems = JSON.load @response.body

assert_equal 2, gems.length
assert_equal 3, gems.length
assert_equal "foobar", gems[0]["name"]
assert_equal "sinatra", gems[1]["name"]
assert_equal "rails", gems[2]["name"]
end

should "return correct YAML for latest gems" do
get :latest, format: :yaml
gems = YAML.safe_load(@response.body)

assert_equal 2, gems.length
assert_equal 3, gems.length
assert_equal "foobar", gems[0]["name"]
assert_equal "sinatra", gems[1]["name"]
assert_equal "rails", gems[2]["name"]
end
end

Expand Down
Loading