ramaze 2012.04.14 → 2012.12.08b

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 (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