Thanks owlstead, I already figured that out it last couple of days.
I raised this query in crypto-js thread, the problem was I was not specifying IV in crypto-js decryption, as in Ruby if you dont specify any IV it adds \0 as IV.
Below is working code
var encrypted = {};
encrypted.ciphertext = CryptoJS.enc.Base64.parse(data.data);
var decrypted = CryptoJS.AES.decrypt(encrypted, CryptoJS.enc.Base64.parse(BASE64_ENCODED_KEY),
{ iv: CryptoJS.enc.Hex.parse('00000000000000000000000000000000') });;
console.log(decrypted.toString(CryptoJS.enc.Utf8));
This worked for me, this solution was provided to me yesterday by Jeff.Mott.OR (current cryptojs lead dev)