Mavenlink JS
This repository encapsulates shared assets and the Mavenlink Backbone Models and Collections used to interact with the Mavenlink API.
Styleguide Installation
Add this line to your application's Gemfile:
gem 'mavenlink-js'
The models will then be available via the Rails asset pipeline.
Bootstrap the following on the global JavaScript namespace:
window.Mavenlink.svgImagePath = 'path/to/compiled/svg';
API Installation
Add dependency to your application's package.json
"dependencies": {
...
"mavenlink-js": "git@github.com:mavenlink/mavenlink-js.git#[SHA]",
...
}
Run yarn install
Development
Important: After you merge your branch into master
On bigmaven, update the mavenlink-js dependency in package.json
to point back to master. Then run yarn upgrade mavenlink-js
which will update yarn.lock
(equivalent to Gemfile.lock
) to have the new sha.
Be sure to check in yarn.lock
so that CI/deploy will grab the right artifacts!
Running Specs
To run the specs on the command line, run:
yarn test
Adding an endpoint (Model + Collection)
- Add Model with correct
brainstem_key
andurl
properties insrc/models
- Add index entry for Model in
src/models/index.coffee
(in alphabetical order) - Add Collection with correct
url
andmodel
properties insrc/collections
- Add index entry for Collection in
src/collections/index.coffee
(in alphabetical order) - Add the collection the storage manager in
src/base.coffee
(in alphabetical order) - Add to the builders in
src/helpers/builders.coffee
in order generate models for testing purposes - Add specs for Model and Collection in
spec/models/model-name-spec.coffee
For an example, see https://github.com/mavenlink/mavenlink-js/pull/301
Develop your application against a local checkout of mavenlink-js
In mavenlink-js, run: yarn unlink; yarn install; yarn link
In your application, run: yarn link mavenlink-js
Restart webpack
and karma
When you are done, run: yarn unlink mavenlink-js
and then yarn install
to grab the original mljs package again
Restart webpack
and karma
Develop/Update your application against a remote checkout of mavenlink-js
First, make sure you've unlinked mavenlink-js
in the application and ensure you are updated with yarn install
In your application, change package.json
to point to proper feature branch in dependencies
i.e.
"mavenlink-js": "git@github.com:mavenlink/mavenlink-js.git#your-branch-or-SHA"
Run yarn upgrade mavenlink-js