Skip to content

Inline palm_civet dependency#2

Closed
rubionic wants to merge 1 commit intomainfrom
opencode-issue-1-1770136779
Closed

Inline palm_civet dependency#2
rubionic wants to merge 1 commit intomainfrom
opencode-issue-1-1770136779

Conversation

@rubionic
Copy link
Owner

@rubionic rubionic commented Feb 3, 2026

Summary

This PR inlines the palm_civet gem into the cloud_controller codebase to eliminate an external dependency that hasn't been updated in several years.

Changes

  • Added lib/cloud_controller/palm_civet.rb - Inlined implementation of the palm_civet byte conversion utilities
  • Added spec/unit/lib/cloud_controller/palm_civet_spec.rb - Complete test suite from the original gem
  • Updated lib/cloud_controller/app_manifest/byte_converter.rb - Changed require from 'palm_civet' to 'cloud_controller/palm_civet'
  • Removed palm_civet gem from Gemfile

Implementation Details

The inlined code is wrapped in the VCAP::CloudController::PalmCivet module to maintain proper namespacing and avoid conflicts. The implementation includes:

  • Byte size constants (BYTE, KILOBYTE, MEGABYTE, GIGABYTE, TERABYTE)
  • byte_size - Converts bytes to human-readable format
  • to_bytes - Parses human-readable byte strings to integer bytes
  • to_megabytes - Parses human-readable byte strings to megabytes
  • InvalidByteQuantityError exception class

All original functionality and tests have been preserved.

Testing

The complete test suite from the palm_civet gem has been integrated and should pass in CI. The tests cover:

  • Byte size formatting with various units
  • Parsing of different byte unit formats (B, K/KB/KiB, M/MB/MiB, G/GB/GiB, T/TB/TiB)
  • Float and integer handling
  • Negative values
  • Error cases for invalid inputs

Fixes #1

The palm_civet dependency has not seen any releases for a long time.
Given its small complexity, this commit inlines it into the cloud_controller
codebase to reduce external dependencies.

Changes:
- Added lib/cloud_controller/palm_civet.rb with the inlined implementation
- Added spec/unit/lib/cloud_controller/palm_civet_spec.rb with all tests
- Updated ByteConverter to use the inlined VCAP::CloudController::PalmCivet
- Removed palm_civet gem from Gemfile

Fixes #1
@rubionic
Copy link
Owner Author

rubionic commented Feb 3, 2026

Closing in favour of: cloudfoundry#4827

@rubionic rubionic closed this Feb 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Inline palm_civet

1 participant