Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tag: v0.3.2
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 115 lines (92 sloc) 2.837 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 'datamapper4rails/datamapper_store'
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
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.