manveru-ramaze 2009.04.08 → 2009.04.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. data/CHANGELOG +113 -0
  2. data/MANIFEST +2 -3
  3. data/Rakefile +5 -1
  4. data/bin/ramaze +107 -25
  5. data/examples/misc/rapp.rb +28 -17
  6. data/lib/proto/app.rb +15 -0
  7. data/lib/proto/config.ru +3 -4
  8. data/lib/proto/controller/init.rb +2 -2
  9. data/lib/proto/spec/main.rb +7 -8
  10. data/lib/proto/start.rb +6 -10
  11. data/lib/ramaze/contrib/email.rb +2 -0
  12. data/lib/ramaze/contrib/sequel/create_join.rb +1 -0
  13. data/lib/ramaze/contrib/sequel/form_field.rb +4 -4
  14. data/lib/ramaze/contrib/sequel/image.rb +9 -11
  15. data/lib/ramaze/contrib/sequel/relation.rb +17 -3
  16. data/lib/ramaze/helper/localize.rb +13 -3
  17. data/lib/ramaze/helper/paginate.rb +1 -0
  18. data/lib/ramaze/request.rb +2 -1
  19. data/lib/ramaze/spec.rb +5 -8
  20. data/lib/ramaze/version.rb +1 -1
  21. data/lib/ramaze/view/haml.rb +1 -0
  22. data/lib/ramaze/view/nagoro/render_partial.rb +9 -9
  23. data/lib/ramaze.rb +2 -0
  24. data/ramaze.gemspec +5 -5
  25. data/spec/examples/helpers/httpdigest.rb +42 -67
  26. data/spec/ramaze/dispatcher/file.rb +22 -20
  27. data/spec/ramaze/error.rb +1 -1
  28. data/spec/ramaze/helper/auth.rb +29 -40
  29. data/spec/ramaze/helper/flash.rb +10 -14
  30. data/spec/ramaze/helper/httpdigest.rb +47 -65
  31. data/spec/ramaze/helper/localize.rb +9 -9
  32. data/spec/ramaze/helper/simple_captcha.rb +9 -13
  33. data/spec/ramaze/helper/stack.rb +31 -39
  34. data/spec/ramaze/helper/user.rb +15 -13
  35. data/spec/ramaze/request.rb +12 -0
  36. data/tasks/release.rake +4 -22
  37. data/tasks/setup.rake +44 -0
  38. metadata +5 -6
  39. data/lib/proto/view/page.xhtml +0 -27
  40. data/lib/ramaze/snippets/string/each.rb +0 -19
  41. data/spec/ramaze/helper/partial.rb +0 -40
@@ -65,20 +65,34 @@ module SequelRelation
65
65
  end
66
66
 
67
67
  def belongs_to(model)
68
- todo :belongs_to, model.to_s.downcase.to_sym
68
+ todo :many_to_one, singular_sym(model), :class => model
69
69
  end
70
70
 
71
71
  def has_many(model)
72
72
  todo :create_join, model
73
- todo :many_to_many, model.to_s.downcase.pluralize.to_sym
73
+ todo :many_to_many, plural_sym(model), :class => model
74
74
  end
75
75
 
76
76
  def has_one(model)
77
- todo :belongs_to, model.to_s.downcase.to_sym
77
+ todo :many_to_one, singular_sym(model), :class => model
78
78
  end
79
79
 
80
80
  def todo(method, *args)
81
81
  TODO[@left] << [method, *args]
82
82
  end
83
+
84
+ private
85
+
86
+ def plural_sym(obj)
87
+ basename(obj).pluralize.to_sym
88
+ end
89
+
90
+ def singular_sym(obj)
91
+ basename(obj).to_sym
92
+ end
93
+
94
+ def basename(obj)
95
+ obj.to_s.split('::').last.downcase
96
+ end
83
97
  end
84
98
  end
@@ -19,7 +19,12 @@ module Ramaze
19
19
  end
20
20
 
21
21
  def locales
22
- Parser.new(request).locales(ancestral_trait[:localize_locale])
22
+ locales = request.env['localize.locales']
23
+ return locales if locales
24
+
25
+ fallback = ancestral_trait[:localize_locale]
26
+ locales = Parser.new(request).locales(fallback)
27
+ request.env['localize.locales'] = locales
23
28
  end
24
29
 
25
30
  class Dictionary
@@ -105,7 +110,7 @@ module Ramaze
105
110
  end
106
111
 
107
112
  def parse
108
- parse_params || parse_cookie || parse_header
113
+ parse_params || parse_session || parse_cookie || parse_header
109
114
  end
110
115
 
111
116
  def parse_params(key = 'lang')
@@ -113,13 +118,18 @@ module Ramaze
113
118
  ::Locale::Tag.parse(lang)
114
119
  end
115
120
 
121
+ def parse_session(key = :lang)
122
+ return unless lang = Current.session[key]
123
+ ::Locale::Tag.parse(lang)
124
+ end
125
+
116
126
  def parse_cookie(key = 'lang')
117
127
  return unless lang = request.cookies[key]
118
128
  ::Locale::Tag.parse(lang)
119
129
  end
120
130
 
121
131
  def parse_header
122
- request.accept_language_with_weight.map{|lang|
132
+ request.accept_language.map{|lang|
123
133
  ::Locale::Tag.parse(lang) }
124
134
  end
125
135
  end
@@ -154,6 +154,7 @@ module Ramaze
154
154
  def last_page; @pager.last_page; end
155
155
  def last_page?; @pager.last_page?; end
156
156
  def next_page; @pager.next_page; end
157
+ def empty?; @pager.empty?; end
157
158
 
158
159
  private
159
160
 
@@ -27,13 +27,14 @@ module Ramaze
27
27
  # @name # => 'manveru'
28
28
  # @lang # => nil
29
29
 
30
- def to_ivs(*args)
30
+ def to_instance_variables(*args)
31
31
  instance = Action.current.instance
32
32
  args.each do |arg|
33
33
  next unless value = self[arg]
34
34
  instance.instance_variable_set("@#{arg}", value)
35
35
  end
36
36
  end
37
+ alias to_ivs to_instance_variables
37
38
 
38
39
  def accept_charset(default = 'UTF-8')
39
40
  return default unless charsets = env['HTTP_ACCEPT_CHARSET']
data/lib/ramaze/spec.rb CHANGED
@@ -1,6 +1,6 @@
1
- require 'ramaze'
2
- require 'bacon'
1
+ begin; require 'rubygems'; rescue LoadError; end
3
2
 
3
+ require(File.expand_path("#{__FILE__}/../")) unless defined?(Ramaze)
4
4
  require 'innate/spec'
5
5
 
6
6
  def spec_requires(*libs)
@@ -26,12 +26,9 @@ module Ramaze
26
26
  middleware!(:spec){|m| m.run(AppMap) }
27
27
  end
28
28
 
29
- shared :rack_test do
30
- require 'rack/test'
31
-
29
+ shared :mock do
30
+ Ramaze.setup_dependencies
32
31
  extend Rack::Test::Methods
33
32
 
34
- def app
35
- Ramaze.middleware(:spec)
36
- end
33
+ def app; Ramaze.middleware; end
37
34
  end
@@ -1,3 +1,3 @@
1
1
  module Ramaze
2
- VERSION = "2009.04.08"
2
+ VERSION = "2009.04.18"
3
3
  end
@@ -1,3 +1,4 @@
1
+ require 'haml/util'
1
2
  require 'haml/engine'
2
3
 
3
4
  module Ramaze
@@ -1,24 +1,24 @@
1
- require 'innate/helper/partial'
1
+ require 'innate/helper/render'
2
2
 
3
3
  module Nagoro
4
4
  module Pipe
5
5
  # Pipe that transforms <render /> tags.
6
6
  #
7
7
  # the src parameter in the render tag will be used as first parameter to
8
- # render_partial, all other paramters are passed on as +options+.
8
+ # render_partial, all other paramters are passed on as +variables+.
9
9
  #
10
- # Example calling render_partial('/hello'):
11
- # <render src="/hello" />
10
+ # Example calling render_partial('hello'):
11
+ # <render src="hello" />
12
12
  #
13
- # Example calling render_partial('/hello', 'tail' => 'foo'):
14
- # <render src="/hello" tail="foo" />
13
+ # Example calling render_partial('hello', 'tail' => 'foo'):
14
+ # <render src="hello" tail="foo" />
15
15
  #
16
16
  class RenderPartial < Base
17
- include Innate::Helper::Partial
17
+ include Innate::Helper::Render
18
18
 
19
19
  def tag_start(tag, attrs)
20
- if tag == 'render' and src = attrs.delete('src')
21
- append(render_partial(src, attrs))
20
+ if tag == 'render' and action_name = attrs.delete('src')
21
+ append(render_partial(action_name, attrs))
22
22
  else
23
23
  super
24
24
  end
data/lib/ramaze.rb CHANGED
@@ -70,6 +70,7 @@ module Ramaze
70
70
  m.use Rack::Head
71
71
  m.use Rack::ETag
72
72
  m.use Rack::ConditionalGet
73
+ m.use Rack::ContentLength
73
74
  m.run Ramaze::AppMap
74
75
  end
75
76
 
@@ -81,6 +82,7 @@ module Ramaze
81
82
  m.use Rack::Head
82
83
  m.use Rack::ETag
83
84
  m.use Rack::ConditionalGet
85
+ m.use Rack::ContentLength
84
86
  m.run Ramaze::AppMap
85
87
  end
86
88
  end
data/ramaze.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{ramaze}
5
- s.version = "2009.04.08"
5
+ s.version = "2009.04.18"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Michael 'manveru' Fellinger"]
9
- s.date = %q{2009-04-08}
9
+ s.date = %q{2009-04-18}
10
10
  s.default_executable = %q{ramaze}
11
11
  s.description = %q{Ramaze is a simple and modular web framework}
12
12
  s.email = %q{m.fellinger@gmail.com}
13
13
  s.executables = ["ramaze"]
14
- s.files = [".mailmap", "CHANGELOG", "MANIFEST", "README.markdown", "Rakefile", "benchmark/results.txt", "benchmark/run.rb", "benchmark/suite/minimal.rb", "benchmark/suite/no_informer.rb", "benchmark/suite/no_sessions.rb", "benchmark/suite/no_template.rb", "benchmark/suite/simple.rb", "benchmark/suite/template_builder.rb", "benchmark/suite/template_erubis.rb", "benchmark/suite/template_ezamar.rb", "benchmark/suite/template_haml.rb", "benchmark/suite/template_liquid.rb", "benchmark/suite/template_markaby.rb", "benchmark/suite/template_nagoro.rb", "benchmark/suite/template_redcloth.rb", "benchmark/suite/template_tenjin.rb", "benchmark/test.rb", "bin/ramaze", "doc/AUTHORS", "doc/CHANGELOG", "doc/COPYING", "doc/FAQ", "doc/GPL", "doc/INSTALL", "doc/LEGAL", "doc/TODO", "doc/meta/announcement.txt", "doc/meta/configuration.txt", "doc/meta/internals.txt", "doc/meta/users.kml", "doc/tutorial/todolist.html", "doc/tutorial/todolist.mkd", "doc/tutorial/todolist.txt", "examples/app/auth/layout/auth.nag", "examples/app/auth/start.rb", "examples/app/auth/view/index.nag", "examples/app/auth/view/login.nag", "examples/app/auth/view/secret.nag", "examples/app/blog/README", "examples/app/blog/app.rb", "examples/app/blog/config.ru", "examples/app/blog/controller/comment.rb", "examples/app/blog/controller/entry.rb", "examples/app/blog/controller/init.rb", "examples/app/blog/controller/main.rb", "examples/app/blog/controller/tag.rb", "examples/app/blog/layout/default.nag", "examples/app/blog/model/comment.rb", "examples/app/blog/model/entry.rb", "examples/app/blog/model/init.rb", "examples/app/blog/model/tag.rb", "examples/app/blog/public/css/screen.css", "examples/app/blog/spec/blog.rb", "examples/app/blog/start.rb", "examples/app/blog/view/comment/form.nag", "examples/app/blog/view/comment/show.nag", "examples/app/blog/view/entry/edit.nag", "examples/app/blog/view/entry/feed.atom.nag", "examples/app/blog/view/entry/feed.rss.nag", "examples/app/blog/view/entry/index.nag", "examples/app/blog/view/entry/new.nag", "examples/app/blog/view/entry/show.nag", "examples/app/blog/view/feed.atom.nag", "examples/app/blog/view/feed.rss.nag", "examples/app/blog/view/index.nag", "examples/app/blog/view/tag/index.nag", "examples/app/chat/layout/default.nag", "examples/app/chat/model/history.rb", "examples/app/chat/model/message.rb", "examples/app/chat/public/css/chat.css", "examples/app/chat/public/js/chat.js", "examples/app/chat/public/js/jquery.js", "examples/app/chat/start.rb", "examples/app/chat/view/chat.nag", "examples/app/chat/view/index.nag", "examples/app/localization/start.rb", "examples/app/sourceview/public/coderay.css", "examples/app/sourceview/public/images/file.gif", "examples/app/sourceview/public/images/folder.gif", "examples/app/sourceview/public/images/tv-collapsable-last.gif", "examples/app/sourceview/public/images/tv-collapsable.gif", "examples/app/sourceview/public/images/tv-expandable-last.gif", "examples/app/sourceview/public/images/tv-expandable.gif", "examples/app/sourceview/public/images/tv-item-last.gif", "examples/app/sourceview/public/images/tv-item.gif", "examples/app/sourceview/public/jquery.js", "examples/app/sourceview/public/jquery.treeview.css", "examples/app/sourceview/public/jquery.treeview.js", "examples/app/sourceview/public/sourceview.js", "examples/app/sourceview/start.rb", "examples/app/sourceview/view/index.haml", "examples/app/todolist/controller/init.rb", "examples/app/todolist/controller/task.rb", "examples/app/todolist/layout/default.xhtml", "examples/app/todolist/model/init.rb", "examples/app/todolist/model/task.rb", "examples/app/todolist/public/css/screen.css", "examples/app/todolist/public/favicon.ico", "examples/app/todolist/start.rb", "examples/app/todolist/view/index.xhtml", "examples/app/upload/start.rb", "examples/app/upload/view/index.xhtml", "examples/app/whywiki/spec/whywiki.rb", "examples/app/whywiki/start.rb", "examples/app/whywiki/template/edit.xhtml", "examples/app/whywiki/template/show.xhtml", "examples/app/wikore/spec/wikore.rb", "examples/app/wikore/src/controller.rb", "examples/app/wikore/src/model.rb", "examples/app/wikore/start.rb", "examples/app/wikore/template/index.xhtml", "examples/app/wiktacular/README", "examples/app/wiktacular/mkd/link/2007-07-20_19-45-51.mkd", "examples/app/wiktacular/mkd/link/current.mkd", "examples/app/wiktacular/mkd/main/2007-07-20_16-31-33.mkd", "examples/app/wiktacular/mkd/main/2007-07-20_19-21-12.mkd", "examples/app/wiktacular/mkd/main/2007-07-20_19-23-10.mkd", "examples/app/wiktacular/mkd/main/2007-07-20_19-45-07.mkd", "examples/app/wiktacular/mkd/main/current.mkd", "examples/app/wiktacular/mkd/markdown/current.mkd", "examples/app/wiktacular/mkd/testing/2007-07-20_16-43-46.mkd", "examples/app/wiktacular/mkd/testing/2007-07-20_19-43-50.mkd", "examples/app/wiktacular/mkd/testing/2007-07-21_18-46-01.mkd", "examples/app/wiktacular/mkd/testing/2007-07-21_18-46-32.mkd", "examples/app/wiktacular/mkd/testing/2007-07-21_18-47-08.mkd", "examples/app/wiktacular/mkd/testing/2007-07-21_18-47-54.mkd", "examples/app/wiktacular/mkd/testing/current.mkd", "examples/app/wiktacular/public/favicon.ico", "examples/app/wiktacular/public/screen.css", "examples/app/wiktacular/spec/wiktacular.rb", "examples/app/wiktacular/src/controller.rb", "examples/app/wiktacular/src/model.rb", "examples/app/wiktacular/start.rb", "examples/app/wiktacular/template/edit.xhtml", "examples/app/wiktacular/template/html_layout.xhtml", "examples/app/wiktacular/template/index.xhtml", "examples/app/wiktacular/template/new.xhtml", "examples/basic/element.rb", "examples/basic/gestalt.rb", "examples/basic/hello.rb", "examples/basic/layout.rb", "examples/basic/linking.rb", "examples/basic/partial.rb", "examples/basic/simple.rb", "examples/helpers/cache.rb", "examples/helpers/form_with_sequel.rb", "examples/helpers/httpdigest.rb", "examples/helpers/identity.rb", "examples/helpers/nitro_form.rb", "examples/helpers/paginate.rb", "examples/helpers/provide.rb", "examples/helpers/rest.rb", "examples/helpers/simple_captcha.rb", "examples/misc/css.rb", "examples/misc/facebook.rb", "examples/misc/memleak_detector.rb", "examples/misc/nagoro_element.rb", "examples/misc/ramaise.rb", "examples/misc/rapp.rb", "examples/misc/sequel_scaffolding.rb", "examples/misc/serve_directory.rb", "examples/templates/template_erubis.rb", "examples/templates/template_ezamar.rb", "examples/templates/template_haml.rb", "examples/templates/template_liquid.rb", "examples/templates/template_markaby.rb", "examples/templates/template_nagoro.rb", "examples/templates/template_redcloth.rb", "examples/templates/template_remarkably.rb", "examples/templates/template_tenjin.rb", "examples/templates/view/external.haml", "examples/templates/view/external.liquid", "examples/templates/view/external.mab", "examples/templates/view/external.nag", "examples/templates/view/external.redcloth", "examples/templates/view/external.rem", "examples/templates/view/external.rhtml", "examples/templates/view/external.tenjin", "examples/templates/view/external.zmr", "lib/proto/config.ru", "lib/proto/controller/init.rb", "lib/proto/controller/main.rb", "lib/proto/layout/default.xhtml", "lib/proto/model/init.rb", "lib/proto/public/.htaccess", "lib/proto/public/css/screen.css", "lib/proto/public/dispatch.fcgi", "lib/proto/public/favicon.ico", "lib/proto/public/js/jquery.js", "lib/proto/public/ramaze.png", "lib/proto/spec/main.rb", "lib/proto/start.rb", "lib/proto/view/index.xhtml", "lib/proto/view/page.xhtml", "lib/ramaze.rb", "lib/ramaze/app.rb", "lib/ramaze/cache.rb", "lib/ramaze/cache/localmemcache.rb", "lib/ramaze/cache/memcache.rb", "lib/ramaze/cache/sequel.rb", "lib/ramaze/contrib/app_graph.rb", "lib/ramaze/contrib/email.rb", "lib/ramaze/contrib/facebook.rb", "lib/ramaze/contrib/facebook/facebook.rb", "lib/ramaze/contrib/gettext.rb", "lib/ramaze/contrib/gettext/mo.rb", "lib/ramaze/contrib/gettext/parser.rb", "lib/ramaze/contrib/gettext/po.rb", "lib/ramaze/contrib/gzip_filter.rb", "lib/ramaze/contrib/maruku_uv.rb", "lib/ramaze/contrib/profiling.rb", "lib/ramaze/contrib/rest.rb", "lib/ramaze/contrib/sequel/create_join.rb", "lib/ramaze/contrib/sequel/form_field.rb", "lib/ramaze/contrib/sequel/image.rb", "lib/ramaze/contrib/sequel/relation.rb", "lib/ramaze/controller.rb", "lib/ramaze/controller/default.rb", "lib/ramaze/current.rb", "lib/ramaze/files.rb", "lib/ramaze/gestalt.rb", "lib/ramaze/helper.rb", "lib/ramaze/helper/auth.rb", "lib/ramaze/helper/bench.rb", "lib/ramaze/helper/cache.rb", "lib/ramaze/helper/disqus.rb", "lib/ramaze/helper/flash.rb", "lib/ramaze/helper/form.rb", "lib/ramaze/helper/formatting.rb", "lib/ramaze/helper/gestalt.rb", "lib/ramaze/helper/gravatar.rb", "lib/ramaze/helper/httpdigest.rb", "lib/ramaze/helper/identity.rb", "lib/ramaze/helper/link.rb", "lib/ramaze/helper/localize.rb", "lib/ramaze/helper/markaby.rb", "lib/ramaze/helper/maruku.rb", "lib/ramaze/helper/nitroform.rb", "lib/ramaze/helper/pager.rb", "lib/ramaze/helper/paginate.rb", "lib/ramaze/helper/partial.rb", "lib/ramaze/helper/remarkably.rb", "lib/ramaze/helper/request_accessor.rb", "lib/ramaze/helper/sequel.rb", "lib/ramaze/helper/sequel_form.rb", "lib/ramaze/helper/simple_captcha.rb", "lib/ramaze/helper/stack.rb", "lib/ramaze/helper/tagz.rb", "lib/ramaze/helper/thread.rb", "lib/ramaze/helper/ultraviolet.rb", "lib/ramaze/helper/user.rb", "lib/ramaze/helper/xhtml.rb", "lib/ramaze/log.rb", "lib/ramaze/log/analogger.rb", "lib/ramaze/log/growl.rb", "lib/ramaze/log/hub.rb", "lib/ramaze/log/informer.rb", "lib/ramaze/log/knotify.rb", "lib/ramaze/log/logger.rb", "lib/ramaze/log/logging.rb", "lib/ramaze/log/rotatinginformer.rb", "lib/ramaze/log/syslog.rb", "lib/ramaze/log/xosd.rb", "lib/ramaze/middleware_compiler.rb", "lib/ramaze/plugin.rb", "lib/ramaze/reloader.rb", "lib/ramaze/reloader/watch_inotify.rb", "lib/ramaze/reloader/watch_stat.rb", "lib/ramaze/request.rb", "lib/ramaze/response.rb", "lib/ramaze/setup.rb", "lib/ramaze/snippets.rb", "lib/ramaze/snippets/array/put_within.rb", "lib/ramaze/snippets/binding/locals.rb", "lib/ramaze/snippets/blankslate.rb", "lib/ramaze/snippets/divide.rb", "lib/ramaze/snippets/fiber.rb", "lib/ramaze/snippets/kernel/constant.rb", "lib/ramaze/snippets/kernel/pretty_inspect.rb", "lib/ramaze/snippets/metaid.rb", "lib/ramaze/snippets/numeric/filesize_format.rb", "lib/ramaze/snippets/numeric/time.rb", "lib/ramaze/snippets/object/__dir__.rb", "lib/ramaze/snippets/object/acquire.rb", "lib/ramaze/snippets/object/instance_variable_defined.rb", "lib/ramaze/snippets/object/pretty.rb", "lib/ramaze/snippets/object/scope.rb", "lib/ramaze/snippets/ordered_set.rb", "lib/ramaze/snippets/proc/locals.rb", "lib/ramaze/snippets/ramaze/acquire.rb", "lib/ramaze/snippets/ramaze/deprecated.rb", "lib/ramaze/snippets/ramaze/dictionary.rb", "lib/ramaze/snippets/ramaze/fiber.rb", "lib/ramaze/snippets/ramaze/struct.rb", "lib/ramaze/snippets/string/camel_case.rb", "lib/ramaze/snippets/string/color.rb", "lib/ramaze/snippets/string/each.rb", "lib/ramaze/snippets/string/end_with.rb", "lib/ramaze/snippets/string/esc.rb", "lib/ramaze/snippets/string/ord.rb", "lib/ramaze/snippets/string/snake_case.rb", "lib/ramaze/snippets/string/start_with.rb", "lib/ramaze/snippets/string/unindent.rb", "lib/ramaze/snippets/thread/into.rb", "lib/ramaze/spec.rb", "lib/ramaze/spec/helper/bacon.rb", "lib/ramaze/spec/helper/pretty_output.rb", "lib/ramaze/spec/helper/snippets.rb", "lib/ramaze/spec/helper/template_examples.rb", "lib/ramaze/tool/create.rb", "lib/ramaze/tool/project_creator.rb", "lib/ramaze/version.rb", "lib/ramaze/view.rb", "lib/ramaze/view/erubis.rb", "lib/ramaze/view/ezamar.rb", "lib/ramaze/view/haml.rb", "lib/ramaze/view/liquid.rb", "lib/ramaze/view/maruku.rb", "lib/ramaze/view/nagoro.rb", "lib/ramaze/view/nagoro/render_partial.rb", "lib/ramaze/view/redcloth.rb", "lib/ramaze/view/remarkably.rb", "lib/ramaze/view/sass.rb", "lib/ramaze/view/tagz.rb", "lib/ramaze/view/tenjin.rb", "lib/vendor/etag.rb", "lib/vendor/route_exceptions.rb", "ramaze.gemspec", "spec/contrib/rest.rb", "spec/examples/caching.rb", "spec/examples/css.rb", "spec/examples/element.rb", "spec/examples/hello.rb", "spec/examples/helpers/httpdigest.rb", "spec/examples/linking.rb", "spec/examples/simple.rb", "spec/examples/templates/template_erubis.rb", "spec/examples/templates/template_ezamar.rb", "spec/examples/templates/template_haml.rb", "spec/examples/templates/template_liquid.rb", "spec/examples/templates/template_markaby.rb", "spec/examples/templates/template_nagoro.rb", "spec/examples/templates/template_redcloth.rb", "spec/examples/templates/template_remarkably.rb", "spec/examples/templates/template_tenjin.rb", "spec/helper.rb", "spec/ramaze/action/render.rb", "spec/ramaze/action/view/bar.xhtml", "spec/ramaze/action/view/instancevars/layout.xhtml", "spec/ramaze/action/view/other_wrapper.erb", "spec/ramaze/action/view/other_wrapper.xhtml", "spec/ramaze/action/view/single_wrapper.xhtml", "spec/ramaze/action/view/sub/sub_wrapper.erb", "spec/ramaze/action/view/sub/sub_wrapper.xhtml", "spec/ramaze/app.rb", "spec/ramaze/cache/localmemcache.rb", "spec/ramaze/cache/memcache.rb", "spec/ramaze/cache/sequel.rb", "spec/ramaze/controller/actionless_templates.rb", "spec/ramaze/controller/mapping.rb", "spec/ramaze/controller/provide_inheritance.rb", "spec/ramaze/controller/resolve.rb", "spec/ramaze/controller/subclass.rb", "spec/ramaze/controller/template_resolving.rb", "spec/ramaze/controller/view/bar.xhtml", "spec/ramaze/controller/view/base/another.xhtml", "spec/ramaze/controller/view/greet.xhtml", "spec/ramaze/controller/view/list.xhtml", "spec/ramaze/controller/view/other/greet/other.xhtml", "spec/ramaze/controller/view/other_wrapper.xhtml", "spec/ramaze/dispatcher/directory.rb", "spec/ramaze/dispatcher/file.rb", "spec/ramaze/dispatcher/public/favicon.ico", "spec/ramaze/dispatcher/public/file name.txt", "spec/ramaze/dispatcher/public/test_download.css", "spec/ramaze/error.rb", "spec/ramaze/files.rb", "spec/ramaze/files/public_1/plain.txt", "spec/ramaze/files/public_2/rich.txt", "spec/ramaze/gestalt.rb", "spec/ramaze/helper/auth.rb", "spec/ramaze/helper/bench.rb", "spec/ramaze/helper/cache.rb", "spec/ramaze/helper/flash.rb", "spec/ramaze/helper/form.rb", "spec/ramaze/helper/formatting.rb", "spec/ramaze/helper/gestalt.rb", "spec/ramaze/helper/gravatar.rb", "spec/ramaze/helper/httpdigest.rb", "spec/ramaze/helper/link.rb", "spec/ramaze/helper/localize.rb", "spec/ramaze/helper/maruku.rb", "spec/ramaze/helper/pager.rb", "spec/ramaze/helper/paginate.rb", "spec/ramaze/helper/partial.rb", "spec/ramaze/helper/request_accessor.rb", "spec/ramaze/helper/sequel_form.rb", "spec/ramaze/helper/simple_captcha.rb", "spec/ramaze/helper/stack.rb", "spec/ramaze/helper/user.rb", "spec/ramaze/helper/view/locals.xhtml", "spec/ramaze/helper/view/loop.xhtml", "spec/ramaze/helper/view/num.xhtml", "spec/ramaze/helper/view/partial.xhtml", "spec/ramaze/helper/view/recursive.xhtml", "spec/ramaze/helper/view/recursive_local_ivars.xhtml", "spec/ramaze/helper/view/recursive_locals.xhtml", "spec/ramaze/helper/view/test_template.xhtml", "spec/ramaze/helper/xhtml.rb", "spec/ramaze/log/informer.rb", "spec/ramaze/log/logging.rb", "spec/ramaze/log/syslog.rb", "spec/ramaze/params.rb", "spec/ramaze/public/favicon.ico", "spec/ramaze/public/ramaze.png", "spec/ramaze/public/test_download.css", "spec/ramaze/request.rb", "spec/ramaze/rewrite/file.css", "spec/ramaze/struct.rb", "spec/ramaze/template/ramaze/external.test", "spec/ramaze/view.rb", "spec/ramaze/view/erubis.rb", "spec/ramaze/view/erubis/external.rhtml", "spec/ramaze/view/erubis/sum.rhtml", "spec/ramaze/view/ezamar.rb", "spec/ramaze/view/ezamar/external.zmr", "spec/ramaze/view/ezamar/sum.zmr", "spec/ramaze/view/haml.rb", "spec/ramaze/view/haml/external.haml", "spec/ramaze/view/haml/sum.haml", "spec/ramaze/view/liquid.rb", "spec/ramaze/view/liquid/external.liquid", "spec/ramaze/view/liquid/sum.liquid", "spec/ramaze/view/nagoro.rb", "spec/ramaze/view/nagoro/external.nag", "spec/ramaze/view/nagoro/sum.nag", "spec/ramaze/view/redcloth.rb", "spec/ramaze/view/redcloth/external.redcloth", "spec/ramaze/view/remarkably.rb", "spec/ramaze/view/remarkably/external.rem", "spec/ramaze/view/remarkably/sum.rem", "spec/ramaze/view/sass.rb", "spec/ramaze/view/sass/file.css.sass", "spec/ramaze/view/tagz.rb", "spec/ramaze/view/tagz/external.tagz", "spec/ramaze/view/tagz/sum.tagz", "spec/ramaze/view/tenjin.rb", "spec/ramaze/view/tenjin/external.rbhtml", "spec/ramaze/view/tenjin/sum.rbhtml", "spec/snippets/array/put_within.rb", "spec/snippets/binding/locals.rb", "spec/snippets/kernel/constant.rb", "spec/snippets/numeric/filesize_format.rb", "spec/snippets/numeric/time.rb", "spec/snippets/object/__dir__.rb", "spec/snippets/ordered_set.rb", "spec/snippets/ramaze/acquire.rb", "spec/snippets/ramaze/dictionary.rb", "spec/snippets/ramaze/struct.rb", "spec/snippets/string/camel_case.rb", "spec/snippets/string/color.rb", "spec/snippets/string/snake_case.rb", "spec/snippets/string/unindent.rb", "spec/snippets/thread/into.rb", "tasks/authors.rake", "tasks/bacon.rake", "tasks/changelog.rake", "tasks/copyright.rake", "tasks/gem.rake", "tasks/gem_installer.rake", "tasks/git.rake", "tasks/grancher.rake", "tasks/install_dependencies.rake", "tasks/jquery.rake", "tasks/manifest.rake", "tasks/metric_changes.rake", "tasks/rcov.rake", "tasks/release.rake", "tasks/reversion.rake", "tasks/todo.rake", "tasks/traits.rake", "tasks/yard.rake"]
14
+ s.files = [".mailmap", "CHANGELOG", "MANIFEST", "README.markdown", "Rakefile", "benchmark/results.txt", "benchmark/run.rb", "benchmark/suite/minimal.rb", "benchmark/suite/no_informer.rb", "benchmark/suite/no_sessions.rb", "benchmark/suite/no_template.rb", "benchmark/suite/simple.rb", "benchmark/suite/template_builder.rb", "benchmark/suite/template_erubis.rb", "benchmark/suite/template_ezamar.rb", "benchmark/suite/template_haml.rb", "benchmark/suite/template_liquid.rb", "benchmark/suite/template_markaby.rb", "benchmark/suite/template_nagoro.rb", "benchmark/suite/template_redcloth.rb", "benchmark/suite/template_tenjin.rb", "benchmark/test.rb", "bin/ramaze", "doc/AUTHORS", "doc/CHANGELOG", "doc/COPYING", "doc/FAQ", "doc/GPL", "doc/INSTALL", "doc/LEGAL", "doc/TODO", "doc/meta/announcement.txt", "doc/meta/configuration.txt", "doc/meta/internals.txt", "doc/meta/users.kml", "doc/tutorial/todolist.html", "doc/tutorial/todolist.mkd", "doc/tutorial/todolist.txt", "examples/app/auth/layout/auth.nag", "examples/app/auth/start.rb", "examples/app/auth/view/index.nag", "examples/app/auth/view/login.nag", "examples/app/auth/view/secret.nag", "examples/app/blog/README", "examples/app/blog/app.rb", "examples/app/blog/config.ru", "examples/app/blog/controller/comment.rb", "examples/app/blog/controller/entry.rb", "examples/app/blog/controller/init.rb", "examples/app/blog/controller/main.rb", "examples/app/blog/controller/tag.rb", "examples/app/blog/layout/default.nag", "examples/app/blog/model/comment.rb", "examples/app/blog/model/entry.rb", "examples/app/blog/model/init.rb", "examples/app/blog/model/tag.rb", "examples/app/blog/public/css/screen.css", "examples/app/blog/spec/blog.rb", "examples/app/blog/start.rb", "examples/app/blog/view/comment/form.nag", "examples/app/blog/view/comment/show.nag", "examples/app/blog/view/entry/edit.nag", "examples/app/blog/view/entry/feed.atom.nag", "examples/app/blog/view/entry/feed.rss.nag", "examples/app/blog/view/entry/index.nag", "examples/app/blog/view/entry/new.nag", "examples/app/blog/view/entry/show.nag", "examples/app/blog/view/feed.atom.nag", "examples/app/blog/view/feed.rss.nag", "examples/app/blog/view/index.nag", "examples/app/blog/view/tag/index.nag", "examples/app/chat/layout/default.nag", "examples/app/chat/model/history.rb", "examples/app/chat/model/message.rb", "examples/app/chat/public/css/chat.css", "examples/app/chat/public/js/chat.js", "examples/app/chat/public/js/jquery.js", "examples/app/chat/start.rb", "examples/app/chat/view/chat.nag", "examples/app/chat/view/index.nag", "examples/app/localization/start.rb", "examples/app/sourceview/public/coderay.css", "examples/app/sourceview/public/images/file.gif", "examples/app/sourceview/public/images/folder.gif", "examples/app/sourceview/public/images/tv-collapsable-last.gif", "examples/app/sourceview/public/images/tv-collapsable.gif", "examples/app/sourceview/public/images/tv-expandable-last.gif", "examples/app/sourceview/public/images/tv-expandable.gif", "examples/app/sourceview/public/images/tv-item-last.gif", "examples/app/sourceview/public/images/tv-item.gif", "examples/app/sourceview/public/jquery.js", "examples/app/sourceview/public/jquery.treeview.css", "examples/app/sourceview/public/jquery.treeview.js", "examples/app/sourceview/public/sourceview.js", "examples/app/sourceview/start.rb", "examples/app/sourceview/view/index.haml", "examples/app/todolist/controller/init.rb", "examples/app/todolist/controller/task.rb", "examples/app/todolist/layout/default.xhtml", "examples/app/todolist/model/init.rb", "examples/app/todolist/model/task.rb", "examples/app/todolist/public/css/screen.css", "examples/app/todolist/public/favicon.ico", "examples/app/todolist/start.rb", "examples/app/todolist/view/index.xhtml", "examples/app/upload/start.rb", "examples/app/upload/view/index.xhtml", "examples/app/whywiki/spec/whywiki.rb", "examples/app/whywiki/start.rb", "examples/app/whywiki/template/edit.xhtml", "examples/app/whywiki/template/show.xhtml", "examples/app/wikore/spec/wikore.rb", "examples/app/wikore/src/controller.rb", "examples/app/wikore/src/model.rb", "examples/app/wikore/start.rb", "examples/app/wikore/template/index.xhtml", "examples/app/wiktacular/README", "examples/app/wiktacular/mkd/link/2007-07-20_19-45-51.mkd", "examples/app/wiktacular/mkd/link/current.mkd", "examples/app/wiktacular/mkd/main/2007-07-20_16-31-33.mkd", "examples/app/wiktacular/mkd/main/2007-07-20_19-21-12.mkd", "examples/app/wiktacular/mkd/main/2007-07-20_19-23-10.mkd", "examples/app/wiktacular/mkd/main/2007-07-20_19-45-07.mkd", "examples/app/wiktacular/mkd/main/current.mkd", "examples/app/wiktacular/mkd/markdown/current.mkd", "examples/app/wiktacular/mkd/testing/2007-07-20_16-43-46.mkd", "examples/app/wiktacular/mkd/testing/2007-07-20_19-43-50.mkd", "examples/app/wiktacular/mkd/testing/2007-07-21_18-46-01.mkd", "examples/app/wiktacular/mkd/testing/2007-07-21_18-46-32.mkd", "examples/app/wiktacular/mkd/testing/2007-07-21_18-47-08.mkd", "examples/app/wiktacular/mkd/testing/2007-07-21_18-47-54.mkd", "examples/app/wiktacular/mkd/testing/current.mkd", "examples/app/wiktacular/public/favicon.ico", "examples/app/wiktacular/public/screen.css", "examples/app/wiktacular/spec/wiktacular.rb", "examples/app/wiktacular/src/controller.rb", "examples/app/wiktacular/src/model.rb", "examples/app/wiktacular/start.rb", "examples/app/wiktacular/template/edit.xhtml", "examples/app/wiktacular/template/html_layout.xhtml", "examples/app/wiktacular/template/index.xhtml", "examples/app/wiktacular/template/new.xhtml", "examples/basic/element.rb", "examples/basic/gestalt.rb", "examples/basic/hello.rb", "examples/basic/layout.rb", "examples/basic/linking.rb", "examples/basic/partial.rb", "examples/basic/simple.rb", "examples/helpers/cache.rb", "examples/helpers/form_with_sequel.rb", "examples/helpers/httpdigest.rb", "examples/helpers/identity.rb", "examples/helpers/nitro_form.rb", "examples/helpers/paginate.rb", "examples/helpers/provide.rb", "examples/helpers/rest.rb", "examples/helpers/simple_captcha.rb", "examples/misc/css.rb", "examples/misc/facebook.rb", "examples/misc/memleak_detector.rb", "examples/misc/nagoro_element.rb", "examples/misc/ramaise.rb", "examples/misc/rapp.rb", "examples/misc/sequel_scaffolding.rb", "examples/misc/serve_directory.rb", "examples/templates/template_erubis.rb", "examples/templates/template_ezamar.rb", "examples/templates/template_haml.rb", "examples/templates/template_liquid.rb", "examples/templates/template_markaby.rb", "examples/templates/template_nagoro.rb", "examples/templates/template_redcloth.rb", "examples/templates/template_remarkably.rb", "examples/templates/template_tenjin.rb", "examples/templates/view/external.haml", "examples/templates/view/external.liquid", "examples/templates/view/external.mab", "examples/templates/view/external.nag", "examples/templates/view/external.redcloth", "examples/templates/view/external.rem", "examples/templates/view/external.rhtml", "examples/templates/view/external.tenjin", "examples/templates/view/external.zmr", "lib/proto/app.rb", "lib/proto/config.ru", "lib/proto/controller/init.rb", "lib/proto/controller/main.rb", "lib/proto/layout/default.xhtml", "lib/proto/model/init.rb", "lib/proto/public/.htaccess", "lib/proto/public/css/screen.css", "lib/proto/public/dispatch.fcgi", "lib/proto/public/favicon.ico", "lib/proto/public/js/jquery.js", "lib/proto/public/ramaze.png", "lib/proto/spec/main.rb", "lib/proto/start.rb", "lib/proto/view/index.xhtml", "lib/ramaze.rb", "lib/ramaze/app.rb", "lib/ramaze/cache.rb", "lib/ramaze/cache/localmemcache.rb", "lib/ramaze/cache/memcache.rb", "lib/ramaze/cache/sequel.rb", "lib/ramaze/contrib/app_graph.rb", "lib/ramaze/contrib/email.rb", "lib/ramaze/contrib/facebook.rb", "lib/ramaze/contrib/facebook/facebook.rb", "lib/ramaze/contrib/gettext.rb", "lib/ramaze/contrib/gettext/mo.rb", "lib/ramaze/contrib/gettext/parser.rb", "lib/ramaze/contrib/gettext/po.rb", "lib/ramaze/contrib/gzip_filter.rb", "lib/ramaze/contrib/maruku_uv.rb", "lib/ramaze/contrib/profiling.rb", "lib/ramaze/contrib/rest.rb", "lib/ramaze/contrib/sequel/create_join.rb", "lib/ramaze/contrib/sequel/form_field.rb", "lib/ramaze/contrib/sequel/image.rb", "lib/ramaze/contrib/sequel/relation.rb", "lib/ramaze/controller.rb", "lib/ramaze/controller/default.rb", "lib/ramaze/current.rb", "lib/ramaze/files.rb", "lib/ramaze/gestalt.rb", "lib/ramaze/helper.rb", "lib/ramaze/helper/auth.rb", "lib/ramaze/helper/bench.rb", "lib/ramaze/helper/cache.rb", "lib/ramaze/helper/disqus.rb", "lib/ramaze/helper/flash.rb", "lib/ramaze/helper/form.rb", "lib/ramaze/helper/formatting.rb", "lib/ramaze/helper/gestalt.rb", "lib/ramaze/helper/gravatar.rb", "lib/ramaze/helper/httpdigest.rb", "lib/ramaze/helper/identity.rb", "lib/ramaze/helper/link.rb", "lib/ramaze/helper/localize.rb", "lib/ramaze/helper/markaby.rb", "lib/ramaze/helper/maruku.rb", "lib/ramaze/helper/nitroform.rb", "lib/ramaze/helper/pager.rb", "lib/ramaze/helper/paginate.rb", "lib/ramaze/helper/partial.rb", "lib/ramaze/helper/remarkably.rb", "lib/ramaze/helper/request_accessor.rb", "lib/ramaze/helper/sequel.rb", "lib/ramaze/helper/sequel_form.rb", "lib/ramaze/helper/simple_captcha.rb", "lib/ramaze/helper/stack.rb", "lib/ramaze/helper/tagz.rb", "lib/ramaze/helper/thread.rb", "lib/ramaze/helper/ultraviolet.rb", "lib/ramaze/helper/user.rb", "lib/ramaze/helper/xhtml.rb", "lib/ramaze/log.rb", "lib/ramaze/log/analogger.rb", "lib/ramaze/log/growl.rb", "lib/ramaze/log/hub.rb", "lib/ramaze/log/informer.rb", "lib/ramaze/log/knotify.rb", "lib/ramaze/log/logger.rb", "lib/ramaze/log/logging.rb", "lib/ramaze/log/rotatinginformer.rb", "lib/ramaze/log/syslog.rb", "lib/ramaze/log/xosd.rb", "lib/ramaze/middleware_compiler.rb", "lib/ramaze/plugin.rb", "lib/ramaze/reloader.rb", "lib/ramaze/reloader/watch_inotify.rb", "lib/ramaze/reloader/watch_stat.rb", "lib/ramaze/request.rb", "lib/ramaze/response.rb", "lib/ramaze/setup.rb", "lib/ramaze/snippets.rb", "lib/ramaze/snippets/array/put_within.rb", "lib/ramaze/snippets/binding/locals.rb", "lib/ramaze/snippets/blankslate.rb", "lib/ramaze/snippets/divide.rb", "lib/ramaze/snippets/fiber.rb", "lib/ramaze/snippets/kernel/constant.rb", "lib/ramaze/snippets/kernel/pretty_inspect.rb", "lib/ramaze/snippets/metaid.rb", "lib/ramaze/snippets/numeric/filesize_format.rb", "lib/ramaze/snippets/numeric/time.rb", "lib/ramaze/snippets/object/__dir__.rb", "lib/ramaze/snippets/object/acquire.rb", "lib/ramaze/snippets/object/instance_variable_defined.rb", "lib/ramaze/snippets/object/pretty.rb", "lib/ramaze/snippets/object/scope.rb", "lib/ramaze/snippets/ordered_set.rb", "lib/ramaze/snippets/proc/locals.rb", "lib/ramaze/snippets/ramaze/acquire.rb", "lib/ramaze/snippets/ramaze/deprecated.rb", "lib/ramaze/snippets/ramaze/dictionary.rb", "lib/ramaze/snippets/ramaze/fiber.rb", "lib/ramaze/snippets/ramaze/struct.rb", "lib/ramaze/snippets/string/camel_case.rb", "lib/ramaze/snippets/string/color.rb", "lib/ramaze/snippets/string/end_with.rb", "lib/ramaze/snippets/string/esc.rb", "lib/ramaze/snippets/string/ord.rb", "lib/ramaze/snippets/string/snake_case.rb", "lib/ramaze/snippets/string/start_with.rb", "lib/ramaze/snippets/string/unindent.rb", "lib/ramaze/snippets/thread/into.rb", "lib/ramaze/spec.rb", "lib/ramaze/spec/helper/bacon.rb", "lib/ramaze/spec/helper/pretty_output.rb", "lib/ramaze/spec/helper/snippets.rb", "lib/ramaze/spec/helper/template_examples.rb", "lib/ramaze/tool/create.rb", "lib/ramaze/tool/project_creator.rb", "lib/ramaze/version.rb", "lib/ramaze/view.rb", "lib/ramaze/view/erubis.rb", "lib/ramaze/view/ezamar.rb", "lib/ramaze/view/haml.rb", "lib/ramaze/view/liquid.rb", "lib/ramaze/view/maruku.rb", "lib/ramaze/view/nagoro.rb", "lib/ramaze/view/nagoro/render_partial.rb", "lib/ramaze/view/redcloth.rb", "lib/ramaze/view/remarkably.rb", "lib/ramaze/view/sass.rb", "lib/ramaze/view/tagz.rb", "lib/ramaze/view/tenjin.rb", "lib/vendor/etag.rb", "lib/vendor/route_exceptions.rb", "ramaze.gemspec", "spec/contrib/rest.rb", "spec/examples/caching.rb", "spec/examples/css.rb", "spec/examples/element.rb", "spec/examples/hello.rb", "spec/examples/helpers/httpdigest.rb", "spec/examples/linking.rb", "spec/examples/simple.rb", "spec/examples/templates/template_erubis.rb", "spec/examples/templates/template_ezamar.rb", "spec/examples/templates/template_haml.rb", "spec/examples/templates/template_liquid.rb", "spec/examples/templates/template_markaby.rb", "spec/examples/templates/template_nagoro.rb", "spec/examples/templates/template_redcloth.rb", "spec/examples/templates/template_remarkably.rb", "spec/examples/templates/template_tenjin.rb", "spec/helper.rb", "spec/ramaze/action/render.rb", "spec/ramaze/action/view/bar.xhtml", "spec/ramaze/action/view/instancevars/layout.xhtml", "spec/ramaze/action/view/other_wrapper.erb", "spec/ramaze/action/view/other_wrapper.xhtml", "spec/ramaze/action/view/single_wrapper.xhtml", "spec/ramaze/action/view/sub/sub_wrapper.erb", "spec/ramaze/action/view/sub/sub_wrapper.xhtml", "spec/ramaze/app.rb", "spec/ramaze/cache/localmemcache.rb", "spec/ramaze/cache/memcache.rb", "spec/ramaze/cache/sequel.rb", "spec/ramaze/controller/actionless_templates.rb", "spec/ramaze/controller/mapping.rb", "spec/ramaze/controller/provide_inheritance.rb", "spec/ramaze/controller/resolve.rb", "spec/ramaze/controller/subclass.rb", "spec/ramaze/controller/template_resolving.rb", "spec/ramaze/controller/view/bar.xhtml", "spec/ramaze/controller/view/base/another.xhtml", "spec/ramaze/controller/view/greet.xhtml", "spec/ramaze/controller/view/list.xhtml", "spec/ramaze/controller/view/other/greet/other.xhtml", "spec/ramaze/controller/view/other_wrapper.xhtml", "spec/ramaze/dispatcher/directory.rb", "spec/ramaze/dispatcher/file.rb", "spec/ramaze/dispatcher/public/favicon.ico", "spec/ramaze/dispatcher/public/file name.txt", "spec/ramaze/dispatcher/public/test_download.css", "spec/ramaze/error.rb", "spec/ramaze/files.rb", "spec/ramaze/files/public_1/plain.txt", "spec/ramaze/files/public_2/rich.txt", "spec/ramaze/gestalt.rb", "spec/ramaze/helper/auth.rb", "spec/ramaze/helper/bench.rb", "spec/ramaze/helper/cache.rb", "spec/ramaze/helper/flash.rb", "spec/ramaze/helper/form.rb", "spec/ramaze/helper/formatting.rb", "spec/ramaze/helper/gestalt.rb", "spec/ramaze/helper/gravatar.rb", "spec/ramaze/helper/httpdigest.rb", "spec/ramaze/helper/link.rb", "spec/ramaze/helper/localize.rb", "spec/ramaze/helper/maruku.rb", "spec/ramaze/helper/pager.rb", "spec/ramaze/helper/paginate.rb", "spec/ramaze/helper/request_accessor.rb", "spec/ramaze/helper/sequel_form.rb", "spec/ramaze/helper/simple_captcha.rb", "spec/ramaze/helper/stack.rb", "spec/ramaze/helper/user.rb", "spec/ramaze/helper/view/locals.xhtml", "spec/ramaze/helper/view/loop.xhtml", "spec/ramaze/helper/view/num.xhtml", "spec/ramaze/helper/view/partial.xhtml", "spec/ramaze/helper/view/recursive.xhtml", "spec/ramaze/helper/view/recursive_local_ivars.xhtml", "spec/ramaze/helper/view/recursive_locals.xhtml", "spec/ramaze/helper/view/test_template.xhtml", "spec/ramaze/helper/xhtml.rb", "spec/ramaze/log/informer.rb", "spec/ramaze/log/logging.rb", "spec/ramaze/log/syslog.rb", "spec/ramaze/params.rb", "spec/ramaze/public/favicon.ico", "spec/ramaze/public/ramaze.png", "spec/ramaze/public/test_download.css", "spec/ramaze/request.rb", "spec/ramaze/rewrite/file.css", "spec/ramaze/struct.rb", "spec/ramaze/template/ramaze/external.test", "spec/ramaze/view.rb", "spec/ramaze/view/erubis.rb", "spec/ramaze/view/erubis/external.rhtml", "spec/ramaze/view/erubis/sum.rhtml", "spec/ramaze/view/ezamar.rb", "spec/ramaze/view/ezamar/external.zmr", "spec/ramaze/view/ezamar/sum.zmr", "spec/ramaze/view/haml.rb", "spec/ramaze/view/haml/external.haml", "spec/ramaze/view/haml/sum.haml", "spec/ramaze/view/liquid.rb", "spec/ramaze/view/liquid/external.liquid", "spec/ramaze/view/liquid/sum.liquid", "spec/ramaze/view/nagoro.rb", "spec/ramaze/view/nagoro/external.nag", "spec/ramaze/view/nagoro/sum.nag", "spec/ramaze/view/redcloth.rb", "spec/ramaze/view/redcloth/external.redcloth", "spec/ramaze/view/remarkably.rb", "spec/ramaze/view/remarkably/external.rem", "spec/ramaze/view/remarkably/sum.rem", "spec/ramaze/view/sass.rb", "spec/ramaze/view/sass/file.css.sass", "spec/ramaze/view/tagz.rb", "spec/ramaze/view/tagz/external.tagz", "spec/ramaze/view/tagz/sum.tagz", "spec/ramaze/view/tenjin.rb", "spec/ramaze/view/tenjin/external.rbhtml", "spec/ramaze/view/tenjin/sum.rbhtml", "spec/snippets/array/put_within.rb", "spec/snippets/binding/locals.rb", "spec/snippets/kernel/constant.rb", "spec/snippets/numeric/filesize_format.rb", "spec/snippets/numeric/time.rb", "spec/snippets/object/__dir__.rb", "spec/snippets/ordered_set.rb", "spec/snippets/ramaze/acquire.rb", "spec/snippets/ramaze/dictionary.rb", "spec/snippets/ramaze/struct.rb", "spec/snippets/string/camel_case.rb", "spec/snippets/string/color.rb", "spec/snippets/string/snake_case.rb", "spec/snippets/string/unindent.rb", "spec/snippets/thread/into.rb", "tasks/authors.rake", "tasks/bacon.rake", "tasks/changelog.rake", "tasks/copyright.rake", "tasks/gem.rake", "tasks/gem_installer.rake", "tasks/git.rake", "tasks/grancher.rake", "tasks/install_dependencies.rake", "tasks/jquery.rake", "tasks/manifest.rake", "tasks/metric_changes.rake", "tasks/rcov.rake", "tasks/release.rake", "tasks/reversion.rake", "tasks/setup.rake", "tasks/todo.rake", "tasks/traits.rake", "tasks/yard.rake"]
15
15
  s.has_rdoc = true
16
16
  s.homepage = %q{http://github.com/manveru/org}
17
17
  s.post_install_message = %q{============================================================
@@ -23,12 +23,12 @@ You can now do create a new project:
23
23
  ============================================================}
24
24
  s.require_paths = ["lib"]
25
25
  s.rubyforge_project = %q{ramaze}
26
- s.rubygems_version = %q{1.3.1}
26
+ s.rubygems_version = %q{1.3.2}
27
27
  s.summary = %q{Ramaze is a simple and modular web framework}
28
28
 
29
29
  if s.respond_to? :specification_version then
30
30
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
31
- s.specification_version = 2
31
+ s.specification_version = 3
32
32
 
33
33
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
34
34
  else
@@ -1,89 +1,64 @@
1
1
  require 'spec/helper'
2
2
  require 'examples/helpers/httpdigest'
3
3
 
4
- class MockDigestRequest
5
- def initialize(params)
6
- @params = params
7
- end
8
-
9
- def method_missing(sym)
10
- if @params.has_key? k = sym.to_s
11
- return @params[k]
12
- end
13
- super
14
- end
15
-
16
- def method
17
- @params['method']
18
- end
19
-
20
- def response(password)
21
- Rack::Auth::Digest::MD5.new(nil).send(:digest, self, password)
22
- end
23
- end
4
+ # Not sure if we should change the behaviour of digest_authorize, it keeps
5
+ # challenging the authorization even after a logout, which will log us in right
6
+ # away again.
7
+ #
8
+ # IMHO, digest_authorize should only be valid for the following request.
9
+ #
10
+ # So for now, we have to reset the values of @digest_username and
11
+ # @digest_password before we make a request.
24
12
 
25
13
  describe Ramaze::Helper do
26
- behaves_like :session
27
-
28
- def auth_for(got, uri, username, password)
29
- challenge = got['WWW-Authenticate'].split(' ', 2).last
30
- params = Rack::Auth::Digest::Params.parse(challenge)
31
- params.merge!('cnonce' => 'nonsensenonce', 'method' => 'GET',
32
- 'nc' => '00000001', 'uri' => uri, 'username' => username)
33
- params['response'] = MockDigestRequest.new(params).response(password)
34
-
35
- "Digest #{params}"
36
- end
14
+ behaves_like :mock
37
15
 
38
16
  it 'authorizes request for /eyes_only' do
39
- session do |mock|
40
- got = mock.get('/eyes_only')
41
- got.status.should == 401
42
- got.body.should == 'Unauthorized'
17
+ digest_authorize nil, nil
18
+ get '/eyes_only'
19
+ last_response.status.should == 401
20
+ last_response.body.should == "Unauthorized"
43
21
 
44
- auth = auth_for(got, '/eyes_only', 'foo', 'oof')
45
- got = mock.get('/eyes_only', 'HTTP_AUTHORIZATION' => auth)
46
- got.status.should == 200
47
- got.body.should == "Shhhh don't tell anyone"
48
- end
22
+ digest_authorize 'foo', 'oof'
23
+ get '/eyes_only'
24
+ last_response.status.should == 200
25
+ last_response.body.should == "Shhhh don't tell anyone"
49
26
  end
50
27
 
51
28
  it 'authorizes request for /secret as admin' do
52
- session do |mock|
53
- got = mock.get('/secret')
54
- got.status.should == 401
55
- got.body.should == 'Unauthorized'
29
+ digest_authorize nil, nil
30
+ get '/secret'
31
+ last_response.status.should == 401
32
+ last_response.body.should == 'Unauthorized'
33
+
34
+ digest_authorize 'admin', 'secret'
35
+ get '/secret'
56
36
 
57
- auth = auth_for(got, '/secret', 'admin', 'secret')
58
- got = mock.get('/secret', 'HTTP_AUTHORIZATION' => auth)
59
- got.status.should == 200
60
- got.body.should == "Hello <em>admin</em>, welcome to SECRET world."
61
- end
37
+ last_response.status.should == 200
38
+ last_response.body.should == "Hello <em>admin</em>, welcome to SECRET world."
62
39
  end
63
40
 
64
41
  it 'authorizes request for /secret as root' do
65
- session do |mock|
66
- got = mock.get('/secret')
67
- got.status.should == 401
68
- got.body.should == 'Unauthorized'
42
+ digest_authorize nil, nil
43
+ get '/secret'
44
+ last_response.status.should == 401
45
+ last_response.body.should == 'Unauthorized'
69
46
 
70
- auth = auth_for(got, '/secret', 'root', 'password')
71
- got = mock.get('/secret', 'HTTP_AUTHORIZATION' => auth)
72
- got.status.should == 200
73
- got.body.should == "Hello <em>root</em>, welcome to SECRET world."
74
- end
47
+ digest_authorize 'root', 'password'
48
+ get '/secret'
49
+ last_response.status.should == 200
50
+ last_response.body.should == "Hello <em>root</em>, welcome to SECRET world."
75
51
  end
76
52
 
77
53
  it 'authorizes request for /guest' do
78
- session do |mock|
79
- got = mock.get('/guest')
80
- got.status.should == 401
81
- got.body.should == 'Unauthorized'
54
+ digest_authorize nil, nil
55
+ get '/guest'
56
+ last_response.status.should == 401
57
+ last_response.body.should == 'Unauthorized'
82
58
 
83
- auth = auth_for(got, '/guest', 'guest', 'access')
84
- got = mock.get('/guest', 'HTTP_AUTHORIZATION' => auth)
85
- got.status.should == 200
86
- got.body.should == "Hello <em>guest</em>, welcome to GUEST world."
87
- end
59
+ digest_authorize 'guest', 'access'
60
+ get '/guest'
61
+ last_response.status.should == 200
62
+ last_response.body.should == "Hello <em>guest</em>, welcome to GUEST world."
88
63
  end
89
64
  end
@@ -21,49 +21,51 @@ describe 'Serving static files' do
21
21
 
22
22
  it 'serves from public root' do
23
23
  css = File.read(__DIR__('public/test_download.css'))
24
- got = get('/test_download.css')
25
- got.body.should == css
26
- got.status.should == 200
24
+ get '/test_download.css'
25
+ last_response.body.should == css
26
+ last_response.status.should == 200
27
27
  end
28
28
 
29
29
  it 'serves files with spaces' do
30
- got = get('/file%20name.txt')
31
- got.status.should == 200
32
- got.body.should == 'hi'
30
+ get '/file%20name.txt'
31
+ last_response.status.should == 200
32
+ last_response.body.should == 'hi'
33
33
  end
34
34
 
35
35
  it 'sends ETag for string bodies' do
36
- got = get('/')
37
- got['ETag'].size.should == 34
36
+ get '/'
37
+ last_response['ETag'].size.should == 34
38
38
  end
39
39
 
40
40
  it 'sends Last-Modified for file bodies' do
41
- got = get('/test_download.css')
41
+ get '/test_download.css'
42
42
 
43
43
  mtime = File.mtime(__DIR__('public/test_download.css'))
44
44
 
45
- got['Last-Modified'].should == mtime.httpdate
45
+ last_response['Last-Modified'].should == mtime.httpdate
46
46
  end
47
47
 
48
48
  it 'respects ETag with HTTP_IF_NONE_MATCH' do
49
- got = get('/')
49
+ get '/'
50
50
 
51
- etag = got['ETag']
51
+ etag = last_response['ETag']
52
52
  etag.should.not.be.nil
53
53
 
54
- got = get('/', 'HTTP_IF_NONE_MATCH' => etag)
55
- got.status.should == 304
56
- got.body.should == ''
54
+ header 'HTTP_IF_NONE_MATCH', etag
55
+ get '/'
56
+ last_response.status.should == 304
57
+ last_response.body.should == ''
57
58
  end
58
59
 
59
60
  it 'respects Last-Modified with HTTP_IF_MODIFIED_SINCE' do
60
- got = get('/test_download.css')
61
+ get '/test_download.css'
61
62
 
62
- mtime = got['Last-Modified']
63
+ mtime = last_response['Last-Modified']
63
64
  mtime.should.not.be.nil
64
65
 
65
- got = get('/test_download.css', 'HTTP_IF_MODIFIED_SINCE' => mtime)
66
- got.status.should == 304
67
- got.body.should == ''
66
+ header 'HTTP_IF_MODIFIED_SINCE', mtime
67
+ get '/test_download.css'
68
+ last_response.status.should == 304
69
+ last_response.body.should == ''
68
70
  end
69
71
  end
data/spec/ramaze/error.rb CHANGED
@@ -37,7 +37,7 @@ end
37
37
  describe 'Error handling' do
38
38
  behaves_like :mock
39
39
 
40
- Ramaze.options.mode = :dev
40
+ Ramaze.options.mode = :live
41
41
 
42
42
  it 'uses Rack::ShowException to display errors' do
43
43
  got = get('/raises')