masayuki0812/c3 — pull request #486 by masayuki0812 (2014-08-10 01:31:31+00:00)
Title: v0.3.0

Introduce new architecture that enables more flexible extension.

- Basically same interface with v0.2.x
- Introduce prototype architecture to allow us to define custom API and change the default behavior.
- Introduce a concept of `internal` to keep simplicity of chart object and distinguish API (external) and internal functions and variables
- Split `c3.js` into small src files in order to improve modularity
- Introduce unit test

An example of the code base:
```javascript

// same interface with the current version
var chart = c3.generate({ ... });
chart.focus(...);

// introduce internal API so that we can access internal variables and functions
chart.internal;
chart.internal.isTimeseries(); // isTimeseries is an internal function, but now we can access

// you can define custom API through c3.chart.fn
c3.chart.fn.myApi = function(){
this.internal.isTimeseries(); // isTimeseries is an internal variable, but now we can access in API definition
};

// you can change the behavior of internal functions through c3.chart.internal.fn
c3.chart.internal.fn.drawLine = function() {
if (this.isTimeseries()) {
// do something
} else {
// do something
}
};
```

Discussion about this is here:
https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!topic/c3js/M3Enybz1Q5k