Skip to content

Instantly share code, notes, and snippets.

I want to make a generic Resource object representing something with versioned contents, like an S3 object or a git repo. For each Resource object subclass, there would be State, StateId, DiffState, DiffMetadata and Diff subclasses. So an S3 object's StateId class would follow the AWS naming convention for S3 versioning, and the Git StateId class would be a commit reference.

But there's more than one way to access a resource. For instance, you can ask Github about the state of a git repo or you can shell out to git on your local machine. Even though the mechanics of 'shell out to git'