merb 0.0.4 → 0.0.5

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 (81) hide show
  1. data/README +41 -2
  2. data/Rakefile +4 -2
  3. data/TODO +3 -3
  4. data/bin/merb +157 -3
  5. data/doc/rdoc/classes/Hash.html +4 -4
  6. data/doc/rdoc/classes/Merb.html +2 -12
  7. data/doc/rdoc/classes/Merb/Controller.html +347 -156
  8. data/doc/rdoc/classes/Merb/RouteMatcher.html +93 -59
  9. data/doc/rdoc/classes/MerbHandler.html +117 -107
  10. data/doc/rdoc/classes/MerbHash.html +64 -58
  11. data/doc/rdoc/classes/Noroutefound.html +16 -10
  12. data/doc/rdoc/classes/Object.html +5 -5
  13. data/doc/rdoc/classes/String.html +28 -16
  14. data/doc/rdoc/classes/Symbol.html +15 -8
  15. data/doc/rdoc/created.rid +1 -1
  16. data/doc/rdoc/files/README.html +56 -4
  17. data/doc/rdoc/files/TODO.html +4 -4
  18. data/doc/rdoc/files/lib/merb/merb_controller_rb.html +1 -1
  19. data/doc/rdoc/files/lib/merb/merb_handler_rb.html +1 -1
  20. data/doc/rdoc/files/lib/merb/merb_router_rb.html +1 -1
  21. data/doc/rdoc/files/lib/merb/merb_utils_rb.html +1 -1
  22. data/doc/rdoc/files/lib/merb_rb.html +30 -2
  23. data/doc/rdoc/files/lib/{merb_config_rb.html → merb_tasks_rb.html} +4 -4
  24. data/doc/rdoc/fr_class_index.html +0 -2
  25. data/doc/rdoc/fr_file_index.html +1 -3
  26. data/doc/rdoc/fr_method_index.html +21 -21
  27. data/examples/app_skeleton/Rakefile +81 -0
  28. data/examples/app_skeleton/dist/conf/merb_init.rb +15 -0
  29. data/examples/{skeleton → app_skeleton}/dist/conf/router.rb +5 -7
  30. data/examples/app_skeleton/scripts/merb_stop +5 -0
  31. data/examples/app_skeleton/scripts/new_migration +21 -0
  32. data/examples/{skeleton → app_skeleton}/test/test_helper.rb +0 -0
  33. data/examples/sample_app/Rakefile +81 -0
  34. data/examples/sample_app/dist/app/controllers/posts.rb +26 -10
  35. data/examples/sample_app/dist/app/models/comment.rb +3 -0
  36. data/examples/sample_app/dist/app/models/post.rb +2 -11
  37. data/examples/sample_app/dist/app/views/layout/application.rhtml +59 -4
  38. data/examples/sample_app/dist/app/views/posts/_comments.rhtml +11 -0
  39. data/examples/sample_app/dist/app/views/posts/comment.merbjs +1 -0
  40. data/examples/sample_app/dist/app/views/posts/list.rhtml +2 -4
  41. data/examples/sample_app/dist/app/views/posts/new.rhtml +2 -2
  42. data/examples/sample_app/dist/app/views/posts/show.rhtml +35 -3
  43. data/examples/sample_app/dist/conf/merb_init.rb +2 -4
  44. data/examples/sample_app/dist/conf/router.rb +3 -4
  45. data/examples/sample_app/dist/public/images/bg.jpg +0 -0
  46. data/examples/sample_app/dist/public/images/book.gif +0 -0
  47. data/examples/sample_app/dist/public/images/booksmall.gif +0 -0
  48. data/examples/sample_app/dist/public/images/greenright.jpg +0 -0
  49. data/examples/sample_app/dist/public/images/louiecon.gif +0 -0
  50. data/examples/sample_app/dist/public/images/menu.gif +0 -0
  51. data/examples/sample_app/dist/public/images/menuleft.gif +0 -0
  52. data/examples/sample_app/dist/public/images/menuright.gif +0 -0
  53. data/examples/sample_app/dist/public/images/mountain.jpg +0 -0
  54. data/examples/sample_app/dist/public/images/n3.jpg +0 -0
  55. data/examples/sample_app/dist/public/images/nautica.jpg +0 -0
  56. data/examples/sample_app/dist/public/javascripts/application.js +0 -0
  57. data/examples/sample_app/dist/public/javascripts/effects.js +975 -0
  58. data/examples/sample_app/dist/public/javascripts/prototype.js +2264 -0
  59. data/examples/sample_app/dist/public/stylesheets/merb.css +277 -0
  60. data/examples/sample_app/dist/schema/migrations/001_add_comments_to_posts.rb +22 -0
  61. data/examples/sample_app/dist/schema/schema.rb +22 -0
  62. data/examples/sample_app/log/merb.log +164394 -0
  63. data/examples/sample_app/script/merb_stop +9 -0
  64. data/examples/sample_app/script/new_migration +21 -0
  65. data/lib/merb.rb +7 -4
  66. data/lib/merb/merb_controller.rb +83 -4
  67. data/lib/merb/merb_handler.rb +20 -9
  68. data/lib/merb/merb_router.rb +18 -1
  69. data/lib/merb/merb_utils.rb +11 -1
  70. data/lib/merb_tasks.rb +7 -0
  71. data/lib/tasks/db.rake +53 -0
  72. metadata +67 -34
  73. data/doc/rdoc/classes/Merb/Config.html +0 -161
  74. data/doc/rdoc/classes/Merb/Server.html +0 -288
  75. data/doc/rdoc/files/lib/merb/merb_daemon_rb.html +0 -113
  76. data/doc/rdoc/files/lib/merb/noroutefound_rb.html +0 -101
  77. data/examples/sample_app/dist/app/views/layout/posts.rhtml +0 -6
  78. data/examples/skeleton/dist/conf/merb_init.rb +0 -21
  79. data/lib/merb/merb_daemon.rb +0 -91
  80. data/lib/merb/noroutefound.rb +0 -11
  81. data/lib/merb_config.rb +0 -21
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Oct 25 17:21:28 -0700 2006</td>
59
+ <td>Mon Oct 30 18:55:04 -0800 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -76,13 +76,13 @@
76
76
  <li>Irb Console *<b>DONE</b>*
77
77
 
78
78
  </li>
79
- <li>Migrations
79
+ <li>Migrations *<b>DONE</b>*
80
80
 
81
81
  </li>
82
82
  <li>Helpers
83
83
 
84
84
  </li>
85
- <li>config file
85
+ <li>config file *<b>DONE</b>*
86
86
 
87
87
  </li>
88
88
  <li>merg args and params *<b>DONE</b>*
@@ -103,7 +103,7 @@
103
103
  <li>plugins support(rails plugins too?)
104
104
 
105
105
  </li>
106
- <li>Layouts
106
+ <li>Layouts *<b>DONE</b>*
107
107
 
108
108
  </li>
109
109
  <li>auto template_dir
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Thu Oct 26 17:16:57 -0700 2006</td>
59
+ <td>Tue Oct 31 19:30:33 -0800 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Thu Oct 26 12:05:27 -0700 2006</td>
59
+ <td>Tue Oct 31 14:19:26 -0800 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Thu Oct 26 12:08:05 -0700 2006</td>
59
+ <td>Wed Nov 01 17:35:42 -0800 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Oct 25 14:28:27 -0700 2006</td>
59
+ <td>Mon Oct 30 22:50:56 -0800 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Oct 25 17:22:03 -0700 2006</td>
59
+ <td>Mon Oct 30 17:31:53 -0800 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -77,7 +77,7 @@
77
77
  mongrel&nbsp;&nbsp;
78
78
  fileutils&nbsp;&nbsp;
79
79
  erubis&nbsp;&nbsp;
80
- merb_config&nbsp;&nbsp;
80
+ logger&nbsp;&nbsp;
81
81
  </div>
82
82
  </div>
83
83
 
@@ -92,6 +92,34 @@
92
92
  <div id="section">
93
93
 
94
94
 
95
+ <div id="constants-list">
96
+ <h3 class="section-bar">Constants</h3>
97
+
98
+ <div class="name-list">
99
+ <table summary="Constants">
100
+ <tr class="top-aligned-row context-row">
101
+ <td class="context-item-name">MERB_FRAMEWORK_ROOT</td>
102
+ <td>=</td>
103
+ <td class="context-item-value">File.dirname(__FILE__)</td>
104
+ </tr>
105
+ <tr class="top-aligned-row context-row">
106
+ <td class="context-item-name">MERB_ROOT</td>
107
+ <td>=</td>
108
+ <td class="context-item-value">Merb::Server.config[:merb_root] rescue Dir.pwd</td>
109
+ </tr>
110
+ <tr class="top-aligned-row context-row">
111
+ <td class="context-item-name">DIST_ROOT</td>
112
+ <td>=</td>
113
+ <td class="context-item-value">Merb::Server.config[:dist_root] rescue Dir.pwd+'/dist'</td>
114
+ </tr>
115
+ <tr class="top-aligned-row context-row">
116
+ <td class="context-item-name">MERB_LOGGER</td>
117
+ <td>=</td>
118
+ <td class="context-item-value">Logger.new(&quot;#{MERB_ROOT}/log/merb.log&quot;)</td>
119
+ </tr>
120
+ </table>
121
+ </div>
122
+ </div>
95
123
 
96
124
 
97
125
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
7
  <head>
8
- <title>File: merb_config.rb</title>
8
+ <title>File: merb_tasks.rb</title>
9
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
10
  <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
11
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
@@ -47,16 +47,16 @@
47
47
 
48
48
 
49
49
  <div id="fileHeader">
50
- <h1>merb_config.rb</h1>
50
+ <h1>merb_tasks.rb</h1>
51
51
  <table class="header-table">
52
52
  <tr class="top-aligned-row">
53
53
  <td><strong>Path:</strong></td>
54
- <td>lib/merb_config.rb
54
+ <td>lib/merb_tasks.rb
55
55
  </td>
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Oct 25 20:49:21 -0700 2006</td>
59
+ <td>Mon Oct 30 17:07:43 -0800 2006</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -22,10 +22,8 @@
22
22
  <div id="index-entries">
23
23
  <a href="classes/Hash.html">Hash</a><br />
24
24
  <a href="classes/Merb.html">Merb</a><br />
25
- <a href="classes/Merb/Config.html">Merb::Config</a><br />
26
25
  <a href="classes/Merb/Controller.html">Merb::Controller</a><br />
27
26
  <a href="classes/Merb/RouteMatcher.html">Merb::RouteMatcher</a><br />
28
- <a href="classes/Merb/Server.html">Merb::Server</a><br />
29
27
  <a href="classes/MerbHandler.html">MerbHandler</a><br />
30
28
  <a href="classes/MerbHash.html">MerbHash</a><br />
31
29
  <a href="classes/Noroutefound.html">Noroutefound</a><br />
@@ -26,12 +26,10 @@
26
26
  <a href="files/TODO.html">TODO</a><br />
27
27
  <a href="files/lib/merb_rb.html">lib/merb.rb</a><br />
28
28
  <a href="files/lib/merb/merb_controller_rb.html">lib/merb/merb_controller.rb</a><br />
29
- <a href="files/lib/merb/merb_daemon_rb.html">lib/merb/merb_daemon.rb</a><br />
30
29
  <a href="files/lib/merb/merb_handler_rb.html">lib/merb/merb_handler.rb</a><br />
31
30
  <a href="files/lib/merb/merb_router_rb.html">lib/merb/merb_router.rb</a><br />
32
31
  <a href="files/lib/merb/merb_utils_rb.html">lib/merb/merb_utils.rb</a><br />
33
- <a href="files/lib/merb/noroutefound_rb.html">lib/merb/noroutefound.rb</a><br />
34
- <a href="files/lib/merb_config_rb.html">lib/merb_config.rb</a><br />
32
+ <a href="files/lib/merb_tasks_rb.html">lib/merb_tasks.rb</a><br />
35
33
  </div>
36
34
  </div>
37
35
  </body>
@@ -26,49 +26,49 @@
26
26
  <a href="classes/Merb/RouteMatcher.html#M000034">compile (Merb::RouteMatcher)</a><br />
27
27
  <a href="classes/Merb/RouteMatcher.html#M000033">compile_router (Merb::RouteMatcher)</a><br />
28
28
  <a href="classes/Merb/RouteMatcher.html#M000031">compiled_statement (Merb::RouteMatcher)</a><br />
29
- <a href="classes/Merb/Server.html#M000052">config (Merb::Server)</a><br />
30
29
  <a href="classes/MerbHash.html#M000020">convert_key (MerbHash)</a><br />
31
30
  <a href="classes/MerbHash.html#M000021">convert_value (MerbHash)</a><br />
32
- <a href="classes/Merb/Controller.html#M000039">cookies (Merb::Controller)</a><br />
33
- <a href="classes/Merb/Controller.html#M000045">current_method_name (Merb::Controller)</a><br />
31
+ <a href="classes/Merb/Controller.html#M000038">cookies (Merb::Controller)</a><br />
32
+ <a href="classes/Merb/Controller.html#M000046">current_method_name (Merb::Controller)</a><br />
34
33
  <a href="classes/MerbHash.html#M000010">default (MerbHash)</a><br />
35
34
  <a href="classes/MerbHash.html#M000018">delete (MerbHash)</a><br />
36
35
  <a href="classes/MerbHash.html#M000016">dup (MerbHash)</a><br />
37
- <a href="classes/Merb/Controller.html#M000042">escape (Merb::Controller)</a><br />
36
+ <a href="classes/Merb/Controller.html#M000041">escape (Merb::Controller)</a><br />
37
+ <a href="classes/Merb/Controller.html#M000043">escape_js (Merb::Controller)</a><br />
38
38
  <a href="classes/MerbHandler.html#M000007">exception (MerbHandler)</a><br />
39
- <a href="classes/Merb/Server.html#M000051">exit (Merb::Server)</a><br />
40
39
  <a href="classes/MerbHash.html#M000014">fetch (MerbHash)</a><br />
41
40
  <a href="classes/MerbHandler.html#M000005">handle (MerbHandler)</a><br />
42
- <a href="classes/Merb/Controller.html#M000040">headers (Merb::Controller)</a><br />
41
+ <a href="classes/Merb/Controller.html#M000039">headers (Merb::Controller)</a><br />
43
42
  <a href="classes/String.html#M000025">import (String)</a><br />
44
43
  <a href="classes/MerbHandler.html#M000006">instantiate_controller (MerbHandler)</a><br />
44
+ <a href="classes/Merb/Controller.html#M000044">js (Merb::Controller)</a><br />
45
45
  <a href="classes/MerbHash.html#M000013">key? (MerbHash)</a><br />
46
- <a href="classes/Merb/Controller.html#M000046">layout (Merb::Controller)</a><br />
47
- <a href="classes/Merb/Server.html#M000049">merb_config (Merb::Server)</a><br />
46
+ <a href="classes/Merb/Controller.html#M000048">layout (Merb::Controller)</a><br />
48
47
  <a href="classes/MerbHash.html#M000017">merge (MerbHash)</a><br />
49
- <a href="classes/MerbHash.html#M000019">method_missing (MerbHash)</a><br />
50
48
  <a href="classes/Noroutefound.html#M000022">method_missing (Noroutefound)</a><br />
51
- <a href="classes/Merb/RouteMatcher.html#M000029">new (Merb::RouteMatcher)</a><br />
49
+ <a href="classes/MerbHash.html#M000019">method_missing (MerbHash)</a><br />
52
50
  <a href="classes/MerbHandler.html#M000003">new (MerbHandler)</a><br />
51
+ <a href="classes/Merb/RouteMatcher.html#M000029">new (Merb::RouteMatcher)</a><br />
53
52
  <a href="classes/MerbHash.html#M000009">new (MerbHash)</a><br />
54
- <a href="classes/Merb/Controller.html#M000038">params (Merb::Controller)</a><br />
53
+ <a href="classes/Merb/Controller.html#M000037">params (Merb::Controller)</a><br />
54
+ <a href="classes/Merb/Controller.html#M000051">partial (Merb::Controller)</a><br />
55
55
  <a href="classes/Merb/RouteMatcher.html#M000028">prepare (Merb::RouteMatcher)</a><br />
56
56
  <a href="classes/MerbHandler.html#M000004">process (MerbHandler)</a><br />
57
- <a href="classes/Merb/Controller.html#M000041">query_parse (Merb::Controller)</a><br />
58
- <a href="classes/Merb/Controller.html#M000036">redirect (Merb::Controller)</a><br />
59
- <a href="classes/Merb/Controller.html#M000048">render (Merb::Controller)</a><br />
60
- <a href="classes/Merb/Controller.html#M000047">render_no_layout (Merb::Controller)</a><br />
57
+ <a href="classes/Merb/Controller.html#M000040">query_parse (Merb::Controller)</a><br />
58
+ <a href="classes/Merb/Controller.html#M000035">redirect (Merb::Controller)</a><br />
59
+ <a href="classes/Merb/Controller.html#M000052">render (Merb::Controller)</a><br />
60
+ <a href="classes/Merb/Controller.html#M000047">render_js (Merb::Controller)</a><br />
61
+ <a href="classes/Merb/Controller.html#M000050">render_no_layout (Merb::Controller)</a><br />
62
+ <a href="classes/Merb/Controller.html#M000049">render_nothing (Merb::Controller)</a><br />
61
63
  <a href="classes/Object.html#M000024">returning (Object)</a><br />
62
64
  <a href="classes/Merb/RouteMatcher.html#M000030">routes (Merb::RouteMatcher)</a><br />
63
- <a href="classes/Merb/Server.html#M000050">run (Merb::Server)</a><br />
64
- <a href="classes/Merb/Controller.html#M000037">send_file (Merb::Controller)</a><br />
65
- <a href="classes/Merb/Config.html#M000035">setup (Merb::Config)</a><br />
65
+ <a href="classes/Merb/Controller.html#M000036">send_file (Merb::Controller)</a><br />
66
66
  <a href="classes/String.html#M000026">snake_case (String)</a><br />
67
- <a href="classes/Merb/Controller.html#M000044">template_dir (Merb::Controller)</a><br />
67
+ <a href="classes/Merb/Controller.html#M000045">template_dir (Merb::Controller)</a><br />
68
68
  <a href="classes/Symbol.html#M000002">to_proc (Symbol)</a><br />
69
- <a href="classes/Noroutefound.html#M000023">to_s (Noroutefound)</a><br />
70
69
  <a href="classes/Symbol.html#M000001">to_s (Symbol)</a><br />
71
- <a href="classes/Merb/Controller.html#M000043">unescape (Merb::Controller)</a><br />
70
+ <a href="classes/Noroutefound.html#M000023">to_s (Noroutefound)</a><br />
71
+ <a href="classes/Merb/Controller.html#M000042">unescape (Merb::Controller)</a><br />
72
72
  <a href="classes/MerbHash.html#M000012">update (MerbHash)</a><br />
73
73
  <a href="classes/MerbHash.html#M000015">values_at (MerbHash)</a><br />
74
74
  <a href="classes/Hash.html#M000008">with_indifferent_access (Hash)</a><br />
@@ -0,0 +1,81 @@
1
+ require 'rake'
2
+ require 'rake/rdoctask'
3
+ require 'rake/testtask'
4
+ require 'code_statistics'
5
+ require 'fileutils'
6
+ require 'rubygems'
7
+ require 'merb'
8
+ require MERB_FRAMEWORK_ROOT+'/merb_tasks'
9
+ include FileUtils
10
+
11
+
12
+ #desc "Packages up Merb."
13
+ #task :default => [:package]
14
+
15
+ desc "load merb_init.rb"
16
+ task :merb_init do
17
+ require 'merb'
18
+ require File.dirname(__FILE__)+'/dist/conf/merb_init.rb'
19
+ end
20
+
21
+ desc "Run schema morphing"
22
+ task :schema => [:merb_init] do
23
+ require File.dirname(__FILE__)+'/dist/schema/schema1.rb'
24
+ end
25
+
26
+ task :uninstall => [:clean] do
27
+ sh %{sudo gem uninstall #{NAME}}
28
+ end
29
+
30
+ desc 'Run unit tests'
31
+ Rake::TestTask.new('test_unit') do |t|
32
+ t.libs << 'test'
33
+ t.pattern = 'test/unit/*_test.rb'
34
+ t.verbose = true
35
+ end
36
+
37
+ desc 'Run functional tests'
38
+ Rake::TestTask.new('test_functional') do |t|
39
+ t.libs << 'test'
40
+ t.pattern = 'test/functional/*_test.rb'
41
+ t.verbose = true
42
+ end
43
+
44
+ desc 'Run all tests'
45
+ Rake::TestTask.new('test') do |t|
46
+ t.libs << 'test'
47
+ t.pattern = 'test/**/*_test.rb'
48
+ t.verbose = true
49
+ end
50
+
51
+ desc 'Run all tests, specs and finish with rcov'
52
+ task :aok do
53
+ sh %{rake rcov}
54
+ sh %{rake spec}
55
+ end
56
+
57
+ ##############################################################################
58
+ # Statistics
59
+ ##############################################################################
60
+
61
+ STATS_DIRECTORIES = [
62
+ %w(Code lib/),
63
+ %w(Unit\ tests test/unit),
64
+ %w(Functional\ tests test/functional)
65
+ ].collect { |name, dir| [ name, "./#{dir}" ] }.select { |name, dir| File.directory?(dir) }
66
+
67
+ desc "Report code statistics (KLOCs, etc) from the application"
68
+ task :stats do
69
+ #require 'extra/stats'
70
+ verbose = true
71
+ CodeStatistics.new(*STATS_DIRECTORIES).to_s
72
+ end
73
+
74
+ ##############################################################################
75
+ # SVN
76
+ ##############################################################################
77
+
78
+ desc "Add new files to subversion"
79
+ task :svn_add do
80
+ system "svn status | grep '^\?' | sed -e 's/? *//' | sed -e 's/ /\ /g' | xargs svn add"
81
+ end
@@ -0,0 +1,15 @@
1
+ puts "merb init called"
2
+
3
+ # add your own ruby code here for app initialization and load path stuff
4
+
5
+ require 'active_record'
6
+
7
+ ActiveRecord::Base.logger = MERB_LOGGER
8
+ ActiveRecord::Base.establish_connection(
9
+ :adapter => 'mysql',
10
+ :username => 'root',
11
+ :password => 'xxx',
12
+ :database => 'merb'
13
+ )
14
+
15
+ Dir[DIST_ROOT+"/app/models/*.rb"].each { |m| require m }
@@ -1,22 +1,20 @@
1
1
  # Merb::RouteMatcher is the request routing mapper for the merb framework.
2
- # You can define placeholder parts of the url with the :symbol notation.
2
+ # You can define placeholder parts of the url with the :smbol notation.
3
3
  # so r.add '/foo/:bar/baz/:id', :class => 'Bar', :method => 'foo'
4
4
  # will match against a request to /foo/123/baz/456. It will then
5
5
  # use the class Bar as your merb controller and call the foo method on it.
6
6
  # the foo method will recieve a hash with {:bar => '123', :id => '456'}
7
7
  # as the content. So the :placeholders sections of your routes become
8
- # a hash of arguments to your controller methods. This method maps
9
- # the default /controller/action and /controller/action/id urls you will
10
- # use. so leave r.add '/:controller/:action/:id' in near the bottom
11
- # of your routes. They match in the order they are defined. You can also
12
- # use a :* to glob up the rest of a pth and send it to a controller:
13
- # r.add '/bar/:*rest', :controller => 'Test', :action => 'glob'
8
+ # a hash of arguments to your controller methods.
9
+ # The default route is installed
14
10
 
15
11
 
16
12
  puts "Compiling routes: \n"
17
13
  Merb::RouteMatcher.prepare do |r|
18
14
  r.add '/foo/:bar/baz/:id', :controller => 'Test', :action => 'foo'
19
15
  r.add '/:controller/:action/:id'
16
+ r.add '/bar/:*rest', :controller => 'Test', :action => 'glob'
17
+ r.add '', :controller => 'posts', :action =>'index'
20
18
  end
21
19
 
22
20
  m = Merb::RouteMatcher.new
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ pid = File.open(File.dirname(__FILE__)+"/../log/merb.pid"){|f| f.read.chomp.to_i }
4
+
5
+ Process.kill(9, pid)
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'merb'
4
+
5
+ TMPL = <<EOF
6
+ class <%= class_name.snake_case.camel_case %> < ActiveRecord::Migration
7
+ def self.up
8
+ end
9
+
10
+ def self.down
11
+ end
12
+ end
13
+ EOF
14
+
15
+ class_name = ARGV[0]
16
+ highest_migration = Dir[Dir.pwd+'/dist/schema/migrations/*'].map{|f| File.basename(f) =~ /^(\d+)/; $1}.max
17
+ filename = format("%03d_%s", (highest_migration.to_i+1), class_name.snake_case)
18
+
19
+ File.open(Dir.pwd+"/dist/schema/migrations/#{filename}.rb", 'w+') do |file|
20
+ file.write Erubis::Eruby.new(TMPL).result(binding)
21
+ end
@@ -0,0 +1,81 @@
1
+ require 'rake'
2
+ require 'rake/rdoctask'
3
+ require 'rake/testtask'
4
+ require 'code_statistics'
5
+ require 'fileutils'
6
+ require 'rubygems'
7
+ require 'merb'
8
+ require MERB_FRAMEWORK_ROOT+'/merb_tasks'
9
+ include FileUtils
10
+
11
+
12
+ #desc "Packages up Merb."
13
+ #task :default => [:package]
14
+
15
+ desc "load merb_init.rb"
16
+ task :merb_init do
17
+ require 'merb'
18
+ require File.dirname(__FILE__)+'/dist/conf/merb_init.rb'
19
+ end
20
+
21
+ desc "Run schema morphing"
22
+ task :schema => [:merb_init] do
23
+ require File.dirname(__FILE__)+'/dist/schema/schema1.rb'
24
+ end
25
+
26
+ task :uninstall => [:clean] do
27
+ sh %{sudo gem uninstall #{NAME}}
28
+ end
29
+
30
+ desc 'Run unit tests'
31
+ Rake::TestTask.new('test_unit') do |t|
32
+ t.libs << 'test'
33
+ t.pattern = 'test/unit/*_test.rb'
34
+ t.verbose = true
35
+ end
36
+
37
+ desc 'Run functional tests'
38
+ Rake::TestTask.new('test_functional') do |t|
39
+ t.libs << 'test'
40
+ t.pattern = 'test/functional/*_test.rb'
41
+ t.verbose = true
42
+ end
43
+
44
+ desc 'Run all tests'
45
+ Rake::TestTask.new('test') do |t|
46
+ t.libs << 'test'
47
+ t.pattern = 'test/**/*_test.rb'
48
+ t.verbose = true
49
+ end
50
+
51
+ desc 'Run all tests, specs and finish with rcov'
52
+ task :aok do
53
+ sh %{rake rcov}
54
+ sh %{rake spec}
55
+ end
56
+
57
+ ##############################################################################
58
+ # Statistics
59
+ ##############################################################################
60
+
61
+ STATS_DIRECTORIES = [
62
+ %w(Code lib/),
63
+ %w(Unit\ tests test/unit),
64
+ %w(Functional\ tests test/functional)
65
+ ].collect { |name, dir| [ name, "./#{dir}" ] }.select { |name, dir| File.directory?(dir) }
66
+
67
+ desc "Report code statistics (KLOCs, etc) from the application"
68
+ task :stats do
69
+ #require 'extra/stats'
70
+ verbose = true
71
+ CodeStatistics.new(*STATS_DIRECTORIES).to_s
72
+ end
73
+
74
+ ##############################################################################
75
+ # SVN
76
+ ##############################################################################
77
+
78
+ desc "Add new files to subversion"
79
+ task :svn_add do
80
+ system "svn status | grep '^\?' | sed -e 's/? *//' | sed -e 's/ /\ /g' | xargs svn add"
81
+ end