Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tag: version-0.3.0
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 115 lines (91 sloc) 2.815 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
# inspired by http://www.rowtheboat.com/archives/32
###################################################

# get all datamapper related gems
gem "addressable", :lib => "addressable/uri"

# assume sqlite3 to be database
gem "do_sqlite3"

# assume you want to have validations and timestamps in your models
gem 'dm-validations'
gem 'dm-timestamps'
gem 'dm-migrations'
gem 'dm-serializer' # to allow xml interface to work

# assume you prefer rspec over unit tests
gem "rspec", :lib => false
gem "rspec-rails", :lib => false

# this pulls in rails_datamapper and rack_datamapper
gem "datamapper4rails"

# install all gems
rake "gems:install"

# install specs rake tasks
generate("rspec", "-f")

# install datamapper rake tasks
generate("datamapper_install")

# fix config files to work with datamapper instead of active_record
environment ""
environment "config.frameworks -= [ :active_record ]"
environment "# deactive active_record"
gsub_file 'spec/spec_helper.rb', /^\s*config[.]/, ' #\0'
gsub_file 'test/test_helper.rb', /^[^#]*fixtures/, ' #\0'

file 'spec/support/datamapper.rb', <<-CODE
require 'datamapper4rails/rspec'
CODE

# add middleware
def middleware(name)
  log "middleware", name
  environment "config.middleware.use '#{name}'"
end

environment ""
middleware "DataMapper::RestfulTransactions"
middleware "DataMapper::IdentityMaps"
middleware "Rack::Deflater"
environment "# add middleware"


# init a session store
initializer 'datamapper_store.rb', <<-CODE
# init a session store which uses a memory cache and a persistent store
# cleanup can be a problem. jruby uses soft-references for the cache so
# memory cleanup with jruby is not a problem.
require 'ixtlan/session'
ActionController::Base.session_store = :datamapper_store
ActionController::Base.session = {
:cache => true,
}
CODE

# gzip fix for jruby
initializer 'monkey_patches.rb', <<-CODE
if RUBY_PLATFORM =~ /java/
require 'zlib'
class Zlib::GzipWriter
def <<(arg)
write(arg)
end
end
end
CODE

file 'prepare_jruby.sh', <<-CODE
#!/bin/bash

echo
echo "shall freeze rails and fix a bug which prevents rails to use certain"
echo "java gems like the dataobjects drivers !!"
echo

mvn --version
if [ $? -ne 0 ] ; then

echo "please install maven >= 2.0.9 from maven.apache.org"
exit -1
fi

mvn de.saumya.mojo:rails-maven-plugin:rails-freeze-gems de.saumya.mojo:rails-maven-plugin:gems-install

echo
echo "you can run rails with (no need to install jruby !!)"
echo
echo "\tmvn de.saumya.mojo:rails-maven-plugin:server"
echo
echo "more info on"
echo "\thttp://github.org/mkristian/rails-maven-plugin"
echo
CODE

rake 'db:sessions:create'

logger.info
logger.info
logger.info "info mavenized rails application"
logger.info "\thttp://github.org/mkristian/rails-maven-plugin"
logger.info
logger.info
Something went wrong with that request. Please try again.