Depend on rails 4.1.0.beta1
Point to github for gems not rails 4.1 ready
ActiveModel::Validator accepts a hash not nil
Call to_a on relation before iterating through
Point to activerecord-hacker repos

Now that PRs have been merged
Create records instead of using mock_model

Build was getting errors like:

  Failure/Error: promotion.promotion_rules = [mock_model(Spree::PromotionRule, :eligible? => true, :applicable? => true),
       Double "Spree::PromotionRule_1010" received unexpected message :attributes with (no args)

probably due to internal activerecord changes which rspec-rails doesn't
comply anymore
Specify association_foreign_key in Promotion::Rules::User

Otherwise it would search for a legacy_user_id which didn't exist (when
running specs)
Add monkey patch for state_machine fix
Point versioncake to github gem

Help let us build the api component
We need to call `to_hash` now on active_model#errors
Leave eval_block as public

Not sure what happened in rails internals that letting that method
private resulted in the following error:

    undefined method `eval_block' for Spree::Core::Engine:Class

which wouldn't allow us to boot the rails app
Set api timestamps miliseconds spec as pending

Only to give us a green api build now. We **must** figure out a way to
make json templates call as_json as it used to in 4-0-stable. Understand
the changes in https://github.com/rails/rails/commit/0f33d70e89991711ff8b3dde134a61f4a5a0ec06 should help
Set ActiveSupport::JSON as rabl json_engine

Make api templates render timestamps with miliseconds which I previously
thought was a rails issue. By making rabl run ActiveSupport::JSON.encode
instead of JSON.dump we get those miliseconds (which in turn will call
as_json)
Point to rails github repo to get more green specs for now

Spree::Core::ControllerHelpers::RespondWith touches Rails
ActionController::MimeResponds::Collector#response which happens to
require a variant parameter on 4.1.0.beta1. Some other changes happened
after that though and it no longer requires a variant which make the
spree monkey patch apparently work again.

See https://github.com/rails/rails/commit/a288cc1e011cf25508d1b56f393023bb40ab441e
for reference
Fix match for adding spree routes mount line on install
Rails no longer generates a public/index.html file
Let spree:install take care of routes in test_app

Interesting looks like routes.rb get back to a previous approach in
4.1.0.beta1
object.touch no longer causes parent objects touch

Needs more investigations. Something between 4.1.0.beta1 and current
rails edge changed this behaviour. Not sure if it's intentional or some
bug
db:test:prepare is deprecated
Paranoia gem release and versioncake bump