Skip to content
This repository was archived by the owner on Apr 8, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 2 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
2 changes: 1 addition & 1 deletion lib/compact_index/dependency.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true

module CompactIndex
Dependency = Struct.new(:gem, :version, :platform, :checksum) do # rubocop:disable Lint/StructNewOverride
Dependency = Struct.new(:gem, :version, :platform, :checksum) do
def version_and_platform
if platform.nil? || platform == "ruby"
version
Expand Down
4 changes: 3 additions & 1 deletion lib/compact_index/gem_version.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

module CompactIndex
GemVersion = Struct.new(:number, :platform, :checksum, :info_checksum,
:dependencies, :ruby_version, :rubygems_version) do
:dependencies, :ruby_version, :rubygems_version,
:created_at) do
def number_and_platform
if platform.nil? || platform == "ruby"
number
Expand All @@ -25,6 +26,7 @@ def to_line
line = "#{number_and_platform} #{deps_line}|checksum:#{checksum}"
line << ",ruby:#{ruby_version_line}" if ruby_version && ruby_version != ">= 0"
line << ",rubygems:#{rubygems_version_line}" if rubygems_version && rubygems_version != ">= 0"
line << ",created_at:#{created_at}" if created_at
line
end

Expand Down
16 changes: 16 additions & 0 deletions spec/compact_index_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -117,5 +117,21 @@
param = [build_version(:number => "1.0.1", :platform => "jruby")]
expect(CompactIndex.info(param)).to eq("---\n1.0.1-jruby |checksum:sum+test_gem+1.0.1\n")
end

it "show created_at timestamp" do
param = [build_version(:number => "1.0.1", :created_at => "2024-05-01T12:00:00Z")]
expect(CompactIndex.info(param)).to eq("---\n1.0.1 |checksum:sum+test_gem+1.0.1,created_at:2024-05-01T12:00:00Z\n")
end

it "show created_at with other requirements" do
param = [build_version(:number => "1.0.1", :ruby_version => ">1.9", :created_at => "2024-05-01T12:00:00Z")]
expected = "---\n1.0.1 |checksum:sum+test_gem+1.0.1,ruby:>1.9,created_at:2024-05-01T12:00:00Z\n"
expect(CompactIndex.info(param)).to eq(expected)
end

it "omits created_at when nil" do
param = [build_version(:number => "1.0.1")]
expect(CompactIndex.info(param)).not_to include("created_at")
end
end
end
5 changes: 4 additions & 1 deletion spec/support/versions.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,8 @@ def build_version(args = {})
dependencies = args.fetch(:dependencies, nil)
ruby_version = args.fetch(:ruby_version, nil)
rubygems_version = args.fetch(:rubygems_version, nil)
CompactIndex::GemVersion.new(number, platform, checksum, info_checksum, dependencies, ruby_version, rubygems_version)
created_at = args.fetch(:created_at, nil)
CompactIndex::GemVersion.new(
number, platform, checksum, info_checksum, dependencies, ruby_version, rubygems_version, created_at
)
end
Loading