Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Scala macros + RTM reflection API to generate type-safe API at compile-time #5

Open
vergenzt opened this issue Feb 17, 2016 · 1 comment
Assignees

Comments

@vergenzt
Copy link
Owner

Work on this is proceeding at branch meta. I'm very excited. :)

Also, development on this project is subsuming resolution of #4. Once this is finished the latest RTM API version will be available.

@vergenzt vergenzt self-assigned this Feb 17, 2016
@vergenzt
Copy link
Owner Author

Basic overview:

  • Core domain classes and HTTP and utility code lives in rtm-scala-lib.
  • API generation macro lives in rtm-scala-meta.
  • Application of the generation macro, along with useful API methods that are not explicitly in the REST API. (The macro will merge methods that exist in the original RtmApi object into the generated implementation.)

(The project is split this way because macro compilation and macro application have to be in separate compilations--i.e., in Eclipse, the macro has to be in a different project than its usage. rtm-scala-lib is separate from rtm-scala because the macro needs to refer to it and circular dependencies are bad.)

My plan is to save output of the generated code in the repo with each published build for debugging purposes. Also since RTM's reflection API includes documentation, it'd be neat if some Scaladoc could be generated automatically--but we'll cross that bridge when we get to it.

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

No branches or pull requests

1 participant