Skip to content

Releases: ahmednuaman/radian

A new breed

12 Jun 17:14
Compare
Choose a tag to compare

After a while without any releases comes probably the most stable, performant and code-complete version of Radian yet!

Classes

JS and Coffee syntax reflect each other, now providing 100% code coverage and getting rid of those nasty, nasty CoffeeScript __extend functions that litter the code. This means that before one would write a class in CoffeeScript like:

class extends RC
  @register 'AppController', [
     '$scope'
   ]
  ...

But now one would write it like:

RC 'AppController', [
    '$scope'
    'pageLoaderFactory'
    'pageTitleFactory'
  ],
  init: () ->

This provides better unity with the JS version.

Node deps

All the node dependencies are now up to date, including a refactored server.coffee.

Bower deps

All up to date, again, and now running with Angular 1.2.16 (yes yes, 1.2.17 is out, but I haven't tested it yet, feel free to if you want).

The generator

I'm working on rebuilding the generator, updating it to deal with these new class structures and generally making it a lot less buggy.

Much love 🐻

All is calm with the force

18 Mar 19:41
Compare
Choose a tag to compare

Radian is stable again! 🍰

Besides that there has been an update to the dependancies list. What I want to try and do next is look towards integrating Gulp and Broccoli as alternatives to the Grunt build system. I'm not saying that Grunt isn't good, I'm just giving you guys a choice.

Growning up

08 Mar 19:33
Compare
Choose a tag to compare

I've updated the dependencies to their latest version, enjoy!

Crawl like a baus

12 Feb 10:10
Compare
Choose a tag to compare

The page crawler.coffee has been updated so that it now waits for Angular to load and for the app to settle before indexing begins. There's still a pageTimeout incase the app takes too long to load, it's been set at 8 seconds, by that time your app should've loaded.

I've used a similar method to how Protractor waits for Angular to load and this should make indexing your app much faster.

JavaScript Attacks!

21 Jan 15:25
Compare
Choose a tag to compare

A patch release

This release simply makes a few updates to the JavaScript core code and updates to how this is then used in the generator.

The main issue was that the factories weren't assigning themselves correctly (due to a JSHint recommendation), that's now been fixed.

Also the watch task has been updated to support the proper JS path when the project is created via the generator.

And finally the grunt-angular-templates has been updated to not use CoffeeScript to generate the partial if that's not used as a preprocessor.

The JavaScript strikes back

20 Jan 20:47
Compare
Choose a tag to compare

TL;DR:

This latest release of Radian is the first stable release. Yay! High-fives everyone. Radian now supports JavaScript in addition to CoffeeScript and all tests are good. Go use Yeoman to set up the generator and your new Radian project.

Radian is now stable, woop woop

This advent brings a few changes in how stuff now goes down:

  1. There's now full JS support, in that the site files have been written in JS and their tests too. The main differences can be see in a comparison between the radian-module-helper.coffee and radian-module-helper.js. The CS version simply creates a container class within the registerClass method, whereas the JS version does it in the construct method. It's all the same really.
  2. The grunt and utility files are still in CS apart from the test files. They're put in the right place by the generator. Feel free to convert them to JS if you like.
  3. There has always been a coverage problem because of the CS compiling code, so if you run the JS unit tests you'll see that Radian has 100% coverage again. Just need to write a CS coverage tool for Istanbul now.
  4. The Compass SASS and SCSS tasks have been split to allow easier set up with the generator. This also solves a lot of confusion with commenting out scss in place of sass.
  5. AngularJS has been update as well as a few node_modules too, everything seems pretty stable though.
  6. In addition to JS support I've also added JSHint and the awesome JSCS too.

So what's next?

Probably add TypeScript support.

Return of the minifiers

15 Jan 20:09
Compare
Choose a tag to compare

TL;DR:

This release brings about a new way to deal with minifying assets before building your app. Since there are now multiple precompilers for CSS and HTML, it makes sense to remove the minifying and compression tasks out of their native areas and into a combined task where it doesn't matter which precompiler, if any you use.

A list of changes

  • CSS that's generated by precompilers or by the user will now use grunt-contrib-cssmin to minify and move it into the build folder (before this was being done by grunt-contrib-copy).
  • Jade will no longer compress the production HTML as grunt-angular-templates does this for us, regardless of whether it's vanilla HTML or Jade generated HTML.
  • Updated Angular and its modules to 1.2.8. I know that 1.2.9 is just round the corner so maybe I'll check what that's like and update again.
  • Updated RequireJS to 2.1.10.
  • Using grunt-combine-media-queries to tidy up the build CSS instead of having the media queries littered all over the place.
  • It's now simpler to define a new sprite in grunt-spritesmith by simply adding a new folder to the targets array.
  • A pageLoaderFactory has been added to illustrate how to deal with the 'flicker' that's seen when a user visits the site for the first time and before Angular boots up. The crawler and index.jade files have been updated so that if a user does not have JS enabled then they can still use the site (eg the loader mask is only added if the user has JS enabled and will, therefore, see the flicker).

Enjoy!

A newer hope

11 Jan 18:36
Compare
Choose a tag to compare

Little updates! Really v0.7.0 still counts.

A new hope

08 Jan 18:48
Compare
Choose a tag to compare

Done the following:

Added support for the following CSS precompilers (in addition to SASS)

  • SCSS
  • Less
  • Stylus

Organised the assets folder

So now precompiled and compiled files (except for Jade templates, I still need to work this out) are seperated, as such:

Before:

assets
├── css
├── img
├── js
├── partial
└── vendor

Wow, such mess.

After:

assets
├── coffee
├── css
├── img
├── js
├── less
├── partial
├── sass
├── scss
├── styl
└── vendor

Wow, such zen. This way the CoffeeScript and the Less/SASS/SCSS/Stylus files are out of the way of the JS and CSS files (respectively).

Tidied up the grunt tasks

Also using grunt-contrib-clean to do the dirty work before every build.

Added a Radian config file

The .radianrc contains information that's used by the Yeoman generator, it looks like this:

{
  "precompilers": {
    "js": "coffee",
    "css": "sass",
    "html": "jade"
  }
}

And just helps keep track of your config options for the generator.

Moved sprite generation away from compass

Since Radian now has the option of different CSS precompilers and some of them don't support sprite generation out the box, I've decided to use the awesome grunt-spritesmith to do the dirty work. Each CSS precompiler folder contains a template.mustache that sets up the generated sprite sheet CSS for that specific language.

What needs to happen next?

I need to work out the best way of dealing with the Jade partials. I'm sure I'll figure something out. I also want to stop using .html when referencing a partial in Angular, just imagine how many bytes (5) would be saved for each partial that's currently referenced in the app! (12 x 5 = 60 bytes, woop!)

Enjoy!

Cleaner directive, factory and filter syntax

04 Jan 16:05
Compare
Choose a tag to compare

This release contains three new files:

These files are helper files to make creating directives, factories and filters quicker and easier. They follow the same concept as the radian-controller.coffee and radian-service.coffee files.

Here's an example of how to create a new directive using radian-directive.coffee:

define [
  'config'
  'directive/radian-directive'
], (cfg, RD) ->
  RD 'stub', [
    '$rootScope'
  ], ($rootScope) ->
    templateUrl: cfg.path.partial + 'directive/stub-partial.html'
    restrict: 'A'
    replace: true
    scope:
      items: '=ngModel'
    link: ($scope, $element, $attrs) ->

It used to be like this:

define [
  'config'
  'angular'
], (cfg, A) ->
  stubDirective = () ->
    templateUrl: cfg.path.partial + 'directive/stub-partial.html'
    restrict: 'A'
    replace: true
    scope:
      items: '=ngModel'
    link: ($scope, $element, $attrs) ->


  app = A.module cfg.ngApp
  app.directive 'stub', stubDirective

So now it's a lot cleaner and faster, and as the bulk of the creation logic has been moved to a static helper (the radian-module-helper.coffee) it means there's also less memory overhead.

Enjoy!