ramaze 0.2.1 → 0.3.0
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.
- data/Rakefile +20 -3
- data/bin/ramaze +1 -4
- data/doc/AUTHORS +2 -1
- data/doc/CHANGELOG +539 -32
- data/doc/LEGAL +4 -0
- data/doc/meta/announcement.txt +79 -47
- data/examples/blog/README +2 -2
- data/examples/blog/spec/blog.rb +33 -48
- data/examples/blog/src/controller.rb +15 -13
- data/examples/blog/src/model.rb +28 -10
- data/examples/blog/start.rb +0 -10
- data/examples/blog/template/edit.xhtml +1 -1
- data/examples/blog/template/index.xhtml +2 -2
- data/examples/facebook.rb +152 -0
- data/examples/linking.rb +28 -0
- data/examples/ramaise.rb +4 -11
- data/examples/rammit/spec/rammit.rb +30 -0
- data/examples/rammit/src/controller/main.rb +3 -0
- data/examples/rammit/src/controller/page.rb +16 -0
- data/examples/rammit/src/model.rb +33 -0
- data/examples/rammit/start.rb +7 -0
- data/examples/rammit/template/index.xhtml +14 -0
- data/examples/rammit/template/page/view.xhtml +4 -0
- data/examples/rapaste/Rakefile +28 -0
- data/examples/rapaste/public/css/active4d.css +114 -0
- data/examples/rapaste/public/css/all_hallows_eve.css +72 -0
- data/examples/rapaste/public/css/amy.css +147 -0
- data/examples/rapaste/public/css/blackboard.css +88 -0
- data/examples/rapaste/public/css/brilliance_black.css +605 -0
- data/examples/rapaste/public/css/brilliance_dull.css +599 -0
- data/examples/rapaste/public/css/cobalt.css +149 -0
- data/examples/rapaste/public/css/dawn.css +121 -0
- data/examples/rapaste/public/css/display.css +179 -0
- data/examples/rapaste/public/css/eiffel.css +121 -0
- data/examples/rapaste/public/css/espresso_libre.css +109 -0
- data/examples/rapaste/public/css/idle.css +62 -0
- data/examples/rapaste/public/css/iplastic.css +80 -0
- data/examples/rapaste/public/css/lazy.css +73 -0
- data/examples/rapaste/public/css/mac_classic.css +123 -0
- data/examples/rapaste/public/css/magicwb_amiga.css +104 -0
- data/examples/rapaste/public/css/pastels_on_dark.css +188 -0
- data/examples/rapaste/public/css/slush_poppies.css +85 -0
- data/examples/rapaste/public/css/spacecadet.css +51 -0
- data/examples/rapaste/public/css/sunburst.css +180 -0
- data/examples/rapaste/public/css/twilight.css +137 -0
- data/examples/rapaste/public/css/zenburnesque.css +91 -0
- data/examples/rapaste/public/js/jquery.js +11 -0
- data/examples/rapaste/rapaste.sqlite +0 -0
- data/examples/rapaste/spec/rapaste.rb +49 -0
- data/examples/rapaste/src/controller.rb +69 -0
- data/examples/rapaste/src/model.rb +61 -0
- data/examples/rapaste/start.rb +20 -0
- data/examples/rapaste/template/copy.xhtml +10 -0
- data/examples/rapaste/template/index.xhtml +9 -0
- data/examples/rapaste/template/layout.xhtml +22 -0
- data/examples/rapaste/template/list.xhtml +28 -0
- data/examples/rapaste/template/view.xhtml +37 -0
- data/examples/sourceview/sourceview.rb +3 -3
- data/examples/templates/template_amrita2.rb +1 -3
- data/examples/todolist/spec/todolist.rb +15 -18
- data/examples/whywiki/spec/whywiki.rb +15 -20
- data/examples/whywiki/start.rb +0 -1
- data/examples/wikore/spec/wikore.rb +14 -19
- data/examples/wiktacular/spec/wiktacular.rb +8 -15
- data/lib/proto/{src/controller → controller}/main.rb +4 -4
- data/lib/proto/public/css/ramaze_error.css +39 -3
- data/lib/proto/public/js/jquery.js +2039 -1020
- data/lib/proto/spec/main.rb +27 -0
- data/lib/proto/start.rb +5 -5
- data/lib/proto/view/error.xhtml +62 -0
- data/lib/proto/view/index.xhtml +34 -0
- data/lib/proto/view/page.xhtml +15 -0
- data/lib/ramaze.rb +9 -7
- data/lib/ramaze/action.rb +7 -3
- data/lib/ramaze/action/render.rb +15 -5
- data/lib/ramaze/adapter.rb +5 -5
- data/lib/ramaze/adapter/base.rb +2 -2
- data/lib/ramaze/adapter/cgi.rb +1 -1
- data/lib/ramaze/adapter/evented_mongrel.rb +1 -1
- data/lib/ramaze/adapter/fcgi.rb +2 -2
- data/lib/ramaze/adapter/mongrel.rb +1 -1
- data/lib/ramaze/adapter/swiftiplied_mongrel.rb +1 -1
- data/lib/ramaze/adapter/thin.rb +25 -0
- data/lib/ramaze/adapter/webrick.rb +1 -1
- data/lib/ramaze/cache.rb +3 -2
- data/lib/ramaze/cache/memcached.rb +1 -1
- data/lib/ramaze/cache/memory.rb +1 -1
- data/lib/ramaze/cache/yaml_store.rb +1 -1
- data/lib/ramaze/contrib.rb +1 -1
- data/lib/ramaze/contrib/auto_params.rb +12 -5
- data/lib/ramaze/contrib/auto_params/get_args.rb +1 -0
- data/lib/ramaze/contrib/facebook.rb +23 -0
- data/lib/ramaze/contrib/facebook/facebook.rb +168 -0
- data/lib/ramaze/contrib/gettext.rb +111 -0
- data/lib/ramaze/contrib/gettext/mo.rb +155 -0
- data/lib/ramaze/contrib/gettext/po.rb +109 -0
- data/lib/ramaze/contrib/gzip_filter.rb +1 -1
- data/lib/ramaze/contrib/route.rb +15 -5
- data/lib/ramaze/contrib/sequel/fill.rb +1 -1
- data/lib/ramaze/controller.rb +10 -4
- data/lib/ramaze/controller/error.rb +5 -13
- data/lib/ramaze/controller/main.rb +2 -0
- data/lib/ramaze/controller/resolve.rb +18 -10
- data/lib/ramaze/dispatcher.rb +1 -1
- data/lib/ramaze/dispatcher/action.rb +1 -1
- data/lib/ramaze/dispatcher/directory.rb +3 -2
- data/lib/ramaze/dispatcher/error.rb +5 -5
- data/lib/ramaze/dispatcher/file.rb +13 -2
- data/lib/ramaze/error.rb +1 -1
- data/lib/ramaze/gestalt.rb +2 -2
- data/lib/ramaze/global.rb +5 -5
- data/lib/ramaze/global/dsl.rb +1 -1
- data/lib/ramaze/global/globalstruct.rb +11 -5
- data/lib/ramaze/helper.rb +1 -1
- data/lib/ramaze/helper/aspect.rb +1 -1
- data/lib/ramaze/helper/auth.rb +2 -2
- data/lib/ramaze/helper/cache.rb +1 -1
- data/lib/ramaze/helper/cgi.rb +1 -1
- data/lib/ramaze/helper/file.rb +1 -1
- data/lib/ramaze/helper/flash.rb +1 -1
- data/lib/ramaze/helper/formatting.rb +1 -1
- data/lib/ramaze/helper/identity.rb +1 -1
- data/lib/ramaze/helper/inform.rb +1 -1
- data/lib/ramaze/helper/link.rb +4 -4
- data/lib/ramaze/helper/markaby.rb +1 -1
- data/lib/ramaze/helper/nitroform.rb +1 -1
- data/lib/ramaze/helper/pager.rb +2 -1
- data/lib/ramaze/helper/partial.rb +1 -1
- data/lib/ramaze/helper/redirect.rb +6 -1
- data/lib/ramaze/helper/sequel.rb +54 -0
- data/lib/ramaze/helper/stack.rb +1 -1
- data/lib/ramaze/inform.rb +1 -1
- data/lib/ramaze/inform/analogger.rb +1 -1
- data/lib/ramaze/inform/growl.rb +1 -1
- data/lib/ramaze/inform/hub.rb +1 -1
- data/lib/ramaze/inform/informer.rb +1 -1
- data/lib/ramaze/inform/informing.rb +2 -2
- data/lib/ramaze/inform/knotify.rb +1 -1
- data/lib/ramaze/inform/syslog.rb +1 -1
- data/lib/ramaze/inform/xosd.rb +1 -1
- data/lib/ramaze/snippets.rb +1 -1
- data/lib/ramaze/snippets/array/put_within.rb +1 -1
- data/lib/ramaze/snippets/blankslate.rb +7 -0
- data/lib/ramaze/snippets/dictionary.rb +6 -1
- data/lib/ramaze/snippets/divide.rb +1 -1
- data/lib/ramaze/snippets/kernel/__dir__.rb +1 -1
- data/lib/ramaze/snippets/kernel/acquire.rb +39 -0
- data/lib/ramaze/snippets/kernel/aquire.rb +1 -34
- data/lib/ramaze/snippets/kernel/constant.rb +1 -1
- data/lib/ramaze/snippets/kernel/pretty_inspect.rb +1 -1
- data/lib/ramaze/snippets/numeric/filesize_format.rb +1 -1
- data/lib/ramaze/snippets/object/traits.rb +1 -1
- data/lib/ramaze/snippets/ordered_set.rb +12 -7
- data/lib/ramaze/snippets/ramaze/caller_info.rb +1 -1
- data/lib/ramaze/snippets/ramaze/caller_lines.rb +1 -1
- data/lib/ramaze/snippets/string/camel_case.rb +1 -1
- data/lib/ramaze/snippets/string/color.rb +2 -4
- data/lib/ramaze/snippets/string/each.rb +1 -1
- data/lib/ramaze/snippets/string/ord.rb +15 -0
- data/lib/ramaze/snippets/string/snake_case.rb +1 -1
- data/lib/ramaze/snippets/struct/fill.rb +4 -2
- data/lib/ramaze/snippets/struct/values_at.rb +2 -2
- data/lib/ramaze/snippets/symbol/to_proc.rb +15 -8
- data/lib/ramaze/snippets/thread/into.rb +1 -1
- data/lib/ramaze/sourcereload.rb +4 -3
- data/lib/ramaze/spec/helper.rb +85 -32
- data/lib/ramaze/spec/helper/bacon.rb +7 -0
- data/lib/ramaze/spec/helper/browser.rb +1 -2
- data/lib/ramaze/spec/helper/mock_http.rb +1 -1
- data/lib/ramaze/spec/helper/pretty_output.rb +70 -0
- data/lib/ramaze/spec/helper/requester.rb +1 -1
- data/lib/ramaze/spec/helper/simple_http.rb +5 -4
- data/lib/ramaze/spec/helper/snippets.rb +6 -0
- data/lib/ramaze/store/default.rb +1 -1
- data/lib/ramaze/template.rb +1 -1
- data/lib/ramaze/template/amrita2.rb +6 -5
- data/lib/ramaze/template/erubis.rb +1 -1
- data/lib/ramaze/template/ezamar.rb +1 -1
- data/lib/ramaze/template/ezamar/element.rb +1 -1
- data/lib/ramaze/template/ezamar/engine.rb +1 -1
- data/lib/ramaze/template/ezamar/morpher.rb +1 -1
- data/lib/ramaze/template/ezamar/render_partial.rb +1 -1
- data/lib/ramaze/template/haml.rb +1 -1
- data/lib/ramaze/template/liquid.rb +1 -1
- data/lib/ramaze/template/markaby.rb +1 -1
- data/lib/ramaze/template/nagoro.rb +4 -6
- data/lib/ramaze/template/none.rb +1 -1
- data/lib/ramaze/template/remarkably.rb +1 -1
- data/lib/ramaze/template/sass.rb +1 -1
- data/lib/ramaze/tool.rb +1 -1
- data/lib/ramaze/tool/create.rb +7 -1
- data/lib/ramaze/tool/localize.rb +7 -14
- data/lib/ramaze/tool/mime.rb +1 -1
- data/lib/ramaze/tool/record.rb +1 -1
- data/lib/ramaze/trinity.rb +1 -1
- data/lib/ramaze/trinity/request.rb +4 -2
- data/lib/ramaze/trinity/response.rb +1 -1
- data/lib/ramaze/trinity/session.rb +7 -1
- data/lib/ramaze/version.rb +3 -3
- data/lib/vendor/bacon.rb +317 -0
- data/rake_tasks/conf.rake +1 -1
- data/rake_tasks/maintenance.rake +7 -5
- data/rake_tasks/spec.rake +54 -40
- data/spec/contrib/auto_params.rb +21 -4
- data/spec/contrib/route.rb +31 -4
- data/spec/contrib/sequel/fill.rb +3 -4
- data/spec/examples/caching.rb +5 -2
- data/spec/examples/css.rb +5 -2
- data/spec/examples/element.rb +5 -4
- data/spec/examples/hello.rb +1 -0
- data/spec/examples/linking.rb +18 -0
- data/spec/examples/simple.rb +13 -18
- data/spec/examples/templates/template_amrita2.rb +3 -2
- data/spec/examples/templates/template_erubis.rb +3 -2
- data/spec/examples/templates/template_ezamar.rb +2 -1
- data/spec/examples/templates/template_haml.rb +3 -2
- data/spec/examples/templates/template_liquid.rb +3 -2
- data/spec/examples/templates/template_markaby.rb +3 -2
- data/spec/examples/templates/template_remarkably.rb +3 -2
- data/spec/ramaze/action/basics.rb +4 -4
- data/spec/ramaze/action/cache.rb +11 -13
- data/spec/ramaze/action/layout.rb +47 -3
- data/spec/ramaze/action/render.rb +3 -3
- data/spec/ramaze/action/template/instancevars/layout.xhtml +1 -0
- data/spec/ramaze/adapter.rb +7 -7
- data/spec/ramaze/adapter/mongrel.rb +1 -1
- data/spec/ramaze/adapter/record.rb +7 -7
- data/spec/ramaze/adapter/webrick.rb +1 -1
- data/spec/ramaze/cache.rb +6 -8
- data/spec/ramaze/controller.rb +77 -65
- data/spec/ramaze/controller/resolve.rb +2 -1
- data/spec/ramaze/controller/template_resolving.rb +3 -4
- data/spec/ramaze/dispatcher.rb +3 -4
- data/spec/ramaze/dispatcher/directory.rb +35 -35
- data/spec/ramaze/dispatcher/file.rb +8 -5
- data/spec/ramaze/element.rb +4 -4
- data/spec/ramaze/error.rb +13 -11
- data/spec/ramaze/gestalt.rb +1 -1
- data/spec/ramaze/helper/aspect.rb +2 -1
- data/spec/ramaze/helper/auth.rb +4 -2
- data/spec/ramaze/helper/cache.rb +10 -9
- data/spec/ramaze/helper/cgi.rb +2 -2
- data/spec/ramaze/helper/file.rb +1 -0
- data/spec/ramaze/helper/flash.rb +5 -4
- data/spec/ramaze/helper/formatting.rb +1 -1
- data/spec/ramaze/helper/link.rb +3 -3
- data/spec/ramaze/helper/pager.rb +44 -80
- data/spec/ramaze/helper/partial.rb +2 -3
- data/spec/ramaze/helper/redirect.rb +10 -1
- data/spec/ramaze/helper/stack.rb +4 -3
- data/spec/ramaze/helper/template/loop.xhtml +2 -1
- data/spec/ramaze/inform/informer.rb +2 -2
- data/spec/ramaze/inform/syslog.rb +1 -1
- data/spec/ramaze/localize.rb +26 -26
- data/spec/ramaze/morpher.rb +6 -7
- data/spec/ramaze/params.rb +7 -8
- data/spec/ramaze/request.rb +27 -6
- data/spec/ramaze/request/mongrel.rb +1 -1
- data/spec/ramaze/request/thin.rb +9 -0
- data/spec/ramaze/session.rb +2 -1
- data/spec/ramaze/store/default.rb +14 -17
- data/spec/ramaze/template.rb +5 -7
- data/spec/ramaze/template/amrita2.rb +4 -1
- data/spec/ramaze/template/erubis.rb +2 -1
- data/spec/ramaze/template/ezamar.rb +2 -3
- data/spec/ramaze/template/ezamar/other__index.xhtml +1 -0
- data/spec/ramaze/template/haml.rb +2 -1
- data/spec/ramaze/template/liquid.rb +4 -2
- data/spec/ramaze/template/markaby.rb +4 -2
- data/spec/ramaze/template/nagoro.rb +3 -4
- data/spec/ramaze/template/remarkably.rb +4 -2
- data/spec/ramaze/template/sass.rb +3 -2
- data/spec/ramaze/template/xslt.rb +4 -7
- data/spec/ramaze/trinity/request.rb +4 -3
- data/spec/ramaze/trinity/session.rb +6 -4
- data/spec/snippets/array/put_within.rb +3 -2
- data/spec/snippets/divide.rb +1 -4
- data/spec/snippets/kernel/__dir__.rb +1 -1
- data/spec/snippets/kernel/acquire.rb +71 -0
- data/spec/snippets/kernel/constant.rb +4 -8
- data/spec/snippets/numeric/filesize_format.rb +1 -1
- data/spec/snippets/ordered_set.rb +9 -2
- data/spec/snippets/ramaze/caller_info.rb +3 -3
- data/spec/snippets/ramaze/caller_lines.rb +3 -3
- data/spec/snippets/string/camel_case.rb +1 -1
- data/spec/snippets/string/color.rb +2 -2
- data/spec/snippets/string/snake_case.rb +5 -1
- data/spec/snippets/string/unindent.rb +1 -1
- data/spec/snippets/struct/fill.rb +14 -15
- data/spec/snippets/struct/values_at.rb +15 -10
- data/spec/snippets/symbol/to_proc.rb +13 -0
- data/spec/snippets/thread/into.rb +3 -4
- metadata +458 -386
- data/doc/README.html +0 -729
- data/doc/changes.txt +0 -5044
- data/doc/changes.xml +0 -5046
- data/lib/proto/public/error.zmr +0 -61
- data/lib/proto/src/element/page.rb +0 -17
- data/lib/proto/src/model.rb +0 -6
- data/lib/proto/template/index.xhtml +0 -15
- data/lib/ramaze/spec/helper/layout.rb +0 -58
- data/lib/ramaze/spec/helper/minimal.rb +0 -23
- data/lib/ramaze/spec/helper/wrap.rb +0 -198
- data/spec/snippets/kernel/aquire.rb +0 -71
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
#! /usr/bin/env ruby
|
|
2
|
+
=begin
|
|
3
|
+
rgettext.rb - Generate a .pot file.
|
|
4
|
+
|
|
5
|
+
Copyright (C) 2003-2006 Masao Mutoh
|
|
6
|
+
Copyright (C) 2001,2002 Yasushi Shoji, Masao Mutoh
|
|
7
|
+
|
|
8
|
+
Yasushi Shoji <yashi at atmark-techno.com>
|
|
9
|
+
Masao Mutoh <mutoh at highway.ne.jp>
|
|
10
|
+
|
|
11
|
+
You may redistribute it and/or modify it under the same
|
|
12
|
+
license terms as Ruby.
|
|
13
|
+
=end
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
module GetText
|
|
17
|
+
|
|
18
|
+
module RGetText #:nodoc:
|
|
19
|
+
extend GetText
|
|
20
|
+
|
|
21
|
+
MAX_LINE_LEN = 70 unless defined?(MAX_LINE_LEN)
|
|
22
|
+
|
|
23
|
+
module_function
|
|
24
|
+
|
|
25
|
+
def generate_pot_header # :nodoc:
|
|
26
|
+
time = Time.now.strftime("%Y-%m-%d %H:%M")
|
|
27
|
+
off = Time.now.utc_offset
|
|
28
|
+
sign = off <= 0 ? '-' : '+'
|
|
29
|
+
time += sprintf('%s%02d%02d', sign, *(off.abs / 60).divmod(60))
|
|
30
|
+
|
|
31
|
+
<<EOS
|
|
32
|
+
# SOME DESCRIPTIVE TITLE.
|
|
33
|
+
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
|
34
|
+
# This file is distributed under the same license as the PACKAGE package.
|
|
35
|
+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
36
|
+
#
|
|
37
|
+
#, fuzzy
|
|
38
|
+
msgid ""
|
|
39
|
+
msgstr ""
|
|
40
|
+
"Project-Id-Version: PACKAGE VERSION\\n"
|
|
41
|
+
"POT-Creation-Date: #{time}\\n"
|
|
42
|
+
"PO-Revision-Date: #{time}\\n"
|
|
43
|
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n"
|
|
44
|
+
"Language-Team: LANGUAGE <LL@li.org>\\n"
|
|
45
|
+
"MIME-Version: 1.0\\n"
|
|
46
|
+
"Content-Type: text/plain; charset=UTF-8\\n"
|
|
47
|
+
"Content-Transfer-Encoding: 8bit\\n"
|
|
48
|
+
EOS
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def generate_pot(ary) # :nodoc:
|
|
52
|
+
str = ""
|
|
53
|
+
result = Array.new
|
|
54
|
+
ary.each do |key|
|
|
55
|
+
msgid = key.shift.dup
|
|
56
|
+
curr_pos = MAX_LINE_LEN
|
|
57
|
+
key.each do |e|
|
|
58
|
+
if curr_pos + e.size > MAX_LINE_LEN
|
|
59
|
+
str << "\n#:"
|
|
60
|
+
curr_pos = 3
|
|
61
|
+
else
|
|
62
|
+
curr_pos += (e.size + 1)
|
|
63
|
+
end
|
|
64
|
+
str << " " << e
|
|
65
|
+
end
|
|
66
|
+
msgid.gsub!(/"/, '\"')
|
|
67
|
+
msgid.gsub!(/\r/, '')
|
|
68
|
+
|
|
69
|
+
str << "\nmsgid \"" << msgid << "\"\n"
|
|
70
|
+
str << "msgstr \"\"\n"
|
|
71
|
+
end
|
|
72
|
+
str
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def generate_translated_po(hash)
|
|
76
|
+
str = generate_pot_header
|
|
77
|
+
result = Array.new
|
|
78
|
+
|
|
79
|
+
hash.keys.sort.each do |msgid|
|
|
80
|
+
msgid = msgid.dup
|
|
81
|
+
msgstr = hash[msgid]
|
|
82
|
+
|
|
83
|
+
msgid.gsub!(/"/, '\"')
|
|
84
|
+
msgid.gsub!(/\r/, '')
|
|
85
|
+
|
|
86
|
+
if msgstr
|
|
87
|
+
msgstr.gsub!(/"/, '\"')
|
|
88
|
+
msgstr.gsub!(/\r/, '')
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
str << "\nmsgid \"" << msgid << "\"\n"
|
|
92
|
+
str << "msgstr \"" << msgstr << "\"\n"
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
str
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def generate(array) # :nodoc:
|
|
99
|
+
str = ''
|
|
100
|
+
str << generate_pot_header
|
|
101
|
+
str << generate_pot(array)
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
if $0 == __FILE__
|
|
107
|
+
require 'yaml'
|
|
108
|
+
puts GetText::RGetText.generate_translated_po(YAML.load_file(ARGV[0]))
|
|
109
|
+
end
|
data/lib/ramaze/contrib/route.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c)
|
|
1
|
+
# Copyright (c) 2008 Michael Fellinger m.fellinger@gmail.com
|
|
2
2
|
# All files in this distribution are subject to the terms of the Ruby license.
|
|
3
3
|
|
|
4
4
|
# Usage:
|
|
@@ -31,10 +31,20 @@ module Ramaze
|
|
|
31
31
|
class << self
|
|
32
32
|
def routed(path)
|
|
33
33
|
routes = Contrib::Route.trait[:routes]
|
|
34
|
-
routes.each do |
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
routes.each do |key, val|
|
|
35
|
+
case
|
|
36
|
+
when key.is_a?(Regexp)
|
|
37
|
+
regex, pattern = key, val
|
|
38
|
+
if md = path.match(regex)
|
|
39
|
+
new_path = pattern % md.to_a[1..-1]
|
|
40
|
+
return resolve(new_path, :routed)
|
|
41
|
+
end
|
|
42
|
+
when val.respond_to?(:call)
|
|
43
|
+
if new_path = val.call(path, request)
|
|
44
|
+
return resolve(new_path, :routed)
|
|
45
|
+
end
|
|
46
|
+
else
|
|
47
|
+
Inform.error "Invalid route #{val}"
|
|
38
48
|
end
|
|
39
49
|
end
|
|
40
50
|
|
data/lib/ramaze/controller.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c)
|
|
1
|
+
# Copyright (c) 2008 Michael Fellinger m.fellinger@gmail.com
|
|
2
2
|
# All files in this distribution are subject to the terms of the Ruby license.
|
|
3
3
|
|
|
4
4
|
require 'ramaze/helper'
|
|
@@ -57,9 +57,15 @@ module Ramaze
|
|
|
57
57
|
|
|
58
58
|
def startup options = {}
|
|
59
59
|
Inform.dev("found Controllers: #{Global.controllers.inspect}")
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
|
|
61
|
+
{ 'Template' => Global.template_root,
|
|
62
|
+
'Public' => Global.public_root }.each do |type, path|
|
|
63
|
+
unless File.directory?(path)
|
|
64
|
+
Inform.warn("#{type} root: #{path} doesn't exist")
|
|
65
|
+
else
|
|
66
|
+
Inform.info("#{type} root: #{File.expand_path path}")
|
|
67
|
+
end
|
|
68
|
+
end
|
|
63
69
|
|
|
64
70
|
if Global.mapping.empty?
|
|
65
71
|
Inform.warn("No Controllers mapped, will serve /public only.")
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c)
|
|
1
|
+
# Copyright (c) 2008 Michael Fellinger m.fellinger@gmail.com
|
|
2
2
|
# All files in this distribution are subject to the terms of the Ruby license.
|
|
3
3
|
|
|
4
4
|
module Ramaze
|
|
@@ -20,25 +20,17 @@ module Ramaze
|
|
|
20
20
|
return [title, "", error.backtrace].flatten.join("\n")
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
-
@backtrace = error.backtrace[0..20]
|
|
24
|
-
|
|
25
|
-
@colors = []
|
|
26
|
-
min = 200
|
|
27
|
-
max = 255
|
|
28
|
-
step = -((max - min) / @backtrace.size).abs
|
|
29
|
-
max.step(min, step) do |color|
|
|
30
|
-
@colors << color
|
|
31
|
-
end
|
|
32
|
-
|
|
33
23
|
backtrace_size = Ramaze::Global.backtrace_size
|
|
34
|
-
|
|
35
|
-
@backtrace.map! do |line|
|
|
24
|
+
@backtrace = error.backtrace[0..20].map do |line|
|
|
36
25
|
file, lineno, meth = *Ramaze.parse_backtrace(line)
|
|
37
26
|
lines = Ramaze.caller_lines(file, lineno, backtrace_size)
|
|
38
27
|
|
|
39
28
|
[ lines, lines.object_id.abs, file, lineno, meth ]
|
|
40
29
|
end
|
|
41
30
|
|
|
31
|
+
# for backwards-compat with old error.zmr
|
|
32
|
+
@colors = [255] * @backtrace.size
|
|
33
|
+
|
|
42
34
|
@title = CGI.escapeHTML(title)
|
|
43
35
|
@editor = (ENV['EDITOR'] || 'vim')
|
|
44
36
|
title
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c)
|
|
1
|
+
# Copyright (c) 2008 Michael Fellinger m.fellinger@gmail.com
|
|
2
2
|
# All files in this distribution are subject to the terms of the Ruby license.
|
|
3
3
|
|
|
4
4
|
module Ramaze
|
|
@@ -81,7 +81,7 @@ module Ramaze
|
|
|
81
81
|
# appropiate template if one exists.
|
|
82
82
|
|
|
83
83
|
def resolve_action(path, *parameter)
|
|
84
|
-
path, parameter = path.to_s, parameter.map
|
|
84
|
+
path, parameter = path.to_s, parameter.map{|e| e.to_s}
|
|
85
85
|
if alternate_template = trait["#{path}_template"]
|
|
86
86
|
t_controller, t_path = *alternate_template
|
|
87
87
|
template = t_controller.resolve_template(t_path)
|
|
@@ -116,17 +116,17 @@ module Ramaze
|
|
|
116
116
|
|
|
117
117
|
# Composes an array with the template-paths to look up in the right order.
|
|
118
118
|
# Usually this is composed of Global.template_root and the mapping of the
|
|
119
|
-
# controller
|
|
120
|
-
# it possible to convert CSS on the fly and things like that.
|
|
119
|
+
# controller.
|
|
121
120
|
|
|
122
121
|
def template_paths
|
|
123
122
|
@template_root ||= Global.template_root / Global.mapping.invert[self]
|
|
124
|
-
[ @template_root
|
|
123
|
+
[ @template_root ]
|
|
125
124
|
end
|
|
126
125
|
|
|
127
126
|
# Based on methodname and arity, tries to find the right method on current controller.
|
|
128
127
|
def resolve_method(name, *params)
|
|
129
|
-
if method = [ name, name.gsub('__','/') ].find{|n|
|
|
128
|
+
if method = [ name, name.gsub('__','/') ].find{|n|
|
|
129
|
+
cached_action_methods.include?(n) }
|
|
130
130
|
arity = instance_method(method).arity
|
|
131
131
|
if params.size == arity or arity < 0
|
|
132
132
|
return method, params
|
|
@@ -135,14 +135,20 @@ module Ramaze
|
|
|
135
135
|
return nil, []
|
|
136
136
|
end
|
|
137
137
|
|
|
138
|
+
def cached_action_methods
|
|
139
|
+
Cache.action_methods[self] ||= action_methods
|
|
140
|
+
end
|
|
141
|
+
|
|
138
142
|
# methodnames that may be used for current controller.
|
|
139
143
|
def action_methods
|
|
140
144
|
exclude = Controller.trait[:exclude_action_modules]
|
|
141
145
|
|
|
142
|
-
ancs = (ancestors - exclude).select{|a| a.is_a?(Module)}
|
|
143
|
-
meths = ancs.map{|a|
|
|
146
|
+
ancs = (ancestors - exclude).select{|a| a.is_a?(Module) }
|
|
147
|
+
meths = ancs.map{|a|
|
|
148
|
+
a.instance_methods(false).map{|iv| iv.to_s }
|
|
149
|
+
}.flatten.uniq
|
|
144
150
|
# fix for facets/more/paramix
|
|
145
|
-
meths - ancs.map
|
|
151
|
+
meths - ancs.map{|a| a.to_s}
|
|
146
152
|
end
|
|
147
153
|
|
|
148
154
|
# Generate all possible permutations for given path.
|
|
@@ -166,7 +172,9 @@ module Ramaze
|
|
|
166
172
|
|
|
167
173
|
until pattern.empty?
|
|
168
174
|
args << pattern.shift
|
|
169
|
-
|
|
175
|
+
joined = args.join('__')
|
|
176
|
+
patterns << [controller, joined, pattern.dup]
|
|
177
|
+
patterns << [controller, "#{joined}__index", pattern.dup]
|
|
170
178
|
end
|
|
171
179
|
end
|
|
172
180
|
|
data/lib/ramaze/dispatcher.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c)
|
|
1
|
+
# Copyright (c) 2008 Michael Fellinger m.fellinger@gmail.com
|
|
2
2
|
# All files in this distribution are subject to the terms of the Ruby license.
|
|
3
3
|
|
|
4
4
|
module Ramaze
|
|
@@ -36,7 +36,8 @@ module Ramaze
|
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
def list_for(path)
|
|
39
|
-
|
|
39
|
+
root = ::File.expand_path(Global.public_root)
|
|
40
|
+
display = path.gsub(/^#{Regexp.escape(root)}\/?/, '/')
|
|
40
41
|
wrapper =
|
|
41
42
|
%(<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
|
42
43
|
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c)
|
|
1
|
+
# Copyright (c) 2008 Michael Fellinger m.fellinger@gmail.com
|
|
2
2
|
# All files in this distribution are subject to the terms of the Ruby license.
|
|
3
3
|
|
|
4
4
|
module Ramaze
|
|
@@ -51,12 +51,12 @@ module Ramaze
|
|
|
51
51
|
end
|
|
52
52
|
end
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
if path and Global.error_page and error.message !~ /`#{path}'/
|
|
55
55
|
response.status = status
|
|
56
|
-
return Dispatcher.dispatch_to(path)
|
|
56
|
+
return Dispatcher.dispatch_to(path)
|
|
57
|
+
else
|
|
58
|
+
response.build(error.message, status)
|
|
57
59
|
end
|
|
58
|
-
|
|
59
|
-
response.build(error.message, status)
|
|
60
60
|
rescue Object => ex
|
|
61
61
|
Inform.error(ex)
|
|
62
62
|
response.build(ex.message, status)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c)
|
|
1
|
+
# Copyright (c) 2008 Michael Fellinger m.fellinger@gmail.com
|
|
2
2
|
# All files in this distribution are subject to the terms of the Ruby license.
|
|
3
3
|
|
|
4
4
|
module Ramaze
|
|
@@ -8,6 +8,10 @@ module Ramaze
|
|
|
8
8
|
# file if found.
|
|
9
9
|
|
|
10
10
|
class File
|
|
11
|
+
# These names are checked for serving from public directory.
|
|
12
|
+
# They take priority over Actions which comes later in the FILTER
|
|
13
|
+
INDICES = %w[index.htm index.xhtml index.html index]
|
|
14
|
+
|
|
11
15
|
class << self
|
|
12
16
|
include Trinity
|
|
13
17
|
|
|
@@ -24,6 +28,7 @@ module Ramaze
|
|
|
24
28
|
|
|
25
29
|
def open_file(path)
|
|
26
30
|
file = resolve_path(path)
|
|
31
|
+
|
|
27
32
|
if ::File.file?(file) or ::File.file?(file=file/'index')
|
|
28
33
|
response['Content-Type'] = Tool::MIME.type_for(file) unless ::File.extname(file).empty?
|
|
29
34
|
log(file)
|
|
@@ -32,7 +37,13 @@ module Ramaze
|
|
|
32
37
|
end
|
|
33
38
|
|
|
34
39
|
def resolve_path(path)
|
|
35
|
-
::File.join(Global.public_root, path)
|
|
40
|
+
joined = ::File.join(Global.public_root, path)
|
|
41
|
+
|
|
42
|
+
if ::File.directory?(joined)
|
|
43
|
+
Dir[joined/"{#{INDICES.join(',')}}"].first || joined
|
|
44
|
+
else
|
|
45
|
+
joined
|
|
46
|
+
end
|
|
36
47
|
end
|
|
37
48
|
|
|
38
49
|
def log(file)
|
data/lib/ramaze/error.rb
CHANGED
data/lib/ramaze/gestalt.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c)
|
|
1
|
+
# Copyright (c) 2008 Michael Fellinger m.fellinger@gmail.com
|
|
2
2
|
# All files in this distribution are subject to the terms of the Ruby license.
|
|
3
3
|
|
|
4
4
|
=begin rdoc
|
|
@@ -98,7 +98,7 @@ module Ramaze
|
|
|
98
98
|
@out << attr.inject(''){ |s,v| s << %{ #{v[0]}="#{_gestalt_escape_entities(v[1])}"} }
|
|
99
99
|
if text != [] or block_given?
|
|
100
100
|
@out << ">"
|
|
101
|
-
@out << _gestalt_escape_entities(text.
|
|
101
|
+
@out << _gestalt_escape_entities([text].join)
|
|
102
102
|
if block_given?
|
|
103
103
|
text = yield
|
|
104
104
|
@out << text.to_str if text != @out and text.respond_to?(:to_str)
|
data/lib/ramaze/global.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (c)
|
|
1
|
+
# Copyright (c) 2008 Michael Fellinger m.fellinger@gmail.com
|
|
2
2
|
# All files in this distribution are subject to the terms of the Ruby license.
|
|
3
3
|
|
|
4
4
|
require 'ostruct'
|
|
@@ -9,10 +9,10 @@ require 'ramaze/global/dsl'
|
|
|
9
9
|
module Ramaze
|
|
10
10
|
GlobalDSL.option_dsl do
|
|
11
11
|
o "Set the adapter Ramaze will run on.",
|
|
12
|
-
:adapter => :webrick, :cli => [:webrick, :mongrel]
|
|
12
|
+
:adapter => :webrick, :cli => [:webrick, :mongrel, :thin]
|
|
13
13
|
|
|
14
14
|
o "All running threads of Adapter will be collected here.",
|
|
15
|
-
:adapters =>
|
|
15
|
+
:adapters => Set.new
|
|
16
16
|
|
|
17
17
|
o "Set the size of Backtrace shown.",
|
|
18
18
|
:backtrace_size => 10, :cli => 10
|
|
@@ -77,7 +77,7 @@ module Ramaze
|
|
|
77
77
|
:port => 7000, :cli => 7000, :short => :p
|
|
78
78
|
|
|
79
79
|
o "Specify directory to serve static files",
|
|
80
|
-
:public_root =>
|
|
80
|
+
:public_root => 'public', :cli => 'public'
|
|
81
81
|
|
|
82
82
|
o "Record all Request objects by assigning a filtering Proc to me.",
|
|
83
83
|
:record => false
|
|
@@ -104,7 +104,7 @@ module Ramaze
|
|
|
104
104
|
:test_connections => true, :cli => true
|
|
105
105
|
|
|
106
106
|
o "Specify directory to serve dynamic files",
|
|
107
|
-
:template_root =>
|
|
107
|
+
:template_root => 'view', :cli => 'view'
|
|
108
108
|
|
|
109
109
|
o "Enable directory listing",
|
|
110
110
|
:list_directories => false, :cli => false
|
data/lib/ramaze/global/dsl.rb
CHANGED