ramaze 2008.11 → 2009.01
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/README.markdown +7 -7
- data/benchmark/run.rb +1 -1
- data/doc/CHANGELOG +662 -0
- data/examples/app/blog/model/entry.rb +8 -1
- data/examples/app/blog/spec/blog.rb +2 -2
- data/examples/app/rapaste/spec/rapaste.rb +1 -1
- data/examples/app/rapaste/start.rb +2 -2
- data/examples/app/rapaste/view/view.xhtml +3 -0
- data/examples/app/todolist/spec/todolist.rb +1 -1
- data/examples/app/whywiki/spec/whywiki.rb +1 -1
- data/examples/app/wikore/spec/wikore.rb +1 -1
- data/examples/app/wikore/src/model.rb +8 -2
- data/examples/app/wiktacular/spec/wiktacular.rb +1 -1
- data/examples/app/wiktacular/src/model.rb +1 -1
- data/examples/basic/partial.rb +28 -0
- data/examples/helpers/httpdigest.rb +68 -10
- data/examples/misc/ramaise.rb +2 -2
- data/examples/templates/template_amrita2.rb +1 -1
- data/examples/templates/template_erubis.rb +1 -1
- data/examples/templates/template_ezamar.rb +1 -1
- data/examples/templates/template_haml.rb +2 -2
- data/examples/templates/template_liquid.rb +1 -1
- data/examples/templates/template_markaby.rb +2 -2
- data/examples/templates/template_nagoro.rb +1 -1
- data/examples/templates/template_redcloth.rb +1 -1
- data/examples/templates/template_remarkably.rb +2 -2
- data/examples/templates/template_tenjin.rb +1 -1
- data/examples/templates/template_xslt.rb +1 -1
- data/lib/proto/controller/init.rb +2 -1
- data/lib/proto/model/init.rb +3 -3
- data/lib/proto/public/dispatch.fcgi +2 -2
- data/lib/proto/spec/main.rb +3 -3
- data/lib/proto/start.rb +4 -0
- data/lib/ramaze.rb +6 -0
- data/lib/ramaze/action.rb +7 -1
- data/lib/ramaze/action/render.rb +6 -5
- data/lib/ramaze/cache.rb +1 -0
- data/lib/ramaze/cache/file.rb +71 -0
- data/lib/ramaze/contrib.rb +1 -1
- data/lib/ramaze/contrib/email.rb +2 -0
- data/lib/ramaze/contrib/facebook.rb +2 -2
- data/lib/ramaze/contrib/file_cache.rb +2 -64
- data/lib/ramaze/contrib/sequel/image.rb +1 -1
- data/lib/ramaze/controller.rb +9 -1
- data/lib/ramaze/controller/resolve.rb +10 -5
- data/lib/ramaze/current/request.rb +87 -70
- data/lib/ramaze/current/session.rb +3 -5
- data/lib/ramaze/current/session/hash.rb +7 -11
- data/lib/ramaze/dispatcher/action.rb +2 -0
- data/lib/ramaze/dispatcher/file.rb +6 -1
- data/lib/ramaze/helper.rb +12 -4
- data/lib/ramaze/helper/aspect.rb +2 -2
- data/lib/ramaze/helper/bench.rb +43 -0
- data/lib/ramaze/helper/form.rb +5 -2
- data/lib/ramaze/helper/formatting.rb +4 -0
- data/lib/ramaze/helper/gravatar.rb +18 -1
- data/lib/ramaze/helper/httpdigest.rb +55 -28
- data/lib/ramaze/helper/markaby.rb +1 -1
- data/lib/ramaze/helper/maruku.rb +2 -0
- data/lib/ramaze/helper/paginate.rb +1 -1
- data/lib/ramaze/helper/partial.rb +1 -1
- data/lib/ramaze/helper/redirect.rb +22 -4
- data/lib/ramaze/helper/user.rb +4 -4
- data/lib/ramaze/option.rb +1 -1
- data/lib/ramaze/option/holder.rb +3 -3
- data/lib/ramaze/reloader.rb +25 -41
- data/lib/ramaze/reloader/watch_inotify.rb +85 -0
- data/lib/ramaze/reloader/watch_stat.rb +58 -0
- data/lib/ramaze/snippets/divide.rb +2 -0
- data/lib/ramaze/snippets/numeric/time.rb +1 -1
- data/lib/ramaze/snippets/object/__dir__.rb +3 -3
- data/lib/ramaze/snippets/object/acquire.rb +3 -6
- data/lib/ramaze/snippets/ramaze/acquire.rb +31 -0
- data/lib/ramaze/snippets/ramaze/deprecated.rb +2 -1
- data/lib/ramaze/spec/helper/mock_http.rb +6 -5
- data/lib/ramaze/template/ezamar/render_partial.rb +8 -0
- data/lib/ramaze/tool/mime.rb +1 -1
- data/lib/ramaze/tool/project_creator.rb +2 -1
- data/lib/ramaze/version.rb +2 -2
- data/rake_tasks/coverage.rake +4 -5
- data/rake_tasks/spec.rake +6 -6
- data/ramaze-2008.11.gem +0 -0
- data/ramaze.gemspec +759 -758
- data/spec/contrib/profiling.rb +2 -2
- data/spec/ramaze/action/file_cache.rb +1 -1
- data/spec/ramaze/action/layout.rb +1 -1
- data/spec/ramaze/controller/actionless_templates.rb +1 -1
- data/spec/ramaze/controller/resolve.rb +1 -1
- data/spec/ramaze/controller/template_resolving.rb +1 -1
- data/spec/ramaze/dispatcher/directory.rb +3 -3
- data/spec/ramaze/helper/aspect.rb +1 -1
- data/spec/ramaze/helper/partial.rb +1 -1
- data/spec/ramaze/localize.rb +1 -1
- data/spec/ramaze/rewrite.rb +1 -1
- data/spec/ramaze/template.rb +3 -3
- data/spec/ramaze/template/amrita2.rb +1 -1
- data/spec/ramaze/template/erubis.rb +1 -1
- data/spec/ramaze/template/ezamar.rb +1 -1
- data/spec/ramaze/template/haml.rb +2 -2
- data/spec/ramaze/template/nagoro.rb +1 -1
- data/spec/ramaze/template/redcloth.rb +1 -1
- data/spec/ramaze/template/sass.rb +1 -1
- data/spec/ramaze/template/tenjin.rb +1 -1
- data/spec/snippets/object/__dir__.rb +6 -0
- data/spec/snippets/{object → ramaze}/acquire.rb +24 -18
- metadata +18 -16
- data/lib/ramaze/contrib/auto_params.rb +0 -135
- data/lib/ramaze/contrib/auto_params/get_args.rb +0 -58
- data/spec/contrib/auto_params.rb +0 -121
- data/spec/snippets/divide.rb +0 -19
|
@@ -23,7 +23,14 @@ class Entry < Sequel::Model(:entry)
|
|
|
23
23
|
end
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
begin
|
|
27
|
+
Entry.create_table!
|
|
28
|
+
rescue Sequel::DatabaseError => e
|
|
29
|
+
if e.message !~ /table.*already exists/
|
|
30
|
+
raise e
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
27
34
|
|
|
28
35
|
if Entry.empty?
|
|
29
36
|
Entry.add 'Blog created', 'Exciting news today, this blog was created'
|
|
@@ -3,7 +3,7 @@ require 'ramaze/spec/helper'
|
|
|
3
3
|
|
|
4
4
|
spec_require 'hpricot', 'sequel'
|
|
5
5
|
|
|
6
|
-
$LOAD_PATH.unshift base = __DIR__
|
|
6
|
+
$LOAD_PATH.unshift base = __DIR__('..')
|
|
7
7
|
require 'start'
|
|
8
8
|
|
|
9
9
|
describe 'Blog' do
|
|
@@ -83,5 +83,5 @@ describe 'Blog' do
|
|
|
83
83
|
(check_page/'div.entry').size.should == 1
|
|
84
84
|
end
|
|
85
85
|
|
|
86
|
-
FileUtils.rm_f(__DIR__
|
|
86
|
+
FileUtils.rm_f(__DIR__('../blog.db'))
|
|
87
87
|
end
|
|
@@ -7,7 +7,7 @@ require 'uv'
|
|
|
7
7
|
|
|
8
8
|
Ramaze::Log.debug "Initializing UltraViolet..."
|
|
9
9
|
|
|
10
|
-
Uv.copy_files "xhtml", __DIR__
|
|
10
|
+
Uv.copy_files "xhtml", __DIR__("public")
|
|
11
11
|
Uv.init_syntaxes
|
|
12
12
|
|
|
13
13
|
UV_PRIORITY_NAMES = %w[ ruby plain_text html css javascript yaml diff ]
|
|
@@ -16,7 +16,7 @@ STYLE = 'iplastic'
|
|
|
16
16
|
|
|
17
17
|
Ramaze::Log.debug "done."
|
|
18
18
|
|
|
19
|
-
DB_FILE = "
|
|
19
|
+
DB_FILE = __DIR__("rapaste.sqlite") # for specs
|
|
20
20
|
DB = Sequel.connect("sqlite://#{DB_FILE}")
|
|
21
21
|
|
|
22
22
|
require 'model/paste'
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
#{@pager}
|
|
2
2
|
<script type="text/javascript" src="/js/jquery.js"></script>
|
|
3
3
|
<script type="text/javascript">
|
|
4
|
+
$(function() {
|
|
5
|
+
$('#paste_body').dblclick(function(){ $('.line-numbers').toggle() });
|
|
6
|
+
});
|
|
4
7
|
function change_style(name){
|
|
5
8
|
$('link')[1].href = '/css/' + name + '.css';
|
|
6
9
|
$('pre')[0].className = name;
|
|
@@ -5,7 +5,7 @@ begin
|
|
|
5
5
|
when :memory
|
|
6
6
|
DB = Sequel.sqlite
|
|
7
7
|
else
|
|
8
|
-
DB_FILE = __DIR__
|
|
8
|
+
DB_FILE = __DIR__('wikore.db')
|
|
9
9
|
DB = Sequel.connect("sqlite://#{DB_FILE}")
|
|
10
10
|
end
|
|
11
11
|
rescue NoMethodError
|
|
@@ -48,6 +48,12 @@ module Model
|
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
[Page, OldPage].each do |klass|
|
|
51
|
-
|
|
51
|
+
begin
|
|
52
|
+
klass.create_table
|
|
53
|
+
rescue Sequel::DatabaseError => e
|
|
54
|
+
if e.message !~ /table.*already exists/
|
|
55
|
+
raise e
|
|
56
|
+
end
|
|
57
|
+
end
|
|
52
58
|
end
|
|
53
59
|
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
require 'ramaze'
|
|
3
|
+
|
|
4
|
+
# This is a small extension to the hello world example, showing how to use the
|
|
5
|
+
# <render> tag of Ezamar.
|
|
6
|
+
#
|
|
7
|
+
# Browse to /more and /even_more
|
|
8
|
+
|
|
9
|
+
pipeline = Ramaze::Template::Ezamar::TRANSFORM_PIPELINE
|
|
10
|
+
pipeline.put_after(::Ezamar::Element, ::Ezamar::RenderPartial)
|
|
11
|
+
pipeline.uniq!
|
|
12
|
+
|
|
13
|
+
class MainController < Ramaze::Controller
|
|
14
|
+
def index
|
|
15
|
+
"Hello, World!"
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def more
|
|
19
|
+
@tail = request[:tail] || 'the standard'
|
|
20
|
+
'More of <render src="/index" /> #@tail'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def even_more
|
|
24
|
+
'<render src="/more" tail="This is even more" />'
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
Ramaze.start
|
|
@@ -4,12 +4,61 @@ require 'ramaze'
|
|
|
4
4
|
REALM = 'ramaze authentication required'
|
|
5
5
|
|
|
6
6
|
class MainController < Ramaze::Controller
|
|
7
|
+
|
|
8
|
+
helper :httpdigest
|
|
9
|
+
|
|
7
10
|
def index
|
|
8
11
|
%|
|
|
12
|
+
<p><a href="#{Rs(:eyes_only)}">eyes only</a></p>
|
|
9
13
|
<p><a href="#{R(SecretController,'/')}">secret area</a></p>
|
|
10
|
-
<p><a href="#{R(GuestController,'/')}">guest area</a>
|
|
14
|
+
<p><a href="#{R(GuestController,'/')}">guest area</a> username is <em>guest</em> password is <em>access</em></p>
|
|
11
15
|
|
|
|
12
16
|
end
|
|
17
|
+
|
|
18
|
+
def eyes_only
|
|
19
|
+
httpdigest('eyes only',REALM) do |username|
|
|
20
|
+
password = username.reverse
|
|
21
|
+
MD5.hexdigest([username,REALM,password].join(':'))
|
|
22
|
+
end
|
|
23
|
+
"Shhhh don't tell anyone"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
class LoginController < Ramaze::Controller
|
|
29
|
+
map '/login'
|
|
30
|
+
|
|
31
|
+
helper :httpdigest
|
|
32
|
+
|
|
33
|
+
def index
|
|
34
|
+
@username ||= session[:username]
|
|
35
|
+
@username ||= httpdigest('login area',REALM)
|
|
36
|
+
"Hi there #@username!"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def login
|
|
40
|
+
%|<form action="#{Rs(:post)}" method="post"><input type="text" name="username"/><input type="password" name="password"/><input type="submit"/></form>|
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def post
|
|
44
|
+
username = request.params["username"]
|
|
45
|
+
password = request.params["password"]
|
|
46
|
+
if password == "entry"
|
|
47
|
+
session[:username] = username
|
|
48
|
+
destination = session[ :redirect_after_login ]
|
|
49
|
+
session.delete( :redirect_after_login )
|
|
50
|
+
redirect destination
|
|
51
|
+
end
|
|
52
|
+
redirect Rs(:login)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
protected
|
|
56
|
+
|
|
57
|
+
def httpdigest_failure
|
|
58
|
+
session[ :redirect_after_login ] = Rs(Ramaze::Action.current.method)
|
|
59
|
+
redirect Rs(:login)
|
|
60
|
+
end
|
|
61
|
+
|
|
13
62
|
end
|
|
14
63
|
|
|
15
64
|
class SecretController < Ramaze::Controller
|
|
@@ -17,17 +66,22 @@ class SecretController < Ramaze::Controller
|
|
|
17
66
|
helper :aspect
|
|
18
67
|
helper :httpdigest
|
|
19
68
|
|
|
69
|
+
USERS = { 'admin' => 'secret', 'root' => 'password' }
|
|
70
|
+
|
|
20
71
|
before_all do
|
|
21
|
-
@username = httpdigest('secret area',REALM)
|
|
22
|
-
{ 'admin' => MD5.hexdigest("admin:#{REALM}:secret"),
|
|
23
|
-
'root' => MD5.hexdigest("root:#{REALM}:access"),
|
|
24
|
-
}[ username ]
|
|
25
|
-
end
|
|
72
|
+
@username = httpdigest('secret area',REALM)
|
|
26
73
|
end
|
|
27
74
|
|
|
28
75
|
def index
|
|
29
76
|
"Hello <em>#@username</em>, welcome to SECRET world"
|
|
30
77
|
end
|
|
78
|
+
|
|
79
|
+
protected
|
|
80
|
+
|
|
81
|
+
def httpdigest_lookup_plaintext_password username
|
|
82
|
+
USERS[ username ]
|
|
83
|
+
end
|
|
84
|
+
|
|
31
85
|
end
|
|
32
86
|
|
|
33
87
|
class GuestController < Ramaze::Controller
|
|
@@ -36,15 +90,19 @@ class GuestController < Ramaze::Controller
|
|
|
36
90
|
helper :httpdigest
|
|
37
91
|
|
|
38
92
|
before_all do
|
|
39
|
-
@username = httpdigest('guest area',REALM)
|
|
40
|
-
username_used = username
|
|
41
|
-
MD5.hexdigest([username,REALM,username].join(':'))
|
|
42
|
-
end
|
|
93
|
+
@username = httpdigest('guest area',REALM)
|
|
43
94
|
end
|
|
44
95
|
|
|
45
96
|
def index
|
|
46
97
|
"Hello <em>#@username</em>, welcome to GUEST world."
|
|
47
98
|
end
|
|
99
|
+
|
|
100
|
+
protected
|
|
101
|
+
|
|
102
|
+
def httpdigest_lookup_password username
|
|
103
|
+
return "b71f15b2f6dd4834224fbe02169ed94c" if username == "guest"
|
|
104
|
+
end
|
|
105
|
+
|
|
48
106
|
end
|
|
49
107
|
|
|
50
108
|
Ramaze.start
|
data/examples/misc/ramaise.rb
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
%w(rubygems ramaze bluecloth rubypants haml).each{|lib| require lib }
|
|
16
16
|
|
|
17
17
|
class BlogPost
|
|
18
|
-
DIR = __DIR__
|
|
18
|
+
DIR = __DIR__(:entries)
|
|
19
19
|
|
|
20
20
|
def initialize filename
|
|
21
21
|
raise 'Invalid BlogPost filename' unless File.exists?(filename)
|
|
@@ -129,4 +129,4 @@ class MainController < Ramaze::Controller
|
|
|
129
129
|
|
|
130
130
|
end
|
|
131
131
|
|
|
132
|
-
Ramaze.start :sessions => false #, :adapter => :mongrel, :port => 3000
|
|
132
|
+
Ramaze.start :sessions => false #, :adapter => :mongrel, :port => 3000
|
|
@@ -2,7 +2,7 @@ require 'rubygems'
|
|
|
2
2
|
require 'ramaze'
|
|
3
3
|
|
|
4
4
|
class MainController < Ramaze::Controller
|
|
5
|
-
view_root __DIR__
|
|
5
|
+
view_root __DIR__(:template)
|
|
6
6
|
engine :Haml
|
|
7
7
|
|
|
8
8
|
def index
|
|
@@ -29,7 +29,7 @@ class MainController < Ramaze::Controller
|
|
|
29
29
|
= A("#@place/one/two/three")
|
|
30
30
|
%br/
|
|
31
31
|
= A("#@place/one?foo=bar")
|
|
32
|
-
%div
|
|
32
|
+
%div
|
|
33
33
|
The arguments you have passed to this action are:
|
|
34
34
|
- if @args.empty?
|
|
35
35
|
none
|
|
@@ -2,7 +2,7 @@ require 'rubygems'
|
|
|
2
2
|
require 'ramaze'
|
|
3
3
|
|
|
4
4
|
class MainController < Ramaze::Controller
|
|
5
|
-
view_root __DIR__
|
|
5
|
+
view_root __DIR__('template')
|
|
6
6
|
engine :Markaby
|
|
7
7
|
|
|
8
8
|
helper :markaby
|
|
@@ -33,7 +33,7 @@ class MainController < Ramaze::Controller
|
|
|
33
33
|
br
|
|
34
34
|
end
|
|
35
35
|
div do
|
|
36
|
-
text "The arguments you have passed to this action are:"
|
|
36
|
+
text "The arguments you have passed to this action are:"
|
|
37
37
|
if @args.empty?
|
|
38
38
|
text "none"
|
|
39
39
|
else
|
|
@@ -2,7 +2,7 @@ require 'rubygems'
|
|
|
2
2
|
require 'ramaze'
|
|
3
3
|
|
|
4
4
|
class MainController < Ramaze::Controller
|
|
5
|
-
view_root __DIR__
|
|
5
|
+
view_root __DIR__(:template)
|
|
6
6
|
engine :Remarkably
|
|
7
7
|
|
|
8
8
|
include Remarkably::Common
|
|
@@ -31,7 +31,7 @@ class MainController < Ramaze::Controller
|
|
|
31
31
|
br
|
|
32
32
|
end
|
|
33
33
|
div do
|
|
34
|
-
text "The arguments you have passed to this action are:"
|
|
34
|
+
text "The arguments you have passed to this action are:"
|
|
35
35
|
if args.empty?
|
|
36
36
|
"none"
|
|
37
37
|
else
|
data/lib/proto/model/init.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Here goes your database connection and options
|
|
1
|
+
# Here goes your database connection and options:
|
|
2
2
|
|
|
3
|
-
#
|
|
4
|
-
|
|
3
|
+
# Here go your requires for models:
|
|
4
|
+
# require 'model/user'
|