merb-gen 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. data/LICENSE +20 -0
  2. data/README +10 -0
  3. data/Rakefile +47 -0
  4. data/TODO +4 -0
  5. data/app_generators/merb/USAGE +0 -0
  6. data/app_generators/merb/merb_generator.rb +36 -0
  7. data/app_generators/merb/templates/Rakefile +126 -0
  8. data/app_generators/merb/templates/app/controllers/application.rb +2 -0
  9. data/app_generators/merb/templates/app/controllers/exceptions.rb +13 -0
  10. data/app_generators/merb/templates/app/helpers/global_helpers.rb +5 -0
  11. data/app_generators/merb/templates/app/views/exceptions/internal_server_error.html.erb +216 -0
  12. data/app_generators/merb/templates/app/views/exceptions/not_acceptable.html.erb +55 -0
  13. data/app_generators/merb/templates/app/views/exceptions/not_found.html.erb +39 -0
  14. data/app_generators/merb/templates/app/views/layout/application.html.erb +11 -0
  15. data/app_generators/merb/templates/autotest/discover.rb +1 -0
  16. data/app_generators/merb/templates/autotest/merb.rb +149 -0
  17. data/app_generators/merb/templates/autotest/merb_rspec.rb +202 -0
  18. data/app_generators/merb/templates/config/environments/development.rb +6 -0
  19. data/app_generators/merb/templates/config/environments/production.rb +5 -0
  20. data/app_generators/merb/templates/config/environments/rake.rb +7 -0
  21. data/app_generators/merb/templates/config/environments/test.rb +5 -0
  22. data/app_generators/merb/templates/config/init.rb +58 -0
  23. data/app_generators/merb/templates/config/rack.rb +1 -0
  24. data/app_generators/merb/templates/config/router.rb +35 -0
  25. data/app_generators/merb/templates/public/images/merb.jpg +0 -0
  26. data/app_generators/merb/templates/public/merb.fcgi +22 -0
  27. data/app_generators/merb/templates/public/stylesheets/master.css +119 -0
  28. data/app_generators/merb/templates/spec/spec.opts +0 -0
  29. data/app_generators/merb/templates/spec/spec_helper.rb +11 -0
  30. data/app_generators/merb/templates/test/test_helper.rb +14 -0
  31. data/app_generators/merb_flat/merb_flat_generator.rb +22 -0
  32. data/app_generators/merb_flat/templates/README.txt +10 -0
  33. data/app_generators/merb_flat/templates/application.rb +15 -0
  34. data/app_generators/merb_flat/templates/config/framework.rb +5 -0
  35. data/app_generators/merb_flat/templates/config/init.rb +19 -0
  36. data/app_generators/merb_flat/templates/views/foo.html.erb +3 -0
  37. data/app_generators/merb_plugin/merb_plugin_generator.rb +22 -0
  38. data/app_generators/merb_plugin/templates/LICENSE +20 -0
  39. data/app_generators/merb_plugin/templates/README +4 -0
  40. data/app_generators/merb_plugin/templates/Rakefile +44 -0
  41. data/app_generators/merb_plugin/templates/TODO +5 -0
  42. data/app_generators/merb_plugin/templates/lib/%base_name%.rb +18 -0
  43. data/app_generators/merb_plugin/templates/lib/%base_name%/merbtasks.rb +6 -0
  44. data/app_generators/merb_plugin/templates/spec/%base_name%_spec.rb +7 -0
  45. data/app_generators/merb_plugin/templates/spec/spec_helper.rb +2 -0
  46. data/app_generators/merb_plugin/templates/test/%base_name%_test.rb +0 -0
  47. data/app_generators/merb_plugin/templates/test/test_helper.rb +2 -0
  48. data/app_generators/merb_very_flat/merb_very_flat_generator.rb +37 -0
  49. data/app_generators/merb_very_flat/templates/%app_file_name%.rb +15 -0
  50. data/app_generators/merb_very_flat/templates/README.txt +9 -0
  51. data/bin/merb-gen +103 -0
  52. data/lib/merb-gen.rb +38 -0
  53. data/lib/merb-gen/base.rb +62 -0
  54. data/lib/merb-gen/helpers.rb +108 -0
  55. data/merb_default_generators/model/USAGE +0 -0
  56. data/merb_default_generators/model/model_generator.rb +40 -0
  57. data/merb_default_generators/model/templates/app/models/%model_file_name%.rb +5 -0
  58. data/merb_default_generators/resource_controller/USAGE +0 -0
  59. data/merb_default_generators/resource_controller/resource_controller_generator.rb +74 -0
  60. data/merb_default_generators/resource_controller/templates/app/controllers/%controller_file_name%.rb +46 -0
  61. data/merb_default_generators/resource_controller/templates/app/helpers/%controller_file_name%_helper.rb +16 -0
  62. data/merb_default_generators/resource_controller/templates/app/views/%controller_file_name%/delete.html.erb +3 -0
  63. data/merb_default_generators/resource_controller/templates/app/views/%controller_file_name%/edit.html.erb +3 -0
  64. data/merb_default_generators/resource_controller/templates/app/views/%controller_file_name%/index.html.erb +3 -0
  65. data/merb_default_generators/resource_controller/templates/app/views/%controller_file_name%/new.html.erb +3 -0
  66. data/merb_default_generators/resource_controller/templates/app/views/%controller_file_name%/show.html.erb +3 -0
  67. data/merb_generators/controller/USAGE +0 -0
  68. data/merb_generators/controller/controller_generator.rb +59 -0
  69. data/merb_generators/controller/templates/app/controllers/%controller_file_name%.rb +18 -0
  70. data/merb_generators/controller/templates/app/helpers/%controller_file_name%_helper.rb +16 -0
  71. data/merb_generators/controller/templates/app/views/%controller_file_name%/index.html.erb +1 -0
  72. data/merb_generators/freezer/USAGE +0 -0
  73. data/merb_generators/freezer/freezer_generator.rb +25 -0
  74. data/merb_generators/freezer/templates/script/frozen-merb +43 -0
  75. data/merb_generators/part_controller/USAGE +0 -0
  76. data/merb_generators/part_controller/part_controller_generator.rb +58 -0
  77. data/merb_generators/part_controller/templates/app/helpers/%controller_file_name%_part_helper.rb +16 -0
  78. data/merb_generators/part_controller/templates/app/parts/%controller_file_name%_part.rb +18 -0
  79. data/merb_generators/part_controller/templates/app/parts/views/%controller_file_name%_part/index.html.erb +3 -0
  80. data/merb_generators/resource/USAGE +0 -0
  81. data/merb_generators/resource/resource_generator.rb +48 -0
  82. data/rspec_generators/merb_controller_test/merb_controller_test_generator.rb +49 -0
  83. data/rspec_generators/merb_controller_test/templates/spec/controllers/%controller_full_file_path%_spec.rb +7 -0
  84. data/rspec_generators/merb_controller_test/templates/spec/helpers/%controller_full_file_path%_helper_spec.rb +5 -0
  85. data/rspec_generators/merb_model_test/merb_model_test_generator.rb +35 -0
  86. data/rspec_generators/merb_model_test/templates/spec/models/%model_file_name%_spec.rb +7 -0
  87. data/rspec_generators/merb_resource_controller_test/merb_resource_controller_test_generator.rb +49 -0
  88. data/rspec_generators/merb_resource_controller_test/templates/spec/controllers/%controller_full_file_path%_spec.rb +7 -0
  89. data/rspec_generators/merb_resource_controller_test/templates/spec/helpers/%controller_full_file_path%_helpers.rb +5 -0
  90. data/rspec_generators/merb_resource_controller_test/templates/spec/views/%controller_full_file_path%/delete.html.erb_spec.rb +1 -0
  91. data/rspec_generators/merb_resource_controller_test/templates/spec/views/%controller_full_file_path%/edit.html.erb_spec.rb +1 -0
  92. data/rspec_generators/merb_resource_controller_test/templates/spec/views/%controller_full_file_path%/index.html.erb_spec.rb +1 -0
  93. data/rspec_generators/merb_resource_controller_test/templates/spec/views/%controller_full_file_path%/new.html.erb_spec.rb +1 -0
  94. data/rspec_generators/merb_resource_controller_test/templates/spec/views/%controller_full_file_path%/show.html.erb_spec.rb +1 -0
  95. data/test_unit_generators/merb_controller_test/merb_controller_test_generator.rb +47 -0
  96. data/test_unit_generators/merb_controller_test/templates/test/functional/%controller_full_file_path%_test.rb +17 -0
  97. data/test_unit_generators/merb_model_test/merb_model_test_generator.rb +34 -0
  98. data/test_unit_generators/merb_model_test/templates/test/unit/%model_file_name%_test.rb +9 -0
  99. data/test_unit_generators/merb_resource_controller_test/merb_resource_controller_test_generator.rb +31 -0
  100. metadata +253 -0
@@ -0,0 +1,6 @@
1
+ Merb.logger.info("Loaded DEVELOPMENT Environment...")
2
+ Merb::Config.use { |c|
3
+ c[:exception_details] = true
4
+ c[:reload_classes] = true
5
+ c[:reload_time] = 0.5
6
+ }
@@ -0,0 +1,5 @@
1
+ Merb.logger.info("Loaded PRODUCTION Environment...")
2
+ Merb::Config.use { |c|
3
+ c[:exception_details] = false
4
+ c[:reload_classes] = false
5
+ }
@@ -0,0 +1,7 @@
1
+ Merb.logger.info("Loaded RAKE Environment...")
2
+ Merb::Config.use { |c|
3
+ c[:exception_details] = true
4
+ c[:reload_classes] = false
5
+ c[:log_auto_flush ] = true
6
+ c[:log_file] = Merb.log_path / 'merb_rake.log'
7
+ }
@@ -0,0 +1,5 @@
1
+ Merb.logger.info("Loaded TEST Environment...")
2
+ Merb::Config.use { |c|
3
+ c[:testing] = true
4
+ c[:exception_details] = true
5
+ }
@@ -0,0 +1,58 @@
1
+ # Make the app's "gems" directory a place where gems are loaded from
2
+ Gem.clear_paths
3
+ Gem.path.unshift(Merb.root / "gems")
4
+
5
+ # Make the app's "lib" directory a place where ruby files get "require"d from
6
+ $LOAD_PATH.unshift(Merb.root / "lib")
7
+
8
+ <% require 'sha1' %>
9
+ Merb::Config.use do |c|
10
+
11
+ ### Sets up a custom session id key, if you want to piggyback sessions of other applications
12
+ ### with the cookie session store. If not specified, defaults to '_session_id'.
13
+ # c[:session_id_key] = '_session_id'
14
+
15
+ c[:session_secret_key] = '<%= SHA1.new(rand(100000000000).to_s).to_s %>'
16
+ c[:session_store] = 'cookie'
17
+ end
18
+
19
+ ### Merb doesn't come with database support by default. You need
20
+ ### an ORM plugin. Install one, and uncomment one of the following lines,
21
+ ### if you need a database.
22
+
23
+ ### Uncomment for DataMapper ORM
24
+ <%= "# " unless default_orm?(:datamapper) %>use_orm :datamapper
25
+
26
+ ### Uncomment for ActiveRecord ORM
27
+ <%= "# " unless default_orm?(:activerecord) %>use_orm :activerecord
28
+
29
+ ### Uncomment for Sequel ORM
30
+ <%= "# " unless default_orm?(:sequel) %>use_orm :sequel
31
+
32
+
33
+ ### This defines which test framework the generators will use
34
+ ### rspec is turned on by default
35
+ ###
36
+ ### Note that you need to install the merb_rspec if you want to ue
37
+ ### rspec and merb_test_unit if you want to use test_unit.
38
+ ### merb_rspec is installed by default if you did gem install
39
+ ### merb.
40
+ ###
41
+ <%= "# " unless default_test_suite?(:test) %>use_test :test_unit
42
+ <%= "# " unless default_test_suite?(:spec) %>use_test :rspec
43
+
44
+ ### Add your other dependencies here
45
+
46
+ # These are some examples of how you might specify dependencies.
47
+ #
48
+ # dependencies "RedCloth", "merb_helpers"
49
+ # OR
50
+ # dependency "RedCloth", "> 3.0"
51
+ # OR
52
+ # dependencies "RedCloth" => "> 3.0", "ruby-aes-cext" => "= 1.0"
53
+
54
+ Merb::BootLoader.after_app_loads do
55
+ ### Add dependencies here that must load after the application loads:
56
+
57
+ # dependency "magic_admin" # this gem uses the app's model classes
58
+ end
@@ -0,0 +1 @@
1
+ run Merb::Rack::Application.new
@@ -0,0 +1,35 @@
1
+ # Merb::Router is the request routing mapper for the merb framework.
2
+ #
3
+ # You can route a specific URL to a controller / action pair:
4
+ #
5
+ # r.match("/contact").
6
+ # to(:controller => "info", :action => "contact")
7
+ #
8
+ # You can define placeholder parts of the url with the :symbol notation. These
9
+ # placeholders will be available in the params hash of your controllers. For example:
10
+ #
11
+ # r.match("/books/:book_id/:action").
12
+ # to(:controller => "books")
13
+ #
14
+ # Or, use placeholders in the "to" results for more complicated routing, e.g.:
15
+ #
16
+ # r.match("/admin/:module/:controller/:action/:id").
17
+ # to(:controller => ":module/:controller")
18
+ #
19
+ # You can also use regular expressions, deferred routes, and many other options.
20
+ # See merb/specs/merb/router.rb for a fairly complete usage sample.
21
+
22
+ Merb.logger.info("Compiling routes...")
23
+ Merb::Router.prepare do |r|
24
+ # RESTful routes
25
+ # r.resources :posts
26
+
27
+ # This is the default route for /:controller/:action/:id
28
+ # This is fine for most cases. If you're heavily using resource-based
29
+ # routes, you may want to comment/remove this line to prevent
30
+ # clients from calling your create or destroy actions with a GET
31
+ r.default_routes
32
+
33
+ # Change this for your home page to be available at /
34
+ # r.match('/').to(:controller => 'whatever', :action =>'index')
35
+ end
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'merb-core'
5
+
6
+ # this is Merb.root, change this if you have some funky setup.
7
+ merb_root = File.expand_path(File.dirname(__FILE__) / '../')
8
+
9
+ # If the fcgi process runs as apache, make sure
10
+ # we have an inlinedir set for Rubyinline action-args to work
11
+ unless ENV["INLINEDIR"] || ENV["HOME"]
12
+ tmpdir = merb_root / "tmp"
13
+ unless File.directory?(tmpdir)
14
+ Dir.mkdir(tmpdir)
15
+ end
16
+ ENV["INLINEDIR"] = tmpdir
17
+ end
18
+
19
+ # start merb with the fcgi adapter, add options or change the log dir here
20
+ Merb.start(:adapter => 'fcgi',
21
+ :merb_root => merb_root,
22
+ :log_file => merb_root /'log'/'merb.log')
@@ -0,0 +1,119 @@
1
+ body {
2
+ font-family: Arial, Verdana, sans-serif;
3
+ font-size: 12px;
4
+ background-color: #fff;
5
+ }
6
+ * {
7
+ margin: 0px;
8
+ padding: 0px;
9
+ text-decoration: none;
10
+ }
11
+ html {
12
+ height: 100%;
13
+ margin-bottom: 1px;
14
+ }
15
+ #container {
16
+ width: 80%;
17
+ text-align: left;
18
+ background-color: #fff;
19
+ margin-right: auto;
20
+ margin-left: auto;
21
+ }
22
+ #header-container {
23
+ width: 100%;
24
+ padding-top: 15px;
25
+ }
26
+ #header-container h1, #header-container h2 {
27
+ margin-left: 6px;
28
+ margin-bottom: 6px;
29
+ }
30
+ .spacer {
31
+ width: 100%;
32
+ height: 15px;
33
+ }
34
+ hr {
35
+ border: 0px;
36
+ color: #ccc;
37
+ background-color: #cdcdcd;
38
+ height: 1px;
39
+ width: 100%;
40
+ text-align: left;
41
+ }
42
+ h1 {
43
+ font-size: 28px;
44
+ color: #c55;
45
+ background-color: #fff;
46
+ font-family: Arial, Verdana, sans-serif;
47
+ font-weight: 300;
48
+ }
49
+ h2 {
50
+ font-size: 15px;
51
+ color: #999;
52
+ font-family: Arial, Verdana, sans-serif;
53
+ font-weight: 300;
54
+ background-color: #fff;
55
+ }
56
+ h3 {
57
+ color: #4d9b12;
58
+ font-size: 15px;
59
+ text-align: left;
60
+ font-weight: 300;
61
+ padding: 5px;
62
+ margin-top: 5px;
63
+ }
64
+
65
+ #left-container {
66
+ float: left;
67
+ width: 250px;
68
+ background-color: #FFFFFF;
69
+ color: black;
70
+ }
71
+
72
+ #left-container h3 {
73
+ color: #c55;
74
+ }
75
+
76
+ #main-container {
77
+ margin: 5px 5px 5px 260px;
78
+ padding: 15px;
79
+ border-left: 1px solid silver;
80
+ min-height: 400px;
81
+ }
82
+ p {
83
+ color: #000;
84
+ background-color: #fff;
85
+ line-height: 20px;
86
+ padding: 5px;
87
+ }
88
+ a {
89
+ color: #4d9b12;
90
+ background-color: #fff;
91
+ text-decoration: none;
92
+ }
93
+ a:hover {
94
+ color: #4d9b12;
95
+ background-color: #fff;
96
+ text-decoration: underline;
97
+ }
98
+ #footer-container {
99
+ clear: both;
100
+ font-size: 12px;
101
+ font-family: Verdana, Arial, sans-serif;
102
+ }
103
+ .right {
104
+ float: right;
105
+ font-size: 100%;
106
+ margin-top: 5px;
107
+ color: #999;
108
+ background-color: #fff;
109
+ }
110
+ .left {
111
+ float: left;
112
+ font-size: 100%;
113
+ margin-top: 5px;
114
+ color: #999;
115
+ background-color: #fff;
116
+ }
117
+ #main-container ul {
118
+ margin-left: 3.0em;
119
+ }
@@ -0,0 +1,11 @@
1
+ require 'rubygems'
2
+ require 'merb-core'
3
+ require 'spec' # Satiates Autotest and anyone else not using the Rake tasks
4
+
5
+ Merb.start_environment(:testing => true, :adapter => 'runner', :environment => ENV['MERB_ENV'] || 'test')
6
+
7
+ Spec::Runner.configure do |config|
8
+ config.include(Merb::Test::ViewHelper)
9
+ config.include(Merb::Test::RouteHelper)
10
+ config.include(Merb::Test::ControllerHelper)
11
+ end
@@ -0,0 +1,14 @@
1
+ $TESTING=true
2
+ require 'rubygems'
3
+ require 'merb-core'
4
+
5
+
6
+ # TODO: Boot Merb, via the Test Rack adapter
7
+ Merb.start :environment => (ENV['MERB_ENV'] || 'test'),
8
+ :merb_root => File.join(File.dirname(__FILE__), ".." )
9
+
10
+
11
+ class Test::Unit::TestCase
12
+ include Merb::Test::RequestHelper
13
+ # Add more helper methods to be used by all tests here...
14
+ end
@@ -0,0 +1,22 @@
1
+ require "merb-gen/helpers"
2
+ require "merb-gen/base"
3
+
4
+ class MerbFlatGenerator < Merb::GeneratorBase
5
+
6
+ def initialize(args, runtime_options = {})
7
+ @base = File.dirname(__FILE__)
8
+ @name = args.first
9
+ super
10
+ @destination_root = @name
11
+ end
12
+
13
+ protected
14
+ def banner
15
+ <<-EOS.split("\n").map{|x| x.strip}.join("\n")
16
+ Creates a flat Merb application stub.
17
+
18
+ USAGE: #{spec.name} path --flat"
19
+ EOS
20
+ end
21
+
22
+ end
@@ -0,0 +1,10 @@
1
+ Merb Flat
2
+ ==============
3
+
4
+ An example of a small Merb application. Uses a single views directory and one
5
+ controller file.
6
+
7
+ Start with
8
+
9
+ merb
10
+
@@ -0,0 +1,15 @@
1
+ class Foo < Merb::Controller
2
+
3
+ def _template_location(action, type = nil, controller = controller_name)
4
+ controller == "layout" ? "layout.#{action}.#{type}" : "#{action}.#{type}"
5
+ end
6
+
7
+ def index
8
+ "Hello"
9
+ end
10
+
11
+ def foo
12
+ render
13
+ end
14
+
15
+ end
@@ -0,0 +1,5 @@
1
+ Merb::Config[:framework] = {
2
+ :application => "application.rb",
3
+ :view => "views",
4
+ :config => "config"
5
+ }
@@ -0,0 +1,19 @@
1
+ # Move this to application.rb if you want it to be reloadable in dev mode.
2
+ Merb::Router.prepare do |r|
3
+ r.match('/').to(:controller => 'foo', :action =>'index')
4
+ r.default_routes
5
+ end
6
+
7
+ <% require 'sha1' %>
8
+ Merb::Config.use { |c|
9
+ c[:environment] = 'production',
10
+ c[:framework] = {},
11
+ c[:log_level] = 'debug',
12
+ c[:use_mutex] = false,
13
+ c[:session_store] = 'cookie',
14
+ c[:session_id_key] = '_session_id',
15
+ c[:session_secret_key] = '<%= SHA1.new(rand(100000000000).to_s).to_s %>',
16
+ c[:exception_details] = true,
17
+ c[:reload_classes] = true,
18
+ c[:reload_time] = 0.5
19
+ }
@@ -0,0 +1,3 @@
1
+ Hello Application
2
+
3
+ <%%= params.inspect %>
@@ -0,0 +1,22 @@
1
+ require "merb-gen/helpers"
2
+ require "merb-gen/base"
3
+
4
+ class MerbPluginGenerator < Merb::GeneratorBase
5
+
6
+ def initialize(args, runtime_options = {})
7
+ @base = File.dirname(__FILE__)
8
+ @name = args.first
9
+ super
10
+ @destination_root = @name
11
+ end
12
+
13
+ protected
14
+ def banner
15
+ <<-EOS.split("\n").map{|x| x.strip}.join("\n")
16
+ Creates a Merb plugin stub.
17
+
18
+ USAGE: #{spec.name} --generate-plugin path"
19
+ EOS
20
+ end
21
+
22
+ end
@@ -0,0 +1,20 @@
1
+ Copyright (c) <%= Time.now.year %> YOUR NAME
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,4 @@
1
+ <%= base_name %>
2
+ <%= "=" * base_name.size %>
3
+
4
+ A plugin for the Merb framework that provides ...
@@ -0,0 +1,44 @@
1
+ require 'rubygems'
2
+ require 'rake/gempackagetask'
3
+
4
+ PLUGIN = "<%= base_name %>"
5
+ NAME = "<%= base_name %>"
6
+ VERSION = "0.0.1"
7
+ AUTHOR = "Your Name"
8
+ EMAIL = "Your Email"
9
+ HOMEPAGE = "http://merb-plugins.rubyforge.org/<%= base_name %>/"
10
+ SUMMARY = "Merb plugin that provides ..."
11
+
12
+ spec = Gem::Specification.new do |s|
13
+ s.name = NAME
14
+ s.version = VERSION
15
+ s.platform = Gem::Platform::RUBY
16
+ s.has_rdoc = true
17
+ s.extra_rdoc_files = ["README", "LICENSE", 'TODO']
18
+ s.summary = SUMMARY
19
+ s.description = s.summary
20
+ s.author = AUTHOR
21
+ s.email = EMAIL
22
+ s.homepage = HOMEPAGE
23
+ s.add_dependency('merb', '>= 0.4.0')
24
+ s.require_path = 'lib'
25
+ s.autorequire = PLUGIN
26
+ s.files = %w(LICENSE README Rakefile TODO) + Dir.glob("{lib,specs}/**/*")
27
+ end
28
+
29
+ Rake::GemPackageTask.new(spec) do |pkg|
30
+ pkg.gem_spec = spec
31
+ end
32
+
33
+ task :install => [:package] do
34
+ sh %{sudo gem install pkg/#{NAME}-#{VERSION}}
35
+ end
36
+
37
+ namespace :jruby do
38
+
39
+ desc "Run :package and install the resulting .gem with jruby"
40
+ task :install => :package do
41
+ sh %{#{SUDO} jruby -S gem install pkg/#{NAME}-#{Merb::VERSION}.gem --no-rdoc --no-ri}
42
+ end
43
+
44
+ end