Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sake92/hepek-core
The core of hepek project
https://github.com/sake92/hepek-core
dependency-analysis dependency-graph hepek java scala static-site-generator
Last synced: 23 days ago
JSON representation
The core of hepek project
- Host: GitHub
- URL: https://github.com/sake92/hepek-core
- Owner: sake92
- License: apache-2.0
- Created: 2017-02-02T19:23:29.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2021-03-02T10:03:52.000Z (over 3 years ago)
- Last Synced: 2024-10-04T20:43:38.322Z (about 1 month ago)
- Topics: dependency-analysis, dependency-graph, hepek, java, scala, static-site-generator
- Language: Java
- Homepage:
- Size: 25.4 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# hepek-core
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/ba.sake/hepek-core/badge.svg)](https://maven-badges.herokuapp.com/maven-central/ba.sake/hepek-core)## Usage
- Add to deps:
```scala
libraryDependencies ++= Seq(
"ba.sake" % "hepek-core" % "0.2.0"
)
```# What is it?
Core of the [sbt-hepek](https://github.com/sake92/sbt-hepek).
This project contains two interfaces ([`Renderable`](https://github.com/sake92/hepek-core/blob/master/src/main/java/ba/sake/hepek/core/Renderable.java)
and [`RelativePath`](https://github.com/sake92/hepek-core/blob/master/src/main/java/ba/sake/hepek/core/RelativePath.java))
and a single helper class ([`ClassycleDependencyUtils`](https://github.com/sake92/hepek-core/blob/master/src/main/java/ba/sake/hepek/core/ClassycleDependencyUtils.java)).Interfaces are **essential** to the sbt-hepek:
- All objects that are meant to be rendered must extend `Renderable`
- `RelativePath` is used for getting a relative path to a `Renderable` or another file (css, js or whatever)The `ClassycleDependencyUtils` class has one handy method called `reverseDependencies` that returns `Map[AtomicVertex, Set[AtomicVertex]]`.
Vertices here are actually Java bytecode classes.It is used for optimized rendering of objects.
When an object is *changed and compiled*, this method determines **which other objects use it**, so that they are rendered again too.Special thanks to [Classycle](http://classycle.sourceforge.net/)! :)