ramaze 2008.11 → 2009.01
Sign up to get free protection for your applications and to get access to all the features.
- 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'
|