ramaze 2012.04.14 → 2012.12.08b

Sign up to get free protection for your applications and to get access to all the features.
Files changed (146) hide show
  1. data/.gems +28 -35
  2. data/.gitignore +4 -0
  3. data/.travis.yml +3 -3
  4. data/Gemfile +3 -0
  5. data/README.md +1 -5
  6. data/Rakefile +9 -20
  7. data/examples/app/blog/app.rb +5 -14
  8. data/examples/app/todolist/start.rb +1 -5
  9. data/guide/AUTHORS +8 -3
  10. data/guide/CHANGELOG +587 -0
  11. data/guide/general/cache.md +1 -0
  12. data/guide/general/configuration.md +2 -1
  13. data/guide/general/contributing.md +1 -0
  14. data/guide/general/controllers.md +105 -10
  15. data/guide/general/helpers.md +6 -7
  16. data/guide/general/installation.md +2 -1
  17. data/guide/general/logging.md +1 -4
  18. data/guide/general/middlewares.md +15 -23
  19. data/guide/general/models.md +1 -0
  20. data/guide/general/principles.md +1 -0
  21. data/guide/general/ramaze_command.md +9 -54
  22. data/guide/general/routes.md +1 -0
  23. data/guide/general/sessions.md +3 -2
  24. data/guide/general/special_thanks.md +1 -0
  25. data/guide/general/testing.md +1 -0
  26. data/guide/general/views.md +35 -22
  27. data/lib/proto/Gemfile +4 -0
  28. data/lib/proto/README.md +35 -0
  29. data/lib/proto/Rakefile +1 -0
  30. data/lib/proto/app.rb +2 -6
  31. data/lib/proto/spec/helper.rb +39 -0
  32. data/lib/proto/task/ramaze.rake +57 -0
  33. data/lib/ramaze.rb +12 -39
  34. data/lib/ramaze/bin/create.rb +1 -3
  35. data/lib/ramaze/bin/runner.rb +0 -14
  36. data/lib/ramaze/cache.rb +21 -0
  37. data/lib/ramaze/cache/memcache.rb +1 -3
  38. data/lib/ramaze/cache/redis.rb +2 -4
  39. data/lib/ramaze/cache/sequel.rb +4 -5
  40. data/lib/ramaze/controller.rb +10 -3
  41. data/lib/ramaze/default_middleware.rb +24 -0
  42. data/lib/ramaze/files.rb +5 -5
  43. data/lib/ramaze/gestalt.rb +10 -10
  44. data/lib/ramaze/helper/blue_form.rb +33 -6
  45. data/lib/ramaze/helper/csrf.rb +22 -30
  46. data/lib/ramaze/helper/flash.rb +1 -1
  47. data/lib/ramaze/helper/upload.rb +5 -3
  48. data/lib/ramaze/helper/user.rb +1 -0
  49. data/lib/ramaze/log.rb +0 -5
  50. data/lib/ramaze/log/informer.rb +3 -3
  51. data/lib/ramaze/log/logging.rb +4 -4
  52. data/lib/ramaze/log/syslog.rb +2 -2
  53. data/lib/ramaze/response.rb +1 -1
  54. data/lib/ramaze/snippets.rb +0 -20
  55. data/lib/ramaze/spec/bacon.rb +5 -13
  56. data/lib/ramaze/version.rb +1 -1
  57. data/lib/ramaze/view/erector.rb +1 -3
  58. data/lib/ramaze/view/erubis.rb +1 -3
  59. data/lib/ramaze/view/ezamar.rb +1 -3
  60. data/lib/ramaze/view/haml.rb +1 -4
  61. data/lib/ramaze/view/liquid.rb +1 -3
  62. data/lib/ramaze/view/lokar.rb +1 -3
  63. data/lib/ramaze/view/mustache.rb +1 -3
  64. data/lib/ramaze/view/nagoro.rb +1 -4
  65. data/lib/ramaze/view/remarkably.rb +1 -4
  66. data/lib/ramaze/view/sass.rb +2 -5
  67. data/lib/ramaze/view/slim.rb +1 -3
  68. data/lib/ramaze/view/slippers.rb +1 -3
  69. data/lib/ramaze/view/tagz.rb +1 -3
  70. data/lib/ramaze/view/tenjin.rb +1 -3
  71. data/ramaze.gemspec +45 -16
  72. data/spec/helper.rb +0 -1
  73. data/spec/ramaze/cache/localmemcache.rb +0 -4
  74. data/spec/ramaze/controller/mapping.rb +17 -0
  75. data/spec/ramaze/dispatcher/directory.rb +6 -5
  76. data/spec/ramaze/dispatcher/file.rb +7 -4
  77. data/spec/ramaze/files.rb +0 -2
  78. data/spec/ramaze/helper/csrf.rb +0 -26
  79. data/spec/ramaze/helper/upload.rb +1 -0
  80. data/spec/ramaze/helper/user.rb +12 -0
  81. data/spec/ramaze/log/syslog.rb +5 -1
  82. data/spec/ramaze/view/lokar.rb +1 -1
  83. data/spec/ramaze/view/nagoro.rb +1 -1
  84. data/tasks/bacon.rake +1 -1
  85. data/tasks/gems.rake +15 -0
  86. data/tasks/release.rake +37 -8
  87. metadata +106 -139
  88. data/guide/_static/ramaze_console.png +0 -0
  89. data/guide/tutorials/introduction.md +0 -263
  90. data/lib/proto/model/init.rb +0 -6
  91. data/lib/proto/public/.htaccess +0 -24
  92. data/lib/proto/public/dispatch.fcgi +0 -11
  93. data/lib/proto/spec/main.rb +0 -20
  94. data/lib/proto/start.rb +0 -20
  95. data/lib/ramaze/app_graph.rb +0 -105
  96. data/lib/ramaze/bin/console.rb +0 -87
  97. data/lib/ramaze/bin/helper.rb +0 -107
  98. data/lib/ramaze/bin/restart.rb +0 -95
  99. data/lib/ramaze/bin/start.rb +0 -221
  100. data/lib/ramaze/bin/status.rb +0 -152
  101. data/lib/ramaze/bin/stop.rb +0 -112
  102. data/lib/ramaze/dependencies.rb +0 -84
  103. data/lib/ramaze/helper/disqus.rb +0 -27
  104. data/lib/ramaze/helper/ultraviolet.rb +0 -49
  105. data/lib/ramaze/log/analogger.rb +0 -50
  106. data/lib/ramaze/log/growl.rb +0 -55
  107. data/lib/ramaze/log/knotify.rb +0 -31
  108. data/lib/ramaze/log/xosd.rb +0 -94
  109. data/lib/ramaze/middleware_compiler.rb +0 -36
  110. data/lib/ramaze/plugin.rb +0 -69
  111. data/lib/ramaze/setup.rb +0 -210
  112. data/lib/ramaze/snippets/array/put_within.rb +0 -38
  113. data/lib/ramaze/snippets/binding/locals.rb +0 -20
  114. data/lib/ramaze/snippets/fiber.rb +0 -41
  115. data/lib/ramaze/snippets/kernel/pretty_inspect.rb +0 -18
  116. data/lib/ramaze/snippets/metaid.rb +0 -17
  117. data/lib/ramaze/snippets/numeric/filesize_format.rb +0 -30
  118. data/lib/ramaze/snippets/numeric/time.rb +0 -59
  119. data/lib/ramaze/snippets/object/instance_variable_defined.rb +0 -16
  120. data/lib/ramaze/snippets/object/pretty.rb +0 -12
  121. data/lib/ramaze/snippets/object/scope.rb +0 -16
  122. data/lib/ramaze/snippets/ordered_set.rb +0 -51
  123. data/lib/ramaze/snippets/proc/locals.rb +0 -19
  124. data/lib/ramaze/snippets/ramaze/acquire.rb +0 -32
  125. data/lib/ramaze/snippets/ramaze/dictionary.rb +0 -400
  126. data/lib/ramaze/snippets/ramaze/fiber.rb +0 -24
  127. data/lib/ramaze/snippets/ramaze/struct.rb +0 -43
  128. data/lib/ramaze/snippets/string/end_with.rb +0 -17
  129. data/lib/ramaze/snippets/string/ord.rb +0 -16
  130. data/lib/ramaze/snippets/string/start_with.rb +0 -14
  131. data/lib/ramaze/snippets/thread/into.rb +0 -16
  132. data/lib/ramaze/spec.rb +0 -4
  133. data/spec/ramaze/bin/start.rb +0 -34
  134. data/spec/ramaze/log/growl.rb +0 -45
  135. data/spec/ramaze/struct.rb +0 -50
  136. data/spec/snippets/array/put_within.rb +0 -38
  137. data/spec/snippets/binding/locals.rb +0 -12
  138. data/spec/snippets/numeric/filesize_format.rb +0 -15
  139. data/spec/snippets/numeric/time.rb +0 -15
  140. data/spec/snippets/ordered_set.rb +0 -66
  141. data/spec/snippets/ramaze/acquire.rb +0 -80
  142. data/spec/snippets/ramaze/dictionary.rb +0 -113
  143. data/spec/snippets/ramaze/struct.rb +0 -15
  144. data/spec/snippets/thread/into.rb +0 -12
  145. data/tasks/gem.rake +0 -21
  146. data/tasks/setup.rake +0 -14
@@ -40,15 +40,15 @@ module Ramaze
40
40
  # Informer.new # => logs to stdout with all levels being shown.
41
41
  # Informer.new($stderr) # => same, but to stderr
42
42
  #
43
- # # same, but logs to the file foo.log (or creates it if it doesn't
43
+ # # same, but logs to the file foo.log (or creates it if it doesn't
44
44
  # # exist yet)
45
45
  # Informer.new("foo.log")
46
46
  #
47
47
  # Informer.new($stdout, [:info]) #=> show only #info messages to stdout.
48
48
  #
49
- # @param [String] out Specifies where the output should go. By default
49
+ # @param [String] out Specifies where the output should go. By default
50
50
  # this is set to STDOUT.
51
- # @param [Array] log_leves Array containing the levels that should be
51
+ # @param [Array] log_levels Array containing the levels that should be
52
52
  # logged.
53
53
  #
54
54
  def initialize(out = $stdout, log_levels = [:debug, :error, :info, :warn])
@@ -4,7 +4,7 @@
4
4
  module Ramaze
5
5
  ##
6
6
  # This module provides a basic skeleton for your own loggers to be compatible.
7
- #
7
+ #
8
8
  # @example
9
9
  # class MyLogger
10
10
  # include Logging
@@ -22,7 +22,7 @@ module Ramaze
22
22
  # If you include this module you have to define #log or it will raise.
23
23
  #
24
24
  # @param [String] tag The level of the log message.
25
- # @param [String] method
25
+ # @param [String] meth
26
26
  # @param [Array] msgs The data that should be logged.
27
27
  #
28
28
  def tag_log(tag, meth, *msgs)
@@ -35,7 +35,7 @@ module Ramaze
35
35
  ##
36
36
  # Converts everything given to strings and passes them on with :info
37
37
  #
38
- # @param [Array] objects An array of objects that need to be converted to
38
+ # @param [Array] objects An array of objects that need to be converted to
39
39
  # strings.
40
40
  #
41
41
  def info(*objects)
@@ -45,7 +45,7 @@ module Ramaze
45
45
  ##
46
46
  # Converts everything given to strings and passes them on with :warn
47
47
  #
48
- # @param [Array] objects An array of objects that need to be converted to
48
+ # @param [Array] objects An array of objects that need to be converted to
49
49
  # strings.
50
50
  #
51
51
  def warn(*objects)
@@ -38,8 +38,7 @@ module Ramaze
38
38
  # Just sends all messages received to ::Syslog
39
39
  # We simply return if the log was closed for some reason, this behavior
40
40
  # was copied from Informer. We do not handle levels here. This will
41
- # be done by te syslog daemon based on it's configuration.
42
- #
41
+ # be done by the syslog daemon based on it's configuration.
43
42
  def log(tag, *messages)
44
43
  return if !::Syslog.opened?
45
44
  tag = tag.to_sym
@@ -48,6 +47,7 @@ module Ramaze
48
47
  tag = ALIASES[tag]
49
48
  end
50
49
 
50
+ messages = messages.map {|m| m.gsub(/(%[^m])/,'%\1')}
51
51
  ::Syslog.send(tag, *messages)
52
52
  end
53
53
 
@@ -22,7 +22,7 @@ module Ramaze
22
22
  # @param [Fixnum] status The HTPP status code for the response.
23
23
  # @param [Hash] header A hash containing additional headers and their
24
24
  # values.
25
- # @param [Proc] &block
25
+ # @param [Proc] block
26
26
  #
27
27
  def initialize(body = [], status = 200, header = {}, &block)
28
28
  modified_header = Ramaze.options.header.merge(header)
@@ -1,35 +1,15 @@
1
1
  # Copyright (c) 2009 Michael Fellinger m.fellinger@gmail.com
2
2
  # All files in this distribution are subject to the terms of the MIT license.
3
3
 
4
- require 'ramaze/snippets/array/put_within'
5
- require 'ramaze/snippets/binding/locals'
6
4
  require 'ramaze/snippets/blankslate'
7
- require 'ramaze/snippets/fiber'
8
- require 'ramaze/snippets/kernel/pretty_inspect'
9
- require 'ramaze/snippets/metaid'
10
- require 'ramaze/snippets/numeric/filesize_format'
11
- require 'ramaze/snippets/numeric/time'
12
5
  require 'ramaze/snippets/object/__dir__'
13
- require 'ramaze/snippets/object/instance_variable_defined'
14
- require 'ramaze/snippets/object/pretty'
15
- require 'ramaze/snippets/object/scope'
16
- require 'ramaze/snippets/ordered_set'
17
- require 'ramaze/snippets/proc/locals'
18
- require 'ramaze/snippets/ramaze/acquire'
19
6
  require 'ramaze/snippets/ramaze/deprecated'
20
- require 'ramaze/snippets/ramaze/dictionary'
21
- require 'ramaze/snippets/ramaze/fiber'
22
7
  require 'ramaze/snippets/ramaze/lru_hash'
23
- require 'ramaze/snippets/ramaze/struct'
24
8
  require 'ramaze/snippets/string/camel_case'
25
9
  require 'ramaze/snippets/string/color'
26
- require 'ramaze/snippets/string/end_with'
27
10
  require 'ramaze/snippets/string/esc'
28
- require 'ramaze/snippets/string/ord'
29
11
  require 'ramaze/snippets/string/snake_case'
30
- require 'ramaze/snippets/string/start_with'
31
12
  require 'ramaze/snippets/string/unindent'
32
- require 'ramaze/snippets/thread/into'
33
13
 
34
14
  Ramaze::CoreExtensions.constants.each do |const|
35
15
  ext = Ramaze::CoreExtensions.const_get(const)
@@ -1,13 +1,9 @@
1
- begin
2
- require 'bacon'
3
- rescue LoadError
4
- require 'rubygems'
5
- require 'bacon'
6
- end
7
-
8
1
  require File.expand_path('../../../ramaze', __FILE__)
2
+ require 'bacon'
9
3
  require 'innate/spec/bacon'
10
4
 
5
+ Ramaze.middleware(:spec) { run Ramaze.core }
6
+
11
7
  def spec_requires(*libs)
12
8
  spec_precondition 'require' do
13
9
  libs.each { |lib| require(lib) }
@@ -25,16 +21,12 @@ rescue Exception => ex
25
21
  exit 0
26
22
  end
27
23
 
28
- # minimal middleware, no exception handling
29
- Ramaze.middleware!(:spec) do |m|
30
- m.run(Ramaze::AppMap)
31
- end
32
-
33
24
  shared :rack_test do
34
25
  Ramaze.setup_dependencies
26
+
35
27
  extend Rack::Test::Methods
36
28
 
37
- def app; Ramaze.middleware; end
29
+ def app; Ramaze; end
38
30
  end
39
31
 
40
32
  shared :webrat do
@@ -1,3 +1,3 @@
1
1
  module Ramaze
2
- VERSION = "2012.04.14"
2
+ VERSION = '2012.12.08b'
3
3
  end
@@ -1,6 +1,4 @@
1
- Ramaze.setup(:verbose => false) do
2
- gem 'erector'
3
- end
1
+ require 'erector'
4
2
 
5
3
  module Ramaze
6
4
  module View
@@ -1,8 +1,6 @@
1
1
  # Copyright (c) 2009 Michael Fellinger m.fellinger@gmail.com
2
2
  # All files in this distribution are subject to the terms of the MIT license.
3
- Ramaze.setup(:verbose => false) do
4
- gem 'erubis'
5
- end
3
+ require 'erubis'
6
4
 
7
5
  module Ramaze
8
6
  module View
@@ -1,6 +1,4 @@
1
- Ramaze.setup(:verbose => false) do
2
- gem 'ezamar'
3
- end
1
+ require 'ezamar'
4
2
 
5
3
  module Ramaze
6
4
  module View
@@ -1,7 +1,4 @@
1
- Ramaze.setup(:verbose => false) do
2
- gem 'haml'
3
- end
4
-
1
+ require 'haml'
5
2
  require 'haml/util'
6
3
  require 'haml/engine'
7
4
 
@@ -1,8 +1,6 @@
1
1
  # Copyright (c) 2009 Michael Fellinger m.fellinger@gmail.com
2
2
  # All files in this distribution are subject to the terms of the MIT license.
3
- Ramaze.setup(:verbose => false) do
4
- require 'liquid'
5
- end
3
+ require 'liquid'
6
4
 
7
5
  module Ramaze
8
6
  module View
@@ -1,6 +1,4 @@
1
- Ramaze.setup(:verbose => false) do
2
- gem 'lokar'
3
- end
1
+ require 'lokar'
4
2
 
5
3
  module Ramaze
6
4
  module View
@@ -1,6 +1,4 @@
1
- Ramaze.setup(:verbose => false) do
2
- gem 'mustache'
3
- end
1
+ require 'mustache'
4
2
 
5
3
  module Ramaze
6
4
  module View
@@ -1,7 +1,4 @@
1
- Ramaze.setup(:verbose => false) do
2
- gem 'nagoro'
3
- end
4
-
1
+ require 'nagoro'
5
2
  require 'ramaze/view/nagoro/render_partial'
6
3
 
7
4
  module Ramaze
@@ -1,7 +1,4 @@
1
- Ramaze.setup(:verbose => false) do
2
- gem 'Remarkably', :lib => 'remarkably'
3
- end
4
-
1
+ require 'remarkably'
5
2
  require 'remarkably/engines/html'
6
3
 
7
4
  module Ramaze
@@ -1,8 +1,5 @@
1
- Ramaze.setup(:verbose => false) do
2
- gem 'haml'
3
- gem 'sass'
4
- end
5
-
1
+ require 'haml'
2
+ require 'sass'
6
3
  require 'haml/util'
7
4
 
8
5
  module Ramaze
@@ -1,6 +1,4 @@
1
- Ramaze.setup(:verbose => false) do
2
- gem 'slim'
3
- end
1
+ require 'slim'
4
2
 
5
3
  module Innate
6
4
  module View
@@ -1,6 +1,4 @@
1
- Ramaze.setup(:verbose => false) do
2
- gem 'slippers'
3
- end
1
+ require 'slippers'
4
2
 
5
3
  module Ramaze
6
4
  module View
@@ -1,6 +1,4 @@
1
- Ramaze.setup(:verbose => false) do
2
- gem 'tagz'
3
- end
1
+ require 'tagz'
4
2
 
5
3
  module Ramaze
6
4
  module View
@@ -1,6 +1,4 @@
1
- Ramaze.setup(:verbose => false) do
2
- gem 'tenjin'
3
- end
1
+ require 'tenjin'
4
2
 
5
3
  module Ramaze
6
4
  module View
@@ -1,28 +1,57 @@
1
- require File.expand_path('../lib/ramaze/version' , __FILE__)
2
- require File.expand_path('../lib/ramaze/dependencies', __FILE__)
1
+ require File.expand_path('../lib/ramaze/version', __FILE__)
3
2
 
4
- # Get all the files from the manifest
5
3
  path = File.expand_path('../', __FILE__)
6
4
 
7
5
  Gem::Specification.new do |s|
8
- s.name = 'ramaze'
9
- s.version = Ramaze::VERSION
10
- s.date = '2012-04-14'
11
- s.authors = ['Michael \'manveru\' Fellinger']
12
- s.email = 'm.fellinger@gmail.com'
13
- s.summary = 'Ramaze is a simple and modular web framework'
14
- s.homepage = 'http://ramaze.net/'
15
- s.description = s.summary
6
+ s.name = 'ramaze'
7
+ s.version = Ramaze::VERSION
8
+ s.date = Time.now.strftime('%Y-%m-%d')
9
+ s.authors = ['Michael \'manveru\' Fellinger', 'Yorick Peterse']
10
+ s.email = ['m.fellinger@gmail.com', 'yorickpeterse@gmail.com']
11
+ s.summary = 'Ramaze is a simple and modular web framework'
12
+ s.homepage = 'http://ramaze.net/'
13
+ s.description = s.summary
14
+
16
15
  s.required_rubygems_version = '>= 1.3.5'
17
16
  s.files = `cd #{path}; git ls-files`.split("\n").sort
18
17
  s.has_rdoc = 'yard'
19
18
  s.executables = ['ramaze']
20
19
 
21
- Ramaze::DEPENDENCIES.each do |dep|
22
- s.add_dependency(dep[:name], dep[:version])
20
+ s.add_dependency 'innate', '>= 2012.12'
21
+ s.add_dependency 'rake'
22
+
23
+ s.add_development_dependency 'Remarkably'
24
+ s.add_development_dependency 'bacon'
25
+ s.add_development_dependency 'dalli'
26
+ s.add_development_dependency 'erector'
27
+ s.add_development_dependency 'erubis'
28
+ s.add_development_dependency 'ezamar'
29
+ s.add_development_dependency 'haml'
30
+ s.add_development_dependency 'hpricot'
31
+ s.add_development_dependency 'liquid'
32
+ s.add_development_dependency 'locale'
33
+ s.add_development_dependency 'maruku'
34
+ s.add_development_dependency 'mustache'
35
+ s.add_development_dependency 'rack-contrib'
36
+ s.add_development_dependency 'rack-test'
37
+ s.add_development_dependency 'rdiscount'
38
+ s.add_development_dependency 'redis'
39
+ s.add_development_dependency 'sass'
40
+ s.add_development_dependency 'sequel'
41
+ s.add_development_dependency 'slim'
42
+ s.add_development_dependency 'slippers'
43
+ s.add_development_dependency 'sqlite3'
44
+ s.add_development_dependency 'tagz'
45
+ s.add_development_dependency 'tenjin'
46
+ s.add_development_dependency 'yard'
47
+ s.add_development_dependency 'localmemcache'
48
+
49
+ if RUBY_VERSION.to_f >= 1.9
50
+ s.add_development_dependency 'lokar'
23
51
  end
24
52
 
25
- Ramaze::DEVELOPMENT_DEPENDENCIES.each do |dep|
26
- s.add_development_dependency(dep[:name], dep[:version])
53
+ # Nagoro doesn't seem to work on Rbx
54
+ if !RUBY_DESCRIPTION.include?('rubinius')
55
+ s.add_development_dependency 'nagoro'
27
56
  end
28
- end # Gem::Specification.new
57
+ end
@@ -5,7 +5,6 @@ if caller_line = caller.grep(%r!spec/ramaze/!).first
5
5
  end
6
6
 
7
7
  require File.expand_path('../../lib/ramaze/spec/bacon', __FILE__)
8
- require File.expand_path('../../lib/ramaze/dependencies', __FILE__)
9
8
 
10
9
  Ramaze.options.roots = [caller_root] if caller_root
11
10
 
@@ -3,10 +3,6 @@
3
3
 
4
4
  require File.expand_path('../../../../spec/helper', __FILE__)
5
5
 
6
- spec_precondition 'LocalMemcache should be supported' do
7
- should.flunk if Ramaze::UNSUPPORTED_GEMS.include?('localmemcache')
8
- end
9
-
10
6
  spec_require 'localmemcache'
11
7
 
12
8
  describe Ramaze::Cache::LocalMemCache do
@@ -20,6 +20,10 @@ describe 'Controller::generate_mapping' do
20
20
  gen('Module::ClassController').should == '/module/class'
21
21
  end
22
22
 
23
+ it 'maps Module::MainController to /module/' do
24
+ gen('Module::MainController').should == '/module/'
25
+ end
26
+
23
27
  it 'maps Class to /class' do
24
28
  gen('Class').should == '/class'
25
29
  end
@@ -32,6 +36,10 @@ describe 'Controller::generate_mapping' do
32
36
  gen('Module::Module::Class').should == '/module/module/class'
33
37
  end
34
38
 
39
+ it 'maps Module::Module::MainController to module/module/' do
40
+ gen('Module::Module::MainController').should == '/module/module/'
41
+ end
42
+
35
43
  it "maps MainController to '/'" do
36
44
  gen('MainController').should == '/'
37
45
  end
@@ -40,7 +48,16 @@ describe 'Controller::generate_mapping' do
40
48
  gen('Controller').should == nil
41
49
  end
42
50
 
51
+ it "doesn't map Module::Controller" do
52
+ gen('Module::Controller').should == nil
53
+ end
54
+
43
55
  it "doesn't map anonymous classes" do
44
56
  gen(Class.new.name).should == nil
45
57
  end
58
+
59
+ it "respects custom irregular mappings" do
60
+ Ramaze::Controller::IRREGULAR_MAPPING['Snake'] = 'snake_on_a_plane'
61
+ gen('Some::Snake').should == '/some/snake_on_a_plane'
62
+ end
46
63
  end
@@ -5,11 +5,11 @@ require File.expand_path('../../../../spec/helper', __FILE__)
5
5
 
6
6
  spec_require 'hpricot'
7
7
 
8
- module Ramaze
9
- # minimal middleware, no exception handling
10
- middleware!(:spec){|m|
11
- m.run m.directory(__DIR__('public'))
12
- }
8
+ Ramaze.middleware(:spec) do
9
+ run Rack::ETag.new(
10
+ Rack::ConditionalGet.new(Rack::Directory.new(__DIR__('public'))),
11
+ 'public'
12
+ )
13
13
  end
14
14
 
15
15
  describe 'Directory listing' do
@@ -30,6 +30,7 @@ describe 'Directory listing' do
30
30
  end
31
31
 
32
32
  Ramaze.map('/', lambda{|env| [404, {}, ['not found']]})
33
+ Ramaze.recompile_middleware(:spec)
33
34
 
34
35
  def build_listing(path)
35
36
  get('path').body