ramaze 0.3.5 → 0.3.9
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +5 -20
- data/bin/ramaze +0 -4
- data/doc/AUTHORS +5 -0
- data/doc/meta/announcement.txt +2 -1
- data/doc/tutorial/todolist.html +20 -21
- data/doc/tutorial/todolist.mkd +10 -9
- data/examples/blog/{src/controller.rb → controller/main.rb} +2 -0
- data/examples/blog/{src/model.rb → model/entry.rb} +0 -0
- data/examples/blog/spec/blog.rb +3 -3
- data/examples/blog/start.rb +2 -3
- data/examples/blog/view/edit.xhtml +17 -0
- data/examples/blog/view/index.xhtml +17 -0
- data/examples/blog/view/layout.xhtml +11 -0
- data/examples/blog/view/new.xhtml +16 -0
- data/examples/facebook.rb +15 -8
- data/examples/identity.rb +1 -1
- data/examples/memleak_detector.rb +1 -1
- data/examples/rammit/src/model.rb +1 -1
- data/examples/rapaste/controller/paste.rb +7 -7
- data/examples/rapaste/model/paste.rb +1 -3
- data/examples/rapaste/public/css/display.css +2 -1
- data/examples/rapaste/start.rb +2 -3
- data/examples/sourceview/sourceview.rb +1 -1
- data/examples/templates/template/external.tenjin +28 -0
- data/examples/templates/template_amrita2.rb +0 -3
- data/examples/templates/template_tenjin.rb +57 -0
- data/examples/todolist/spec/todolist.rb +13 -2
- data/examples/todolist/src/controller/main.rb +1 -1
- data/examples/todolist/template/index.xhtml +1 -1
- data/examples/wiktacular/spec/wiktacular.rb +18 -0
- data/examples/wiktacular/src/controller.rb +2 -2
- data/examples/wiktacular/src/model.rb +8 -2
- data/lib/proto/public/css/ramaze_error.css +4 -0
- data/lib/proto/public/dispatch.fcgi +11 -0
- data/lib/proto/spec/main.rb +1 -1
- data/lib/proto/start.ru +8 -0
- data/lib/proto/view/error.xhtml +2 -0
- data/lib/ramaze.rb +28 -5
- data/lib/ramaze/action.rb +9 -2
- data/lib/ramaze/action/render.rb +40 -24
- data/lib/ramaze/adapter.rb +10 -17
- data/lib/ramaze/adapter/base.rb +8 -12
- data/lib/ramaze/adapter/cgi.rb +14 -13
- data/lib/ramaze/adapter/ebb.rb +34 -0
- data/lib/ramaze/adapter/evented_mongrel.rb +1 -1
- data/lib/ramaze/adapter/fcgi.rb +14 -14
- data/lib/ramaze/adapter/lsws.rb +15 -11
- data/lib/ramaze/adapter/mongrel.rb +2 -1
- data/lib/ramaze/adapter/scgi.rb +24 -0
- data/lib/ramaze/adapter/swiftiplied_mongrel.rb +1 -1
- data/lib/ramaze/adapter/thin.rb +4 -5
- data/lib/ramaze/adapter/webrick.rb +5 -5
- data/lib/ramaze/cache.rb +1 -1
- data/lib/ramaze/cache/memcached.rb +1 -1
- data/lib/ramaze/contrib.rb +70 -10
- data/lib/ramaze/contrib/auto_params.rb +1 -1
- data/lib/ramaze/contrib/email.rb +15 -15
- data/lib/ramaze/contrib/facebook.rb +2 -2
- data/lib/ramaze/contrib/facebook/facebook.rb +7 -4
- data/lib/ramaze/contrib/file_cache.rb +65 -0
- data/lib/ramaze/contrib/gettext.rb +56 -55
- data/lib/ramaze/contrib/profiling.rb +36 -0
- data/lib/ramaze/contrib/sequel_cache.rb +92 -0
- data/lib/ramaze/controller.rb +80 -47
- data/lib/ramaze/controller/error.rb +10 -5
- data/lib/ramaze/controller/resolve.rb +36 -48
- data/lib/ramaze/current.rb +70 -0
- data/lib/ramaze/{trinity → current}/request.rb +62 -15
- data/lib/ramaze/current/response.rb +19 -0
- data/lib/ramaze/{trinity → current}/session.rb +32 -110
- data/lib/ramaze/current/session/flash.rb +67 -0
- data/lib/ramaze/current/session/hash.rb +65 -0
- data/lib/ramaze/dispatcher.rb +1 -28
- data/lib/ramaze/dispatcher/action.rb +6 -3
- data/lib/ramaze/dispatcher/directory.rb +1 -1
- data/lib/ramaze/dispatcher/error.rb +26 -5
- data/lib/ramaze/dispatcher/file.rb +13 -2
- data/lib/ramaze/gestalt.rb +3 -1
- data/lib/ramaze/global.rb +6 -3
- data/lib/ramaze/global/globalstruct.rb +3 -1
- data/lib/ramaze/helper.rb +66 -20
- data/lib/ramaze/helper/aspect.rb +25 -17
- data/lib/ramaze/helper/auth.rb +4 -3
- data/lib/ramaze/helper/cache.rb +5 -4
- data/lib/ramaze/helper/cgi.rb +11 -9
- data/lib/ramaze/helper/flash.rb +28 -3
- data/lib/ramaze/helper/formatting.rb +1 -3
- data/lib/ramaze/helper/identity.rb +2 -3
- data/lib/ramaze/helper/inform.rb +7 -6
- data/lib/ramaze/helper/link.rb +15 -17
- data/lib/ramaze/helper/markaby.rb +2 -4
- data/lib/ramaze/helper/maruku.rb +1 -1
- data/lib/ramaze/helper/nitroform.rb +4 -4
- data/lib/ramaze/helper/pager.rb +4 -6
- data/lib/ramaze/helper/partial.rb +24 -21
- data/lib/ramaze/helper/redirect.rb +8 -5
- data/lib/ramaze/helper/{file.rb → sendfile.rb} +1 -3
- data/lib/ramaze/helper/sequel.rb +1 -3
- data/lib/ramaze/helper/stack.rb +1 -3
- data/lib/ramaze/helper/tagz.rb +19 -0
- data/lib/ramaze/helper/user.rb +63 -0
- data/lib/ramaze/inform.rb +2 -24
- data/lib/ramaze/log.rb +28 -0
- data/lib/ramaze/{inform → log}/analogger.rb +3 -3
- data/lib/ramaze/{inform → log}/growl.rb +2 -2
- data/lib/ramaze/{inform → log}/hub.rb +4 -6
- data/lib/ramaze/{inform → log}/informer.rb +4 -4
- data/lib/ramaze/{inform → log}/knotify.rb +2 -2
- data/lib/ramaze/log/logger.rb +22 -0
- data/lib/ramaze/{inform/informing.rb → log/logging.rb} +16 -16
- data/lib/ramaze/{inform → log}/syslog.rb +0 -0
- data/lib/ramaze/{inform → log}/xosd.rb +2 -2
- data/lib/ramaze/route.rb +64 -36
- data/lib/ramaze/snippets/array/put_within.rb +13 -0
- data/lib/ramaze/snippets/binding/locals.rb +13 -0
- data/lib/ramaze/snippets/kernel/__dir__.rb +10 -8
- data/lib/ramaze/snippets/kernel/aquire.rb +1 -1
- data/lib/ramaze/snippets/kernel/constant.rb +1 -1
- data/lib/ramaze/snippets/object/pretty.rb +6 -0
- data/lib/ramaze/snippets/object/scope.rb +11 -0
- data/lib/ramaze/snippets/object/thread_accessor.rb +5 -0
- data/lib/ramaze/snippets/ordered_set.rb +1 -1
- data/lib/ramaze/snippets/proc/locals.rb +11 -0
- data/lib/ramaze/snippets/ramaze/thread_accessor.rb +44 -0
- data/lib/ramaze/snippets/string/esc.rb +29 -0
- data/lib/ramaze/snippets/string/start_with.rb +7 -0
- data/lib/ramaze/snippets/string/unindent.rb +6 -1
- data/lib/ramaze/snippets/struct/values_at.rb +1 -5
- data/lib/ramaze/sourcereload.rb +16 -14
- data/lib/ramaze/spec.rb +1 -0
- data/lib/ramaze/spec/helper.rb +11 -3
- data/lib/ramaze/spec/helper/browser.rb +25 -1
- data/lib/ramaze/spec/helper/pretty_output.rb +11 -11
- data/lib/ramaze/template.rb +5 -4
- data/lib/ramaze/template/amrita2.rb +2 -3
- data/lib/ramaze/template/ezamar/element.rb +2 -3
- data/lib/ramaze/template/ezamar/morpher.rb +1 -2
- data/lib/ramaze/template/ezamar/render_partial.rb +1 -1
- data/lib/ramaze/template/haml.rb +5 -2
- data/lib/ramaze/template/markaby.rb +2 -0
- data/lib/ramaze/template/tagz.rb +79 -0
- data/lib/ramaze/template/tenjin.rb +34 -0
- data/lib/ramaze/tool/create.rb +0 -3
- data/lib/ramaze/tool/localize.rb +107 -105
- data/lib/ramaze/tool/mime.rb +0 -2
- data/lib/ramaze/trinity.rb +1 -26
- data/lib/ramaze/version.rb +1 -1
- data/lib/vendor/bacon.rb +47 -41
- data/rake_tasks/conf.rake +18 -0
- data/rake_tasks/darcs.rake +5 -0
- data/rake_tasks/maintenance.rake +37 -24
- data/rake_tasks/spec.rake +1 -1
- data/spec/contrib/auto_params.rb +3 -1
- data/spec/contrib/profiling.rb +26 -0
- data/spec/examples/templates/template_redcloth.rb +1 -1
- data/spec/examples/templates/template_tenjin.rb +28 -0
- data/spec/helper.rb +0 -1
- data/spec/ramaze/action/layout.rb +28 -0
- data/spec/ramaze/controller/actionless_templates.rb +32 -0
- data/spec/ramaze/controller/template/other_wrapper.xhtml +1 -0
- data/spec/ramaze/controller/template_resolving.rb +37 -0
- data/spec/ramaze/{trinity → current}/request.rb +12 -2
- data/spec/ramaze/current/session.rb +97 -0
- data/spec/ramaze/dispatcher/directory.rb +2 -1
- data/spec/ramaze/dispatcher/file.rb +8 -3
- data/spec/ramaze/dispatcher/public/file name.txt +1 -0
- data/spec/ramaze/gestalt.rb +11 -0
- data/spec/ramaze/helper/aspect.rb +28 -22
- data/spec/ramaze/helper/cgi.rb +2 -2
- data/spec/ramaze/helper/flash.rb +33 -15
- data/spec/ramaze/helper/formatting.rb +2 -2
- data/spec/ramaze/helper/link.rb +46 -18
- data/spec/ramaze/helper/pager.rb +8 -5
- data/spec/ramaze/helper/partial.rb +8 -1
- data/spec/ramaze/helper/template/recursive_local_ivars.xhtml +7 -0
- data/spec/ramaze/helper/user.rb +46 -0
- data/spec/ramaze/{inform → log}/informer.rb +0 -0
- data/spec/ramaze/{inform → log}/syslog.rb +1 -1
- data/spec/ramaze/request.rb +14 -10
- data/spec/ramaze/route.rb +23 -0
- data/spec/ramaze/template.rb +48 -1
- data/spec/ramaze/template/haml.rb +6 -16
- data/spec/ramaze/template/haml/locals.haml +2 -1
- data/spec/ramaze/template/tagz.rb +62 -0
- data/spec/ramaze/template/tagz/external.tagz +8 -0
- data/spec/ramaze/template/tagz/sum.tagz +1 -0
- data/spec/ramaze/template/tenjin.rb +49 -0
- data/spec/ramaze/template/tenjin/external.tenjin +1 -0
- data/spec/snippets/string/unindent.rb +15 -0
- metadata +509 -475
- data/doc/README.html +0 -729
- data/doc/changes.txt +0 -5757
- data/doc/changes.xml +0 -5759
- data/examples/blog/src/view.rb +0 -16
- data/examples/blog/template/edit.xhtml +0 -19
- data/examples/blog/template/index.xhtml +0 -19
- data/examples/blog/template/new.xhtml +0 -18
- data/examples/wiktacular/mkd/newpagename/current.mkd +0 -1
- data/examples/wiktacular/mkd/newpagename/current.mkd.bak +0 -1
- data/lib/ramaze/contrib/email.rb-darcs-backup0 +0 -81
- data/lib/ramaze/template/bijou.rb +0 -39
- data/lib/ramaze/trinity/response.rb +0 -32
- data/spec/ramaze/template/bijou.rb +0 -25
- data/spec/ramaze/trinity/session.rb +0 -29
data/lib/ramaze/helper/auth.rb
CHANGED
@@ -8,9 +8,10 @@ module Ramaze
|
|
8
8
|
# A simple way to do authentication. Please have a look at the docs for the
|
9
9
|
# check_auth method for detailed information
|
10
10
|
|
11
|
-
module
|
11
|
+
module Helper::Auth
|
12
|
+
Helper::LOOKUP << self
|
12
13
|
|
13
|
-
# add
|
14
|
+
# add Helper::Aspect and Helper::Stack on inclusion of Helper::Auth
|
14
15
|
|
15
16
|
def self.included(klass)
|
16
17
|
klass.send(:helper, :aspect, :stack)
|
@@ -37,7 +38,7 @@ module Ramaze
|
|
37
38
|
end
|
38
39
|
%{
|
39
40
|
#{open_element}
|
40
|
-
<form method="POST" action="#{Rs(:login)}>
|
41
|
+
<form method="POST" action="#{Rs(:login)}">
|
41
42
|
<ul style="list-style:none;">
|
42
43
|
<li>Username: <input type="text" name="username" /></li>
|
43
44
|
<li>Password: <input type="password" name="password" /></li>
|
data/lib/ramaze/helper/cache.rb
CHANGED
@@ -6,11 +6,12 @@ module Ramaze
|
|
6
6
|
# This helper is providing easy access to a couple of Caches to use for
|
7
7
|
# smaller amounts of data.
|
8
8
|
|
9
|
-
module
|
9
|
+
module Helper::Cache
|
10
|
+
C = Ramaze::Cache
|
10
11
|
|
11
12
|
# Create the Cache.value_cache on inclusion if it doesn't exist yet.
|
12
13
|
def self.included(klass)
|
13
|
-
|
14
|
+
C.add(:value_cache) unless C::CACHES.has_key?(:value_cache)
|
14
15
|
end
|
15
16
|
|
16
17
|
# Example:
|
@@ -59,7 +60,7 @@ module Ramaze
|
|
59
60
|
# for example heavy calculations or time-consuming queries.
|
60
61
|
|
61
62
|
def value_cache
|
62
|
-
|
63
|
+
C.value_cache
|
63
64
|
end
|
64
65
|
|
65
66
|
# action_cache holds rendered output of actions for which caching is enabled.
|
@@ -123,7 +124,7 @@ module Ramaze
|
|
123
124
|
# action_cache.delete '/path/to/action'
|
124
125
|
|
125
126
|
def action_cache
|
126
|
-
|
127
|
+
C.actions
|
127
128
|
end
|
128
129
|
|
129
130
|
# This refers to the class-trait of cached actions, you can
|
data/lib/ramaze/helper/cgi.rb
CHANGED
@@ -5,37 +5,39 @@ module Ramaze
|
|
5
5
|
|
6
6
|
# Shortcuts to some CGI methods
|
7
7
|
|
8
|
-
module
|
9
|
-
private
|
10
|
-
|
8
|
+
module Helper::CGI
|
11
9
|
# shortcut for CGI.escape
|
12
10
|
|
13
11
|
def url_encode(*args)
|
14
|
-
CGI.escape(*args)
|
12
|
+
::CGI.escape(*args.map{|arg| arg.to_s})
|
15
13
|
end
|
16
14
|
|
17
15
|
# shortcut for CGI.unescape
|
18
16
|
|
19
17
|
def url_decode(*args)
|
20
|
-
CGI.unescape(*args)
|
18
|
+
::CGI.unescape(*args.map{|arg| arg.to_s})
|
21
19
|
end
|
22
20
|
|
23
21
|
# shortcut for CGI.escapeHTML
|
24
22
|
|
25
23
|
def html_escape(string)
|
26
|
-
CGI.escapeHTML(string)
|
24
|
+
::CGI.escapeHTML(string.to_s)
|
27
25
|
end
|
28
26
|
|
29
27
|
# shortcut for CGI.unescapeHTML
|
30
28
|
|
31
29
|
def html_unescape(string)
|
32
|
-
CGI.unescapeHTML(string)
|
30
|
+
::CGI.unescapeHTML(string.to_s)
|
31
|
+
end
|
32
|
+
|
33
|
+
# safely escape all HTML and code
|
34
|
+
def c(string)
|
35
|
+
::CGI.escapeHTML(string.to_s).gsub(/#/, '#')
|
33
36
|
end
|
34
37
|
|
35
38
|
# one-letter versions help in case like #{h foo.inspect}
|
36
39
|
# ERb/ERuby/Rails compatible
|
37
|
-
alias h html_escape
|
38
40
|
alias u url_encode
|
39
|
-
|
41
|
+
alias h c
|
40
42
|
end
|
41
43
|
end
|
data/lib/ramaze/helper/flash.rb
CHANGED
@@ -22,13 +22,38 @@ module Ramaze
|
|
22
22
|
#
|
23
23
|
# On the request after this, flash[:error] is gone.
|
24
24
|
|
25
|
-
module
|
26
|
-
|
27
|
-
|
25
|
+
module Helper::Flash
|
26
|
+
trait :tag => "<div class='flash' id='flash_%key'>%value</div>"
|
28
27
|
# answers with Session.current.flash
|
29
28
|
|
30
29
|
def flash
|
31
30
|
Session.current.flash
|
32
31
|
end
|
32
|
+
|
33
|
+
# Use in your template to display all flash messages that may be stored.
|
34
|
+
# For example, given you stored:
|
35
|
+
#
|
36
|
+
# flash # => { :error => 'Pleae enter your name'
|
37
|
+
# :info => 'Do you see the fnords?' }
|
38
|
+
#
|
39
|
+
# Then a flashbox would display:
|
40
|
+
#
|
41
|
+
# <div class='flash' id='flash_error'>Please enter your name</div>
|
42
|
+
# <div class='flash' id='flash_info'>Do you see the fnords?</div>
|
43
|
+
#
|
44
|
+
# This is designed to be customized permanently or per usage:
|
45
|
+
#
|
46
|
+
# flashbox("<div class='flash_%key'>%value</div>")
|
47
|
+
#
|
48
|
+
# Where any occurrence of %key and %value will be replaced by the actual
|
49
|
+
# contents of each element of flash
|
50
|
+
|
51
|
+
def flashbox(tag = Helper::Flash.trait[:tag])
|
52
|
+
flash.map{|key, value|
|
53
|
+
[key.to_s, value.to_s]
|
54
|
+
}.sort.map{|(key, value)|
|
55
|
+
tag.gsub(/%key/, key.to_s).gsub(/%value/, value.to_s)
|
56
|
+
}.join("\n")
|
57
|
+
end
|
33
58
|
end
|
34
59
|
end
|
@@ -2,9 +2,7 @@
|
|
2
2
|
# All files in this distribution are subject to the terms of the Ruby license.
|
3
3
|
|
4
4
|
module Ramaze
|
5
|
-
module
|
6
|
-
private
|
7
|
-
|
5
|
+
module Helper::Formatting
|
8
6
|
def number_format(n, delimiter = ',')
|
9
7
|
delim_l, delim_r = delimiter == ',' ? %w[, .] : %w[. ,]
|
10
8
|
h, r = n.to_s.split('.')
|
@@ -1,14 +1,13 @@
|
|
1
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
|
-
require 'tmpdir'
|
5
4
|
require 'openid'
|
6
5
|
require 'openid/store/filesystem'
|
7
6
|
require 'openid/extensions/pape'
|
8
7
|
|
9
8
|
module Ramaze
|
10
9
|
|
11
|
-
openid_store_file = File.join(Dir.tmpdir, 'openid-store')
|
10
|
+
openid_store_file = ::File.join(Dir.tmpdir, 'openid-store')
|
12
11
|
|
13
12
|
# Constant for storing meta-information persistent
|
14
13
|
OpenIDStore = OpenID::Store::Filesystem.new(openid_store_file)
|
@@ -17,7 +16,7 @@ module Ramaze
|
|
17
16
|
# It provides a nice and simple way to provide and control access over the
|
18
17
|
# OpenID authentication model.
|
19
18
|
|
20
|
-
module
|
19
|
+
module Helper::Identity
|
21
20
|
|
22
21
|
# Simple form for use or overwriting.
|
23
22
|
# Has to provide the same functionality when overwritten or directly
|
data/lib/ramaze/helper/inform.rb
CHANGED
@@ -3,11 +3,10 @@
|
|
3
3
|
|
4
4
|
module Ramaze
|
5
5
|
|
6
|
-
# Easy access to
|
6
|
+
# Easy access to Log
|
7
7
|
|
8
|
-
module
|
9
|
-
|
10
|
-
private
|
8
|
+
module Helper::Log
|
9
|
+
L = Ramaze::Log
|
11
10
|
|
12
11
|
# The various (default) tags you can use are:
|
13
12
|
#
|
@@ -32,8 +31,10 @@ module Ramaze
|
|
32
31
|
# # [2007-04-04 23:40:59] ERROR hello.rb:23:in `index'
|
33
32
|
# # ... rest of backtrace ...
|
34
33
|
|
35
|
-
def
|
36
|
-
|
34
|
+
def log tag, *args
|
35
|
+
L.warn "Helper::Log is being deprecated, use Log directly instead"
|
36
|
+
L.send(tag, *args)
|
37
37
|
end
|
38
|
+
alias inform log
|
38
39
|
end
|
39
40
|
end
|
data/lib/ramaze/helper/link.rb
CHANGED
@@ -2,43 +2,40 @@
|
|
2
2
|
# All files in this distribution are subject to the terms of the Ruby license.
|
3
3
|
|
4
4
|
module Ramaze
|
5
|
-
#
|
5
|
+
# Helper::Link is included into the Controller by default
|
6
6
|
#
|
7
7
|
# Usage is shown in spec/ramaze/helper/link.rb and the rdocs below.
|
8
8
|
|
9
|
-
module
|
10
|
-
|
11
|
-
private
|
9
|
+
module Helper::Link
|
10
|
+
private
|
12
11
|
|
13
12
|
# Builds a basic <a> tag.
|
14
13
|
#
|
15
|
-
# `
|
14
|
+
# `text` is mandatory, the second hash of options will be transformed into
|
16
15
|
# arguments of the tag, :href is a special case and its segments will be
|
17
16
|
# CGI.escaped.
|
18
17
|
#
|
19
|
-
# If you pass no :href, the
|
18
|
+
# If you pass no :href, the text will be run through Rs and its result is
|
20
19
|
# used instead. If you really want an empty href, use :href => ''
|
21
20
|
#
|
22
21
|
# Usage:
|
23
|
-
# A('
|
22
|
+
# A('text') #> <a href="/text">text</a>
|
24
23
|
# A('foo/bar') #> <a href="/foo/bar">foo/bar</a>
|
25
24
|
# A('/foo?x=y') #> <a href="/foo?x=y">/foo?x=y</a>
|
26
|
-
# A('
|
25
|
+
# A('text', :href => '/foo?x=y') #> <a href="/foo?x=y">text</a>
|
27
26
|
# A('Home', :href => Rs(:/)) #> <a href="/foo/bar">Home</a>
|
28
27
|
|
29
28
|
def A(*args)
|
30
29
|
hash = args.last.respond_to?(:to_hash) ? args.pop : {}
|
31
30
|
|
32
31
|
hash[:href] ||= Rs(*args)
|
33
|
-
|
34
|
-
|
35
|
-
hash[:href]
|
36
|
-
hash[:href].to_s.sub!(/\A[^\/?]+/) {|m| CGI.escape(m) }
|
32
|
+
text = hash.delete(:text) || args.last || hash[:title] || hash[:href]
|
33
|
+
hash[:href] = hash[:href].to_s.gsub(/[^\/?;=]+/) {|m| CGI.escape(m) }
|
37
34
|
|
38
35
|
args = ['']
|
39
36
|
hash.each {|k,v| args << %(#{k}="#{v}") if k and v }
|
40
37
|
|
41
|
-
%(<a#{args.join(' ')}>#{
|
38
|
+
%(<a#{args.join(' ')}>#{text}</a>)
|
42
39
|
end
|
43
40
|
|
44
41
|
# Builds links out of segments.
|
@@ -63,18 +60,19 @@ module Ramaze
|
|
63
60
|
args = args.flatten.inject{|s,v| s.merge!(v) }
|
64
61
|
|
65
62
|
map = Global.mapping.invert
|
63
|
+
|
66
64
|
atoms.map! do |atom|
|
67
65
|
if atom.is_a?(Ramaze::Controller)
|
68
|
-
map[atom.class]
|
66
|
+
map[atom.class]
|
69
67
|
else
|
70
|
-
map[atom]
|
71
|
-
end
|
68
|
+
map[atom]
|
69
|
+
end or atom.to_s
|
72
70
|
end
|
73
71
|
|
74
72
|
front = atoms.join('/').squeeze('/')
|
75
73
|
|
76
74
|
if args
|
77
|
-
rear = args.inject('?'){|s,(k,v)| s << "#{k}=#{v};"}[0..-2]
|
75
|
+
rear = args.inject('?'){|s,(k,v)| s << "#{CGI.escape k.to_s}=#{CGI.escape v.to_s};"}[0..-2]
|
78
76
|
front + rear
|
79
77
|
else
|
80
78
|
front
|
@@ -5,9 +5,7 @@ module Ramaze
|
|
5
5
|
|
6
6
|
# Allows you to use some shortcuts for markaby in your Controller.
|
7
7
|
|
8
|
-
module
|
9
|
-
private
|
10
|
-
|
8
|
+
module Helper::Markaby
|
11
9
|
# use this inside your controller to directly build Markaby
|
12
10
|
# Refer to the Markaby-documentation and testsuite for more examples.
|
13
11
|
# Usage:
|
@@ -16,7 +14,7 @@ module Ramaze
|
|
16
14
|
|
17
15
|
def markaby(ivs = {}, helpers = nil, &block)
|
18
16
|
builder = ::Markaby::Builder
|
19
|
-
builder.extend(Ramaze::Helper)
|
17
|
+
builder.extend(Ramaze::Helper::Methods)
|
20
18
|
builder.send(:helper, :link)
|
21
19
|
|
22
20
|
iv_hash = {}
|
data/lib/ramaze/helper/maruku.rb
CHANGED
@@ -4,11 +4,11 @@
|
|
4
4
|
require 'nitro/helper/form'
|
5
5
|
|
6
6
|
module Ramaze
|
7
|
+
module Helper
|
7
8
|
|
8
|
-
|
9
|
-
|
9
|
+
# This helper simply includes the Nitro::FormHelper so you can use its methods
|
10
|
+
# in your Controller.
|
10
11
|
|
11
|
-
|
12
|
-
include ::Nitro::FormHelper
|
12
|
+
Nitroform = ::Nitro::FormHelper
|
13
13
|
end
|
14
14
|
end
|
data/lib/ramaze/helper/pager.rb
CHANGED
@@ -82,7 +82,7 @@ module Ramaze
|
|
82
82
|
# .pager li.active {}
|
83
83
|
|
84
84
|
class Pager
|
85
|
-
include Ramaze::
|
85
|
+
include Ramaze::Helper::Link
|
86
86
|
|
87
87
|
# Items per page.
|
88
88
|
|
@@ -116,7 +116,7 @@ class Pager
|
|
116
116
|
# key:: key used for getting the current page from GET paramaters
|
117
117
|
#
|
118
118
|
# Note: You never have to create this class yourself, use the `paginate()`
|
119
|
-
# convenience method from the
|
119
|
+
# convenience method from the Helper::Pager.
|
120
120
|
|
121
121
|
def initialize(request, limit, total_count, key = trait[:key])
|
122
122
|
raise 'limit should be > 0' unless limit > 0
|
@@ -255,7 +255,7 @@ private
|
|
255
255
|
|
256
256
|
def target_uri(page)
|
257
257
|
params = @request.params.merge(@key => page)
|
258
|
-
Rs(Action.current.
|
258
|
+
Rs(Action.current.name, params)
|
259
259
|
end
|
260
260
|
|
261
261
|
# Generate link for the first page.
|
@@ -309,9 +309,7 @@ end
|
|
309
309
|
|
310
310
|
# Pager related helper methods.
|
311
311
|
|
312
|
-
module
|
313
|
-
|
314
|
-
private
|
312
|
+
module Helper::Pager
|
315
313
|
|
316
314
|
# Helper method that generates a collection of items and the
|
317
315
|
# associated pager object.
|
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
module Ramaze
|
5
5
|
|
6
|
-
# =
|
6
|
+
# = Helper::Partial
|
7
7
|
#
|
8
8
|
# === Example Usage
|
9
9
|
#
|
@@ -24,9 +24,7 @@ module Ramaze
|
|
24
24
|
# </body>
|
25
25
|
# </html>
|
26
26
|
|
27
|
-
module
|
28
|
-
|
29
|
-
private
|
27
|
+
module Helper::Partial
|
30
28
|
module_function
|
31
29
|
|
32
30
|
# Renders a url 'inline'.
|
@@ -37,46 +35,51 @@ module Ramaze
|
|
37
35
|
def render_partial(url, options = {})
|
38
36
|
saved = {}
|
39
37
|
options.keys.each {|x| saved[x] = Request.current.params[x] }
|
40
|
-
saved_action = Action.current
|
41
38
|
|
42
39
|
Request.current.params.update(options)
|
43
40
|
|
44
41
|
Controller.handle(url)
|
45
42
|
ensure
|
46
|
-
Thread.current[:action] = saved_action
|
47
43
|
options.keys.each {|x| Request.current.params[x] = saved[x] }
|
48
44
|
end
|
49
45
|
|
50
46
|
# Render the template file in template_root of the
|
51
47
|
# current controller.
|
52
48
|
|
53
|
-
def render_template(file,
|
49
|
+
def render_template(file, vars = {})
|
54
50
|
current = Action.current
|
55
51
|
options = { :controller => current.controller,
|
56
52
|
:instance => current.instance.dup }
|
57
53
|
|
58
|
-
|
54
|
+
roots = [options[:controller].template_paths].flatten
|
59
55
|
|
60
|
-
if
|
61
|
-
options[:template] =
|
62
|
-
elsif files = Dir["#{filename}.*"] and files.any?
|
63
|
-
options[:template] = files.first
|
56
|
+
if (files = Dir["{#{roots.join(',')}}"/"{#{file},#{file}.*}"]).any?
|
57
|
+
options[:template] = files.first.squeeze '/'
|
64
58
|
else
|
65
|
-
|
59
|
+
Log.warn "render_template: #{file} does not exist in the following directories: #{roots.join(',')}."
|
66
60
|
return ''
|
67
61
|
end
|
68
62
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
} if locals.any?
|
63
|
+
binding = options[:instance].scope
|
64
|
+
|
65
|
+
vars.each do |name, value|
|
66
|
+
options[:instance].instance_variable_set("@#{name}", value)
|
74
67
|
|
75
|
-
|
68
|
+
value = "ObjectSpace._id2ref(#{ value.object_id })"
|
69
|
+
eval "#{ name } = #{ value }", binding
|
70
|
+
end
|
71
|
+
|
72
|
+
options[:binding] = binding
|
76
73
|
|
77
74
|
Ramaze::Action(options).render
|
78
|
-
ensure
|
79
|
-
Thread.current[:action] = current
|
80
75
|
end
|
76
|
+
|
77
|
+
# shortcut to render_partial, accepts a method and contructs a link to the
|
78
|
+
# current controller, then calls render_partial on that
|
79
|
+
|
80
|
+
def render_action method, *params
|
81
|
+
render_partial(Rs(method), *params)
|
82
|
+
end
|
83
|
+
|
81
84
|
end
|
82
85
|
end
|