ulbrich-jruby-enginize 0.6.5 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -12,70 +12,83 @@ what's up running Ruby applications on a Java VM.
12
12
  == Prerequisites
13
13
 
14
14
  JRuby-Enginize needs a proper JRuby installation including rake and the
15
- Google AppEngine SDK for Java. More dependencies depend on the framework
16
- template to generate an application for:
15
+ Google AppEngine SDK (http://code.google.com/appengine/downloads.html) for
16
+ Java.
17
17
 
18
- For Sinatra (http://www.sinatrarb.com), you will need the "sinatra" gem with
19
- "haml" and "sass".
20
-
21
- For Merb (http://www.merbivore.com), you will need the "merb-core" gem with
22
- "extlib" and "appengine-apis".
23
-
24
- Be sure to install gems with <tt>jgem</tt> or <tt>jruby -S gem</tt> as you
25
- need them for JRuby and not for Ruby.
26
-
27
- You also need an Google AppEngine account to actually publish your code.
28
- Without account you can still play around with the tool and run applications
29
- locally.
18
+ More dependencies depend on the framework template to generate an application
19
+ for, but installation of additional gems is done with tools provided by
20
+ Google (so below).
30
21
 
31
22
  == Installation
32
23
 
33
- Install JRuby-Enginize as a gem with
24
+ The Google people worked hard to make JRuby easier to deploy than it was at
25
+ the beginning, so don't blindly trust all those blog posts and samples you'll
26
+ find but use the newest version of jruby-enginize and have a look at the Wiki
27
+ page of the Google AppEngine JRuby tools
28
+ (http://code.google.com/p/appengine-jruby/wiki/GettingStarted)
29
+ to learn about the details beyond.
30
+
31
+ These are the steps for installing the Google tools plus JRuby-Enginize
32
+ running on top of it to streamline your first steps:
34
33
 
35
- sudo jgem sources -a http://gems.github.com # Only needed once!
36
- sudo jgem install ulbrich-jruby-enginize
34
+ sudo gem sources -a http://gems.github.com # Only needed once!
35
+ sudo gem install google-appengine
36
+ sudo gem install ulbrich-jruby-enginize
37
37
 
38
- and be sure to really install with <tt>jgem</tt> as JRuby-Enginize will
39
- refuse to work in normal Ruby environment. It is for creating application
40
- running on Google AppEngine and it makes no sense outside JRuby!
38
+ You also need an Google AppEngine account to actually publish your code.
39
+ Without account you can still play around with the tools and run applications
40
+ locally.
41
41
 
42
42
  == Using jruby-enginize
43
43
 
44
- The gem includes is a single executable named <tt>jruby-enginize</tt> which is
45
- inspired by the <tt>rails</tt> tool for generating Rails applications. So just
46
- call
44
+ JRuby-Enginize includes is a single executable named <tt>jruby-enginize</tt>
45
+ which is inspired by the <tt>rails</tt> tool for generating Rails applications.
46
+ So just call
47
47
 
48
- jruby -S jruby-enginize
48
+ jruby-enginize
49
49
 
50
50
  and have a look at the options.
51
51
 
52
52
  Here are the steps for creating and deploying a new Sinatra application:
53
53
 
54
- * Register with Google AppEngine and look for a name for your application
55
- which is not already taken. If you don't care about this, you will get in
56
- trouble upon deploying your application and have to manually reconfigure
57
- all files!
54
+ * Register with Google AppEngine and create a new application ID.
55
+
56
+ * Generate your application with that new ID as directory name. Sample:
57
+
58
+ <tt>jruby-enginize --template sinatra jruby-enginize</tt>
59
+
60
+ * Go to the new directory and install the missing gems first (depends on the
61
+ template you have chosen):
62
+
63
+ <tt>sudo rake template:gems</tt>
64
+
65
+ !!Attention: Whenever you want to install additional gems, be sure
66
+ to use <tt>appcfg.rb gem</tt> provided by the Google AppEngine JRuby tools
67
+ and not <tt>jgem</tt> as Google maintains a local repository per project and
68
+ bundles the files to upload from that information. You will run into missing
69
+ gems on the server if you bypass this! Best approach is to use a separate
70
+ JRuby installation for AppEngine development to run into missing gems when
71
+ running the application locally, too.
58
72
 
59
- * Generate your application. Sample:
73
+ * Learn about the available rake tasks
60
74
 
61
- <tt>jruby -S jruby-enginize --template sinatra --email foo@bar.com jruby-enginize</tt>
75
+ <tt>rake --tasks</tt>
62
76
 
63
- * Go to the new directory, learn about the available rake tasks and try out
64
- your application:
77
+ * Try out your application locally running on port 8080:
65
78
 
66
- <tt>cd jruby-enginize</tt>
67
- <tt>jruby rake --tasks</tt>
79
+ <tt>rake appengine:run</tt>
68
80
 
69
- <tt>jruby -S rake sinatra:run</tt>
81
+ * Deploy the application:
70
82
 
71
- * Deploy the application with the application name and e-mail address you
72
- generated with:
83
+ <tt>rake appengine:deploy</tt>
73
84
 
74
- <tt>jruby -S rake appengine:deploy</tt>
85
+ The first time you deploy your application, you will be asked for e-mail and
86
+ password to confirm your upload to the server.
75
87
 
76
88
  You can repeat the deployment whenever you want. Be sure to set the version
77
- number in "appengine-web.xml" to a new value, when you are experimenting with
78
- an unstable version and don't want to risk your users getting exceptions.
89
+ number in the AppEngine::Rack.configure_app part of "config.ru" to a new
90
+ value, when you are experimenting with an unstable version and don't want to
91
+ risk your users getting exceptions.
79
92
 
80
93
  You can try the new version by opening e.g.
81
94
 
data/bin/jruby-enginize CHANGED
@@ -1,4 +1,4 @@
1
- #!//usr/bin/env jruby -S
1
+ #!//usr/bin/env ruby
2
2
  # JRuby-Enginize, a generator for Google AppEngine compliant JRuby apps.
3
3
 
4
4
  require 'lib/script'
data/lib/generator.rb CHANGED
@@ -60,9 +60,9 @@ module JRubyEnginize # :nodoc:
60
60
  raise ArgumentError, "Template \"#{template}\" missing" unless File.stat(templatedir).directory?
61
61
 
62
62
  if dryrun
63
- puts "Dry run which would generate the following files for template \"#{template}\":"
63
+ puts "Dry run which would generate the following files from template \"#{template}\":"
64
64
  else
65
- puts "Generating files for template \"#{template}\"."
65
+ puts "Generating files from template \"#{template}\"."
66
66
  end
67
67
 
68
68
  template_files(shareddir, templatedir).each do |key, path|
@@ -78,8 +78,10 @@ module JRubyEnginize # :nodoc:
78
78
  if not dryrun
79
79
  puts "Done with directory \"#{self.path}\"."
80
80
 
81
- puts "\nYour next steps:\n cd #{self.path}\n\n jruby -S rake"
82
- puts " jruby -S rake --tasks\n\n jruby -S rake appengine:deploy"
81
+ puts "\nYour next steps:\n cd #{self.path}\n\n sudo rake template:gems"
82
+ puts "\n rake\n rake --tasks"
83
+ puts "\n rake appengine:run # First call may fail: Just retry!"
84
+ puts "\n rake appengine:deploy"
83
85
  end
84
86
  end
85
87
 
@@ -159,11 +161,12 @@ module JRubyEnginize # :nodoc:
159
161
  content = File.read(source).gsub(/\{\{[^}]*\}\}/) do |variable|
160
162
  case variable
161
163
  when '{{email}}'
164
+ raise 'missing e-mail address' if email.nil? or email.empty?
162
165
  email
163
166
  when '{{name}}'
164
167
  name
165
168
  else
166
- if hexrand = variable.match(/{{hexrand-([0-9]+)}}/) and
169
+ if hexrand = variable.match(/\{\{hexrand-([0-9]+)\}\}/) and
167
170
  hexrand.length == 2 and (len = hexrand[1].to_i) > 0
168
171
  then
169
172
  str = ''
@@ -173,7 +176,7 @@ module JRubyEnginize # :nodoc:
173
176
  end
174
177
 
175
178
  str[0, len]
176
- elsif numrand = variable.match(/{{numrand-([0-9]+)}}/) and
179
+ elsif numrand = variable.match(/\{\{numrand-([0-9]+)\}\}/) and
177
180
  numrand.length == 2 and (len = numrand[1].to_i) > 0
178
181
  then
179
182
  str = ''
data/lib/script.rb CHANGED
@@ -26,6 +26,7 @@ module JRubyEnginize # :nodoc:
26
26
 
27
27
  prog = File.basename($0)
28
28
 
29
+ =begin
29
30
  # Check for running with JRuby: The whole generator makes no sense if not
30
31
  # running with or at least for JRuby...
31
32
 
@@ -35,6 +36,7 @@ module JRubyEnginize # :nodoc:
35
36
  $stderr.puts "!!#{prog} makes only sense on JRuby systems. Please try again."
36
37
  exit(1)
37
38
  end
39
+ =end
38
40
 
39
41
  # The AppEngine SDK has to be around, too.
40
42
 
@@ -67,7 +69,7 @@ module JRubyEnginize # :nodoc:
67
69
  raise 'missing directory name' if (path = ARGV.first).nil? or path.empty?
68
70
  raise 'directory already exists' if FileTest.exists? path
69
71
  raise 'unknown template' if not JRubyEnginize::Generator.templates.include? template
70
-
72
+
71
73
  raise 'missing e-mail address' if email.nil? or email.empty?
72
74
  rescue SystemExit
73
75
  exit(1)
@@ -1,7 +1,7 @@
1
1
  Merb::Config[:framework] = {
2
- :application => Merb.root / "app.rb",
3
- :config => [Merb.root / "config", nil],
4
- :public => [Merb.root / "public", nil],
5
- :view => Merb.root / "views"
2
+ :application => Merb.root / 'app.rb',
3
+ :config => [Merb.root / 'config', nil],
4
+ :public => [Merb.root / 'public', nil],
5
+ :view => Merb.root / 'views'
6
6
  }
7
7
 
@@ -17,7 +17,7 @@ end
17
17
 
18
18
  # Move this to app.rb if you want it to be reloadable in dev mode.
19
19
  Merb::Router.prepare do
20
- match('/').to(:controller => "engine_app", :action =>'index')
20
+ match('/').to(:controller => 'engine_app', :action =>'index')
21
21
 
22
22
  default_routes
23
23
  end
@@ -0,0 +1,19 @@
1
+ require 'rubygems'
2
+ require 'appengine-rack'
3
+
4
+ require 'merb-core'
5
+
6
+ AppEngine::Rack.configure_app(
7
+ # :ssl_enabled => true,
8
+ :application => '{{name}}',
9
+ :version => 1)
10
+
11
+ Merb::Config.setup(:merb_root => File.dirname(__FILE__),
12
+ :environment => ENV['RACK_ENV'])
13
+
14
+ Merb.environment = Merb::Config[:environment]
15
+ Merb.root = Merb::Config[:merb_root]
16
+
17
+ Merb::BootLoader.run
18
+
19
+ run Merb::Rack::Application.new
@@ -1,34 +1,42 @@
1
- require 'merb-core'
2
- require 'merb-core/tasks/merb'
1
+ # Tasks provided by Merb are guarded with a rescue block as we need this file
2
+ # to work prior to installation of Merb.
3
3
 
4
- include FileUtils
4
+ begin
5
+ require 'merb-core'
6
+ require 'merb-core/tasks/merb'
5
7
 
6
- # Load the basic runtime dependencies; this will include
7
- # any plugins and therefore plugin rake tasks.
8
- init_env = ENV['MERB_ENV'] || 'rake'
9
- Merb.load_dependencies(:environment => init_env)
8
+ include FileUtils
9
+
10
+ # Load the basic runtime dependencies; this will include
11
+ # any plugins and therefore plugin rake tasks.
12
+ init_env = ENV['MERB_ENV'] || 'rake'
13
+ Merb.load_dependencies(:environment => init_env)
10
14
 
11
- # Get Merb plugins and dependencies
12
- Merb::Plugins.rakefiles.each { |r| require r }
15
+ # Get Merb plugins and dependencies
16
+ Merb::Plugins.rakefiles.each { |r| require r }
13
17
 
14
- # Load any app level custom rakefile extensions from lib/tasks
15
- tasks_path = File.join(File.dirname(__FILE__), "lib", "tasks")
16
- rake_files = Dir["#{tasks_path}/*.rake"]
17
- rake_files.each{|rake_file| load rake_file }
18
+ # Load any app level custom rakefile extensions from lib/tasks
19
+ tasks_path = File.join(File.dirname(__FILE__), "lib", "tasks")
20
+ rake_files = Dir["#{tasks_path}/*.rake"]
21
+ rake_files.each{|rake_file| load rake_file }
18
22
 
19
- require 'spec/rake/spectask'
20
- require 'merb-core/test/tasks/spectasks'
23
+ require 'spec/rake/spectask'
24
+ require 'merb-core/test/tasks/spectasks'
25
+ rescue Exception
26
+ end
21
27
 
22
- ##############################################################################
23
- # ADD YOUR CUSTOM TASKS IN /lib/tasks
24
- # NAME YOUR RAKE FILES file_name.rake
25
- ##############################################################################
28
+ # Task for loading gems needed by this template. Bootstrap to get installed...
26
29
 
27
- namespace :merb do
28
- desc 'Start a local test server on port 4000'
29
- task :run do
30
- puts 'Start a local test server on port 4000'
31
- `(jruby -S merb -V) 1>&2`
30
+ namespace :template do
31
+ desc 'Load missing gems to local gem repository'
32
+ task :gems do
33
+ puts 'Load missing gems to local gem repository'
34
+ `(sudo appcfg.rb gem install extlib merb-core) 1>&2`
32
35
  end
33
36
  end
34
37
 
38
+ # Add your own tasks...
39
+
40
+ namespace :merb do
41
+ end
42
+
@@ -20,7 +20,8 @@
20
20
  </center>
21
21
  </div>
22
22
  <div id='footer'>
23
- This tiny sample application was generated by
23
+ This tiny app was generated by
24
24
  <a href='http://github.com/ulbrich/jruby-enginize'>JRuby-Enginize</a>
25
+ to streamline Google AppEngine development.
25
26
  </div>
26
27
  </center>
@@ -3,18 +3,24 @@ README
3
3
  This is a generic README generated by jruby-enginize. Please replace with
4
4
  something more meaningful... ;-)
5
5
 
6
- GOOGLE APPENGINE DEPLOYMENT
6
+ INSTALL MISSING GEMS
7
+
8
+ As a basic requirement, you have to install missing gems required by the
9
+ template (this task is implemented individually for each template):
10
+
11
+ sudo rake template:gems
7
12
 
8
- !!Attention: As a basic requirement, the JRuby archive "jruby-complete.jar"
9
- has to be placed in the "lib" directory of your app and this is way to large
10
- to include it in the generator. If you have this file on your disk, copy it
11
- over and be sure to rename it to "jruby-complete.jar". If missing, the
12
- deployment will download the file for you. Expect a 10 MB download (only done
13
- once).
13
+ !!Attention: Whenever you want to install additional gems, be sure to use
14
+ "appcfg.rb gem" provided by the Google AppEngine JRuby tools and not "jgem" as
15
+ Google maintains a local repository per project and bundles the files to
16
+ upload from that information. You will run into missing gems on the server if
17
+ you bypass this!
18
+
19
+ GOOGLE APPENGINE DEPLOYMENT
14
20
 
15
21
  Deploy the application with
16
22
 
17
- jrake appengine:deploy
23
+ rake appengine:deploy
18
24
 
19
25
  and open
20
26
 
@@ -22,9 +28,9 @@ and open
22
28
 
23
29
  to have a first test.
24
30
 
25
- Be sure to set the version number in "appengine-web.xml" to a new value, when
26
- you are experimenting with an unstable version and don't want to risk your
27
- users getting exceptions.
31
+ Be sure to set the version number in the AppEngine::Rack.configure_app part
32
+ of "config.ru" to a new value, when you are experimenting with an unstable
33
+ version and don't want to risk your users getting exceptions.
28
34
 
29
35
  You can try the new version by opening e.g.
30
36
 
@@ -38,3 +44,25 @@ opening
38
44
  http://appengine.google.com/deployment?&app_id={{name}}
39
45
 
40
46
  and setting a new default.
47
+
48
+ SOME MORE INFO
49
+
50
+ - Gems installed with "appcfg.rb gem" reside in directory ".gems". Again: Do
51
+ not use "jgem" at all!
52
+
53
+ - Some gems will throw exceptions during bundling: Have a look for paths
54
+ assembled using ".." to reach the parent directory and replace with
55
+ File.dirname(...). Retry and be a good citizen and send in the patch the
56
+ developer of that gem... ;-)
57
+
58
+ - Data uploaded to the server is gathered in directory "WEB-INF" as with any
59
+ Java project. The first time "rake appengine:run" or "rake appengine:deploy"
60
+ is called, this directory will be created and "jruby-rack-xx.jar" is
61
+ downloaded from its homepage.
62
+
63
+ The first call to "rake appengine:run" or "rake appengine:deploy" with
64
+ downloading the rack jar will fail. Just ignore and retry.
65
+
66
+ - "WEB-INF/lib/gems.jar" is only created or updated after a call to
67
+ "appcfg.rb gem". This is enforced by "rake appengine:deploy" but not by
68
+ "rake appengine:update".
@@ -28,82 +28,44 @@ end
28
28
 
29
29
  desc 'Display some help and the README'
30
30
  task :help do
31
- puts 'Call "jruby -S rake --tasks" to learn what tasks are available...'
31
+ puts 'Call "rake --tasks" to learn what tasks are available...'
32
32
  puts
33
33
  puts File.read('README')
34
34
  end
35
35
 
36
36
  task :default => [:help]
37
37
 
38
- namespace :jruby do
39
- desc 'Download current "jruby-complete.jar" from dist.codehaus.org.'
40
- task :download do
41
- puts 'Download current "jruby-complete.jar" from dist.codehaus.org.'
42
-
43
- begin
44
- baseurl = 'http://dist.codehaus.org/jruby/current'
45
- directory = fetch(baseurl)
46
-
47
- if directory.kind_of? Net::HTTPOK and
48
- (match = directory.body.match(/.*"(jruby-complete-[^"]*\.jar)".*/)) and
49
- match.length == 2
50
- then
51
- `(curl -o lib/jruby-complete.jar "#{baseurl}/#{match[1]}") 1>&2`
52
- raise Errno::ENOENT if $? != 0
53
- else
54
- raise Errno::ENOENT
55
- end
56
- rescue Exception
57
- puts '!!Could not download "jruby-complete.jar". Retry or download manually.'
58
- exit(1)
59
- end
38
+ namespace :appengine do
39
+ desc 'Start a local test server on port 8000'
40
+ task :run do
41
+ puts 'Start a local test server on port 8000'
42
+ `(dev_appserver.rb .) 1>&2`
60
43
  end
61
44
 
62
- desc 'Run the jruby:download task if the JRuby JAR is missing.'
63
- task :check4jar do
64
- file = File.join(File.dirname(__FILE__), 'lib', 'jruby-complete.jar')
65
-
66
- puts 'Run the jruby:download task if the JRuby JAR is missing.'
67
-
68
- begin
69
- File.stat(file)
70
-
71
- `(unzip -l #{file}) 2>&1`
72
- raise Errno::ENOENT if $? != 0
73
-
74
- puts 'JRuby JAR already exists.'
75
- rescue Errno::ENOENT
76
- puts 'Need to download JRuby JAR. Downloading now...'
77
- Rake::Task['jruby:download'].invoke
78
- end
45
+ desc 'Force rebuilding "WEB-INF/lib/gems.jar"'
46
+ task :rebuildgems do
47
+ puts 'Force rebuilding "WEB-INF/lib/gems.jar"'
48
+ `(appcfg.rb gem help install) 2> /dev/null 1>&2`
79
49
  end
80
- end
81
50
 
82
- namespace :appengine do
83
- desc 'Create the WAR file for deployment'
84
- task :war do
85
- puts 'Create the WAR file for deployment.'
86
- `(jruby -S warble) 1>&2`
51
+ desc 'Build the application package'
52
+ task :bundle do
53
+ puts 'Build the application package.'
54
+ `(appcfg.rb --email={{email}} --enable_jar_splitting bundle .) 1>&2`
87
55
  end
88
56
 
89
- desc 'Upload the new application code'
90
- task :upload do
57
+ desc 'Upload the application code to the server'
58
+ task :update do
91
59
  puts 'Upload the new application code (this may take a while).'
92
- `(appcfg.sh --enable_jar_splitting --email={{email}} update tmp/war) 1>&2`
60
+ `(appcfg.rb --email={{email}} --enable_jar_splitting update .) 1>&2`
93
61
  end
94
62
 
95
63
  desc 'Roll back a blocked and halfway broken deploy'
96
64
  task :rollback do
97
65
  puts 'Roll back a blocked and halfway broken deploy.'
98
- `(appcfg.sh --enable_jar_splitting rollback tmp/war) 1>&2`
99
- end
100
-
101
- desc 'Remove temp stuff'
102
- task :clean do
103
- puts 'Remove temp stuff.'
104
- `rm -rf tmp {{name}}.war`
66
+ `(appcfg.rb --email={{email}} rollback .) 1>&2`
105
67
  end
106
68
 
107
- desc 'Deploy the application (generating WAR and uploading files)'
108
- task :deploy => ['jruby:check4jar', :war, :upload]
69
+ desc 'Deploy the application (build package and upload application code)'
70
+ task :deploy => [:rebuildgems, :bundle, :update]
109
71
  end
@@ -5,10 +5,17 @@ require 'rubygems'
5
5
  begin
6
6
  require 'haml'
7
7
  require 'sass'
8
+
8
9
  require 'sinatra'
9
10
  rescue LoadError => exception
10
- $stderr.puts '!!missing sinatra. Install sinatra gem and try again.'
11
- exit(1)
11
+ end
12
+
13
+ # Helpers to include...
14
+
15
+ helpers do
16
+ include Rack::Utils
17
+
18
+ alias_method :h, :escape_html
12
19
  end
13
20
 
14
21
  # GET /
@@ -1,13 +1,13 @@
1
1
  require 'rubygems'
2
+ require 'appengine-rack'
3
+
2
4
  require 'sinatra'
3
-
4
- root_dir = File.dirname(__FILE__)
5
-
6
- set :environment, :production
7
- set :root, root_dir
8
- set :app_file, File.join(root_dir, 'app.rb')
9
- disable :run
10
-
5
+
6
+ AppEngine::Rack.configure_app(
7
+ # :ssl_enabled => true,
8
+ :application => '{{name}}',
9
+ :version => 1)
10
+
11
11
  require 'app'
12
12
 
13
13
  run Sinatra::Application
@@ -0,0 +1,5 @@
1
+ 18c18
2
+ < File.join(File.dirname(__FILE__), '..', '..', file)
3
+ ---
4
+ > File.join(File.dirname(File.dirname(File.dirname(__FILE__))), file)
5
+
@@ -1,7 +1,16 @@
1
- namespace :sinatra do
2
- desc 'Start a local test server on port 4567'
3
- task :run do
4
- puts 'Start a local test server on port 4567'
5
- `(jruby -S app.rb) 1>&2`
1
+ # Task for loading gems needed by this template. Bootstrap to get installed...
2
+
3
+ namespace :template do
4
+ desc 'Load missing gems to local gem repository'
5
+ task :gems do
6
+ puts 'Load missing gems to local gem repository'
7
+ `(sudo appcfg.rb gem install jruby-openssl haml sinatra) 1>&2`
8
+ puts 'Add patch for Haml 2.2.2 if needed'
9
+ `(sudo patch --batch --silent .gems/gems/haml-2.2.2/lib/haml/util.rb < lib/tasks/haml-2_2_2-util.patch) 2> /dev/null 1>&2`
6
10
  end
7
11
  end
12
+
13
+ # Add your own tasks...
14
+
15
+ namespace :sinatra do
16
+ end
@@ -14,5 +14,6 @@
14
14
  %p
15
15
  %img{ :src => '/images/sinatra_logo.png' }
16
16
  %div{ :id => 'footer' }
17
- This tiny sample application was generated by
17
+ This tiny app was generated by
18
18
  %a{ :href => 'http://github.com/ulbrich/jruby-enginize' } JRuby-Enginize
19
+ to streamline Google AppEngine development.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ulbrich-jruby-enginize
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.5
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Ulbrich
@@ -30,8 +30,8 @@ files:
30
30
  - templates/sinatra/views/index.haml
31
31
  - templates/sinatra/public/images/sinatra_logo.png
32
32
  - templates/sinatra/lib/tasks/sinatra.rake
33
+ - templates/sinatra/lib/tasks/haml-2_2_2-util.patch
33
34
  - templates/sinatra/config.ru
34
- - templates/sinatra/config/warble.rb
35
35
  - templates/sinatra/app.rb
36
36
  - templates/sinatra/.gitignore
37
37
  - templates/shared/README
@@ -39,15 +39,13 @@ files:
39
39
  - templates/shared/public/robots.txt
40
40
  - templates/shared/public/images/appengine_logo.png
41
41
  - templates/shared/public/favicon.ico
42
- - templates/shared/lib/jruby-rack-0.9.4.jar
43
- - templates/shared/appengine-web.xml
44
42
  - templates/merb/views/layout.engine_app.html.erb
45
43
  - templates/merb/views/index.html.erb
46
44
  - templates/merb/spec/spec_helper.rb
47
45
  - templates/merb/public/stylesheets/default.css
48
46
  - templates/merb/public/images/merb_logo.png
49
47
  - templates/merb/lib/tasks/merb.rake
50
- - templates/merb/config/warble.rb
48
+ - templates/merb/config.ru
51
49
  - templates/merb/config/init.rb
52
50
  - templates/merb/config/framework.rb
53
51
  - templates/merb/app.rb
@@ -55,6 +53,7 @@ files:
55
53
  - README.rdoc
56
54
  has_rdoc: true
57
55
  homepage: http://github.com/ulbrich/jruby-enginize
56
+ licenses:
58
57
  post_install_message:
59
58
  rdoc_options:
60
59
  - --exclude
@@ -83,7 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
82
  requirements: []
84
83
 
85
84
  rubyforge_project:
86
- rubygems_version: 1.2.0
85
+ rubygems_version: 1.3.5
87
86
  signing_key:
88
87
  specification_version: 2
89
88
  summary: A package for generating Google AppEngine compliant JRuby projects.
@@ -1,85 +0,0 @@
1
- # Disable automatic framework detection by uncommenting/setting to false
2
- # Warbler.framework_detection = false
3
-
4
- # Warbler web application assembly configuration file
5
- Warbler::Config.new do |config|
6
- # Temporary directory where the application is staged
7
- # config.staging_dir = "tmp/war"
8
-
9
- # Application directories to be included in the webapp.
10
- config.dirs = %w(lib public views config)
11
-
12
- # Additional files/directories to include, above those in config.dirs
13
- # config.includes = FileList["db"]
14
- config.includes = FileList["appengine-web.xml", "app.rb"]
15
- # Additional files/directories to exclude
16
- # config.excludes = FileList["lib/tasks/*"]
17
-
18
- # Additional Java .jar files to include. Note that if .jar files are placed
19
- # in lib (and not otherwise excluded) then they need not be mentioned here.
20
- # JRuby and JRuby-Rack are pre-loaded in this list. Be sure to include your
21
- # own versions if you directly set the value
22
- # config.java_libs += FileList["lib/java/*.jar"]
23
-
24
- # Loose Java classes and miscellaneous files to be placed in WEB-INF/classes.
25
- # config.java_classes = FileList["target/classes/**.*"]
26
-
27
- # One or more pathmaps defining how the java classes should be copied into
28
- # WEB-INF/classes. The example pathmap below accompanies the java_classes
29
- # configuration above. See http://rake.rubyforge.org/classes/String.html#M000017
30
- # for details of how to specify a pathmap.
31
- # config.pathmaps.java_classes << "%{target/classes/,}p"
32
-
33
- # Gems to be included. You need to tell Warbler which gems your application needs
34
- # so that they can be packaged in the war file.
35
- config.gems = ['merb-core', 'extlib']
36
-
37
- # The most recent versions of gems are used.
38
- # You can specify versions of gems by using a hash assignment:
39
- # config.gems["foo"] = "2.0.2"
40
-
41
- # You can also use regexps or Gem::Dependency objects for flexibility or
42
- # fine-grained control.
43
- # config.gems << /^merb-/
44
- # config.gems << Gem::Dependency.new("merb-core", "= 0.9.3")
45
-
46
- # Include gem dependencies not mentioned specifically
47
- config.gem_dependencies = true
48
-
49
- # Files to be included in the root of the webapp. Note that files in public
50
- # will have the leading 'public/' part of the path stripped during staging.
51
- # config.public_html = FileList["public/**/*", "doc/**/*"]
52
-
53
- # Pathmaps for controlling how public HTML files are copied into the .war
54
- # config.pathmaps.public_html = ["%{public/,}p"]
55
-
56
- # Name of the war file (without the .war)
57
- config.war_name = "{{name}}"
58
-
59
- # Name of the MANIFEST.MF template for the war file. Defaults to the
60
- # MANIFEST.MF normally generated by `jar cf`.
61
- # config.manifest_file = "config/MANIFEST.MF"
62
-
63
- # Value of environment variables
64
- # config.webxml.foo.env = ENV['FOO_ENV']
65
-
66
- # Application booter to use, one of :rack, :rails, or :merb
67
- config.webxml.booter = :merb
68
-
69
- # When using the :rack booter, "Rackup" script to use.
70
- # The script is evaluated in a Rack::Builder to load the application.
71
- # Examples:
72
- # config.webxml.rackup = %{require './lib/demo'; run Rack::Adapter::Camping.new(Demo)}
73
- # config.webxml.rackup = require 'cgi' && CGI::escapeHTML(File.read("config.ru"))
74
-
75
- # Control the pool of runtimes. Leaving unspecified means
76
- # the pool will grow as needed to service requests. It is recommended
77
- # that you fix these values when running a production server!
78
- # config.webxml.jruby.min.runtimes = 2
79
- # config.webxml.jruby.max.runtimes = 4
80
- config.webxml.jruby.min.runtimes = 1
81
- config.webxml.jruby.max.runtimes = 1
82
- config.webxml.jruby.init.serial = true
83
-
84
- config.java_libs = []
85
- end
@@ -1,21 +0,0 @@
1
- <appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
2
- <application>{{name}}</application>
3
- <version>1</version>
4
- <static-files />
5
- <resource-files />
6
- <sessions-enabled>false</sessions-enabled>
7
- <system-properties>
8
- <property name="jruby.management.enabled" value="false" />
9
- <property name="os.arch" value="" />
10
- <property name="jruby.compile.mode" value="JIT"/> <!-- JIT|FORCE|OFF -->
11
- <property name="jruby.compile.fastest" value="true"/>
12
- <property name="jruby.compile.frameless" value="true"/>
13
- <property name="jruby.compile.positionless" value="true"/>
14
- <property name="jruby.compile.threadless" value="false"/>
15
- <property name="jruby.compile.fastops" value="false"/>
16
- <property name="jruby.compile.fastcase" value="false"/>
17
- <property name="jruby.compile.chainsize" value="500"/>
18
- <property name="jruby.compile.lazyHandles" value="false"/>
19
- <property name="jruby.compile.peephole" value="true"/>
20
- </system-properties>
21
- </appengine-web-app>
@@ -1,85 +0,0 @@
1
- # Disable automatic framework detection by uncommenting/setting to false
2
- # Warbler.framework_detection = false
3
-
4
- # Warbler web application assembly configuration file
5
- Warbler::Config.new do |config|
6
- # Temporary directory where the application is staged
7
- # config.staging_dir = "tmp/war"
8
-
9
- # Application directories to be included in the webapp.
10
- config.dirs = %w(lib public views)
11
-
12
- # Additional files/directories to include, above those in config.dirs
13
- # config.includes = FileList["db"]
14
- config.includes = FileList["appengine-web.xml", "app.rb", "config.ru"]
15
- # Additional files/directories to exclude
16
- # config.excludes = FileList["lib/tasks/*"]
17
-
18
- # Additional Java .jar files to include. Note that if .jar files are placed
19
- # in lib (and not otherwise excluded) then they need not be mentioned here.
20
- # JRuby and JRuby-Rack are pre-loaded in this list. Be sure to include your
21
- # own versions if you directly set the value
22
- # config.java_libs += FileList["lib/java/*.jar"]
23
-
24
- # Loose Java classes and miscellaneous files to be placed in WEB-INF/classes.
25
- # config.java_classes = FileList["target/classes/**.*"]
26
-
27
- # One or more pathmaps defining how the java classes should be copied into
28
- # WEB-INF/classes. The example pathmap below accompanies the java_classes
29
- # configuration above. See http://rake.rubyforge.org/classes/String.html#M000017
30
- # for details of how to specify a pathmap.
31
- # config.pathmaps.java_classes << "%{target/classes/,}p"
32
-
33
- # Gems to be included. You need to tell Warbler which gems your application needs
34
- # so that they can be packaged in the war file.
35
- config.gems = ['sinatra', 'haml']
36
-
37
- # The most recent versions of gems are used.
38
- # You can specify versions of gems by using a hash assignment:
39
- # config.gems["foo"] = "2.0.2"
40
-
41
- # You can also use regexps or Gem::Dependency objects for flexibility or
42
- # fine-grained control.
43
- # config.gems << /^merb-/
44
- # config.gems << Gem::Dependency.new("merb-core", "= 0.9.3")
45
-
46
- # Include gem dependencies not mentioned specifically
47
- config.gem_dependencies = true
48
-
49
- # Files to be included in the root of the webapp. Note that files in public
50
- # will have the leading 'public/' part of the path stripped during staging.
51
- # config.public_html = FileList["public/**/*", "doc/**/*"]
52
-
53
- # Pathmaps for controlling how public HTML files are copied into the .war
54
- # config.pathmaps.public_html = ["%{public/,}p"]
55
-
56
- # Name of the war file (without the .war)
57
- config.war_name = "{{name}}"
58
-
59
- # Name of the MANIFEST.MF template for the war file. Defaults to the
60
- # MANIFEST.MF normally generated by `jar cf`.
61
- # config.manifest_file = "config/MANIFEST.MF"
62
-
63
- # Value of environment variables
64
- # config.webxml.foo.env = ENV['FOO_ENV']
65
-
66
- # Application booter to use, one of :rack, :rails, or :merb
67
- config.webxml.booter = :rack
68
-
69
- # When using the :rack booter, "Rackup" script to use.
70
- # The script is evaluated in a Rack::Builder to load the application.
71
- # Examples:
72
- # config.webxml.rackup = %{require './lib/demo'; run Rack::Adapter::Camping.new(Demo)}
73
- # config.webxml.rackup = require 'cgi' && CGI::escapeHTML(File.read("config.ru"))
74
-
75
- # Control the pool of runtimes. Leaving unspecified means
76
- # the pool will grow as needed to service requests. It is recommended
77
- # that you fix these values when running a production server!
78
- # config.webxml.jruby.min.runtimes = 2
79
- # config.webxml.jruby.max.runtimes = 4
80
- config.webxml.jruby.min.runtimes = 1
81
- config.webxml.jruby.max.runtimes = 1
82
- config.webxml.jruby.init.serial = true
83
-
84
- config.java_libs = []
85
- end