piątek, 20 lipca 2012

So now you want try again with frontend?

Those year with ie6 and craziness, when You decided to do not touch fronted never again and become "proud backend developer" .

Now we want to write single page application so anyway we have to touch css. You think in new century it will be easy, you head about html5 with those pretty logo and any browser will support it. I did.

New css properties transform and transition are really nice. We can resize, move, rotate, scale element with nice animation, using only css. But it won't work on ie.... again. Why they can't take a short release path as chorome/ff? Yet they have windows update? Ie has support for transform but without transition property it is useless for animations.
I've found working plugin for jquery to backport that features for ie9/8 - transform. It allow you to use scale, rotate, transform in .animation(). In normal browsers it will use transition and in IE it will use directx filters.

So now my first design of animation is in css(under chrome, due to debugger allow me changing value of css parameter using just arrow up/down. It really helps.). When it's nice and smooth then i do evil if isIE() and split my code for two cases. (In theory that plugin should do that stuff for me.... but in my particular case animation generated from plugin looks good only on IE)

So whats next? IE10 will be released maybe in this year, but after looking for some usage browsers version  charts over internet, it's getting sad. Current IE9 still doesn't sweep previous version.
What is your option? If You are just start creating new app, and it is not some bank stuff, drop ie8 support, at least animations. When Your application will be released, ie8 will be dying browser.

piątek, 6 lipca 2012

Rspec helper for sign in

After I've changed sign in logic, to use only facebook authorization my helper to sign in user in tests crashes. I used omniauth-facebook gem to handle authorization and clearance as legacy gem.
I've tried many times handle that problem.

  1. Easiest way is click and fill, but that means you need connect to fb in test. We can handle that with VCR, which will mock your fb requests. Unlucky  on every test we have different user id, so recorded request will no match.
  2.  Mock everything !!! Yeah, I thought I'll mock essential methods in application controller, current_user, signed_in? etc. In rspec we use rspec-mock, which has similar api as mocha This was little ugly, but it doesn't works. Rspec-mock has some bug with mocking methods in base class using any_instance.
  3. The final solution was already designed in gem omiauth: