however it was costumed running in linux environment,
and there is some slightly changes they didnt update their tutorial script,
the script will not work out of box,
So in here i am making a post, especially benefit users who is using Windows, since i am doing this in Windows 7 environment.
PS : i assume u have already had a google app engine account, if u dont, do some bing or google and get one
Specially thanks for the help from Andrew Myers.
1) Install Java Development Kit 6 (JDK6)
make sure you have similar stuff show up in your windows command prompt
>java -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b07)
Java HotSpot(TM) Client VM (build 17.0-b17, mixed mode, sharing)
>javac -version
javac 1.6.0_21
2) Install AppEngine Java SDK http://code.google.com/appengine/downloads.html
Download the SDK, and make sure you put the "bin" directory into your system "Path"
3) Install Ruby 1.8.7 , not JRuby
Download it http://www.ruby-lang.org/en/downloads/, and install it,
make sure you associate *.rb to be run by ruby (for windows install, there is the check box)
again open a new command prompt, you should have something like this
>ruby -v
ruby 1.8.7 (2010-08-16 patchlevel 302) [i386-mingw32]
>gem -v
1.3.7
4) Install plugins for ruby
Make sure you open a command prompt as administrator
and type in the following one by one
gem install google-appengine
gem install rails -v "2.3.10"gem install rails_dm_datastoregem install activerecord-nulldb-adapter
each one will take a while, so be patient..
5) Make a directory to contain you ROR application
mkdir railsv1Or you can use GUI to do it.
cd railsv1
6) Copy the code below, save it to a file, for example rails2310_appengine.rb
#!/usr/bin/ruby
#
# Copyright:: Copyright 2009 Google Inc.
# Original Author:: John Woodell (mailto:woodie@google.com)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
require 'fileutils'
require 'open-uri'
def composite(source, fragment, index = nil, trim = nil)
File.open(source, 'r+') do |f|
lines = f.readlines
lines = lines[0..trim] unless trim.nil?
f.pos = 0
File.open(fragment) do |z|
section = z.readlines
if index and index.size < lines.size
f.print lines[0,index] + section + lines[index..-1]
else
f.print lines + section
end
end
f.truncate(f.pos)
end
FileUtils.rm fragment
end
def download_file(path, url)
open(url) do |r|
FileUtils.mkpath(File.dirname(path))
open(path,"w"){|f| f.write(r.read) }
end
end
SET_CMD = RUBY_PLATFORM.include?('mswin32') ? 'set' : 'export'
MORE_GEMS = 'rails_appengine/active_support_vendored'
FILE_BASE = 'http://appengine-jruby.googlecode.com/hg/demos/rails2/'
MOD_FILES = %w{ app/controllers/rails/info_controller.rb public/favicon.ico
config.ru config/boot_rb config/environment_rb
config/initializers/gae_init_patch.rb config/database.yml
script/console.sh script/publish.sh script/server.sh }
# Install Rails 2.3.10
FileUtils.touch 'config.ru'
gemsrc = ARGV[0].eql?('tiny_ds') ? 'Gemfile_td' : 'Gemfile'
download_file("Gemfile", "#{FILE_BASE}#{gemsrc}")
download_file("gems_2310", "#{FILE_BASE}gems_2310")
composite('Gemfile', 'gems_2310', nil, -2)
FileUtils.mkdir_p 'WEB-INF'
download_file("WEB-INF/app.yaml", "#{FILE_BASE}WEB-INF/app.yaml")
system 'appcfg.rb bundle --update .'
# Remove dups and generate Rails app
# Generate rails, and skip APIs to escape the shell
system "rails _2.3.10_ ."
# Fetch configuration files
FileUtils.mkdir_p 'app/controllers/rails'
MOD_FILES.each { |path| download_file(path, "#{FILE_BASE}#{path}") }
if ARGV[0].eql? 'tiny_ds'
download_file("config/environment_rb", "#{FILE_BASE}config/environment_td")
end
# Merge configs into boot.rb
composite('config/boot.rb', 'config/boot_rb', 108)
# Merge configs into environment.rb
composite('config/environment.rb', 'config/environment_rb', 30)
# install the nulldb adapter
system 'ruby script/plugin install http://svn.avdi.org/nulldb/trunk/'
puts "##"
puts "## Now type 'dev_appserver.rb .'"
puts "##"
and run it, e.g ruby rails2310_appengine.rb, then you should see something like this: