ramaze 2011.07.25 → 2011.10.23
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +3 -0
- data/.mailmap +3 -2
- data/.travis.yml +17 -0
- data/.yardopts +13 -0
- data/README.md +95 -352
- data/examples/app/blog/app.rb +25 -64
- data/examples/app/blog/config.ru +11 -9
- data/examples/app/blog/controller/init.rb +29 -86
- data/examples/app/blog/controller/posts.rb +232 -0
- data/examples/app/blog/controller/users.rb +160 -0
- data/examples/app/blog/layout/default.xhtml +61 -0
- data/examples/app/blog/migrations/01_create_schema.rb +50 -0
- data/examples/app/blog/model/comment.rb +41 -54
- data/examples/app/blog/model/init.rb +41 -13
- data/examples/app/blog/model/post.rb +35 -0
- data/examples/app/blog/model/user.rb +105 -0
- data/examples/app/blog/public/.htaccess +24 -0
- data/examples/app/blog/public/css/grid.css +107 -0
- data/examples/app/blog/public/css/layout.css +203 -0
- data/examples/app/blog/public/css/reset.css +123 -0
- data/examples/app/blog/public/css/text.css +109 -0
- data/examples/app/blog/public/dispatch.fcgi +11 -0
- data/examples/app/blog/public/favicon.ico +0 -0
- data/examples/app/blog/public/images/bg.png +0 -0
- data/examples/app/blog/start.rb +18 -3
- data/examples/app/blog/view/feed.xhtml +23 -0
- data/examples/app/blog/view/form.xhtml +11 -0
- data/examples/app/blog/view/index.xhtml +44 -0
- data/examples/app/blog/view/users/form.xhtml +12 -0
- data/examples/app/blog/view/users/index.xhtml +30 -0
- data/examples/app/blog/view/users/login.xhtml +8 -0
- data/examples/app/blog/view/view.xhtml +68 -0
- data/{doc → guide}/AUTHORS +5 -3
- data/{doc → guide}/CHANGELOG +428 -0
- data/{doc/GPL → guide/GPL_LICENSE} +0 -0
- data/{doc/COPYING → guide/RUBY_LICENSE} +3 -6
- data/guide/_static/logo.png +0 -0
- data/guide/_static/logo.svg +49 -0
- data/guide/_static/ramaze_console.png +0 -0
- data/guide/css/common.css +20 -0
- data/guide/general/cache.md +167 -0
- data/guide/general/configuration.md +168 -0
- data/guide/general/contributing.md +108 -0
- data/guide/general/controllers.md +115 -0
- data/guide/general/helpers.md +76 -0
- data/guide/general/installation.md +58 -0
- data/guide/general/logging.md +99 -0
- data/guide/general/middlewares.md +100 -0
- data/guide/general/models.md +78 -0
- data/guide/general/principles.md +53 -0
- data/guide/general/ramaze_command.md +155 -0
- data/guide/general/routes.md +81 -0
- data/guide/general/sessions.md +140 -0
- data/guide/general/special_thanks.md +67 -0
- data/guide/general/testing.md +61 -0
- data/guide/general/views.md +322 -0
- data/guide/tutorials/introduction.md +259 -0
- data/lib/proto/config.ru +1 -1
- data/lib/proto/public/favicon.ico +0 -0
- data/lib/proto/view/index.xhtml +7 -7
- data/lib/ramaze.rb +4 -4
- data/lib/ramaze/app.rb +11 -11
- data/lib/ramaze/app_graph.rb +2 -4
- data/lib/ramaze/bin/console.rb +3 -3
- data/lib/ramaze/bin/create.rb +2 -2
- data/lib/ramaze/bin/restart.rb +4 -4
- data/lib/ramaze/bin/runner.rb +5 -5
- data/lib/ramaze/bin/start.rb +19 -4
- data/lib/ramaze/bin/status.rb +3 -3
- data/lib/ramaze/bin/stop.rb +3 -3
- data/lib/ramaze/cache.rb +1 -0
- data/lib/ramaze/cache/lru.rb +8 -4
- data/lib/ramaze/cache/memcache.rb +32 -13
- data/lib/ramaze/cache/redis.rb +164 -0
- data/lib/ramaze/cache/sequel.rb +43 -28
- data/lib/ramaze/controller.rb +1 -2
- data/lib/ramaze/dependencies.rb +40 -3
- data/lib/ramaze/helper/bench.rb +26 -16
- data/lib/ramaze/helper/blue_form.rb +46 -73
- data/lib/ramaze/helper/cache.rb +10 -6
- data/lib/ramaze/helper/csrf.rb +35 -39
- data/lib/ramaze/helper/disqus.rb +5 -4
- data/lib/ramaze/helper/email.rb +35 -24
- data/lib/ramaze/helper/erector.rb +9 -13
- data/lib/ramaze/helper/flash.rb +7 -9
- data/lib/ramaze/helper/formatting.rb +194 -179
- data/lib/ramaze/helper/gravatar.rb +4 -8
- data/lib/ramaze/helper/identity.rb +3 -3
- data/lib/ramaze/helper/layout.rb +23 -8
- data/lib/ramaze/helper/markaby.rb +1 -1
- data/lib/ramaze/helper/paginate.rb +46 -39
- data/lib/ramaze/helper/request_accessor.rb +3 -1
- data/lib/ramaze/helper/simple_captcha.rb +18 -17
- data/lib/ramaze/helper/stack.rb +1 -1
- data/lib/ramaze/helper/tagz.rb +4 -2
- data/lib/ramaze/helper/upload.rb +523 -0
- data/lib/ramaze/helper/user.rb +4 -8
- data/lib/ramaze/helper/xhtml.rb +11 -15
- data/lib/ramaze/log.rb +9 -6
- data/lib/ramaze/log/rotatinginformer.rb +62 -27
- data/lib/ramaze/log/syslog.rb +20 -15
- data/lib/ramaze/log/xosd.rb +2 -1
- data/lib/ramaze/reloader.rb +2 -0
- data/lib/ramaze/request.rb +11 -10
- data/lib/ramaze/setup.rb +23 -6
- data/lib/ramaze/snippets/array/put_within.rb +3 -9
- data/lib/ramaze/snippets/binding/locals.rb +5 -10
- data/lib/ramaze/snippets/fiber.rb +1 -23
- data/lib/ramaze/snippets/kernel/pretty_inspect.rb +3 -6
- data/lib/ramaze/snippets/numeric/filesize_format.rb +3 -5
- data/lib/ramaze/snippets/numeric/time.rb +3 -7
- data/lib/ramaze/snippets/object/__dir__.rb +3 -7
- data/lib/ramaze/snippets/object/instance_variable_defined.rb +3 -6
- data/lib/ramaze/snippets/object/pretty.rb +3 -7
- data/lib/ramaze/snippets/object/scope.rb +7 -9
- data/lib/ramaze/snippets/proc/locals.rb +12 -12
- data/lib/ramaze/snippets/ramaze/acquire.rb +15 -14
- data/lib/ramaze/snippets/ramaze/deprecated.rb +1 -1
- data/lib/ramaze/snippets/ramaze/fiber.rb +1 -1
- data/lib/ramaze/snippets/ramaze/lru_hash.rb +2 -3
- data/lib/ramaze/snippets/ramaze/struct.rb +2 -4
- data/lib/ramaze/snippets/string/camel_case.rb +8 -10
- data/lib/ramaze/snippets/string/color.rb +3 -4
- data/lib/ramaze/snippets/string/end_with.rb +3 -6
- data/lib/ramaze/snippets/string/esc.rb +3 -8
- data/lib/ramaze/snippets/string/ord.rb +3 -8
- data/lib/ramaze/snippets/string/snake_case.rb +6 -9
- data/lib/ramaze/snippets/string/start_with.rb +3 -8
- data/lib/ramaze/snippets/string/unindent.rb +3 -6
- data/lib/ramaze/snippets/thread/into.rb +1 -3
- data/lib/ramaze/spec.rb +2 -31
- data/lib/ramaze/spec/bacon.rb +18 -2
- data/lib/ramaze/version.rb +1 -1
- data/lib/ramaze/view.rb +1 -1
- data/ramaze.gemspec +1 -1
- data/spec/helper.rb +2 -1
- data/spec/ramaze/bin/start.rb +16 -20
- data/spec/ramaze/cache/localmemcache.rb +4 -7
- data/spec/ramaze/cache/memcache.rb +3 -1
- data/spec/ramaze/cache/redis.rb +62 -0
- data/spec/ramaze/helper/blue_form.rb +33 -4
- data/spec/ramaze/helper/layout.rb +40 -7
- data/spec/ramaze/helper/upload.rb +149 -0
- data/spec/ramaze/helper/uploads/text_1.txt +1 -0
- data/spec/ramaze/helper/uploads/text_2.txt +1 -0
- data/spec/ramaze/log/growl.rb +4 -6
- data/spec/ramaze/log/syslog.rb +6 -0
- data/spec/ramaze/view/lokar.rb +5 -0
- data/spec/ramaze/view/nagoro.rb +5 -0
- data/tasks/authors.rake +1 -1
- data/tasks/bacon.rake +14 -5
- data/tasks/changelog.rake +1 -1
- data/tasks/yard.rake +12 -4
- metadata +277 -239
- data/doc/LEGAL +0 -26
- data/examples/app/blog/README +0 -3
- data/examples/app/blog/controller/comment.rb +0 -45
- data/examples/app/blog/controller/entry.rb +0 -85
- data/examples/app/blog/controller/main.rb +0 -20
- data/examples/app/blog/controller/tag.rb +0 -9
- data/examples/app/blog/layout/default.nag +0 -31
- data/examples/app/blog/model/entry.rb +0 -89
- data/examples/app/blog/model/tag.rb +0 -36
- data/examples/app/blog/public/css/screen.css +0 -273
- data/examples/app/blog/spec/blog.rb +0 -87
- data/examples/app/blog/view/comment/form.nag +0 -10
- data/examples/app/blog/view/comment/show.nag +0 -16
- data/examples/app/blog/view/entry/edit.nag +0 -14
- data/examples/app/blog/view/entry/feed.atom.nag +0 -8
- data/examples/app/blog/view/entry/feed.rss.nag +0 -7
- data/examples/app/blog/view/entry/index.nag +0 -7
- data/examples/app/blog/view/entry/new.nag +0 -13
- data/examples/app/blog/view/entry/show.nag +0 -36
- data/examples/app/blog/view/feed.atom.nag +0 -18
- data/examples/app/blog/view/feed.rss.nag +0 -25
- data/examples/app/blog/view/index.nag +0 -6
- data/examples/app/blog/view/tag/index.nag +0 -5
- data/lib/proto/public/ramaze.png +0 -0
- data/lib/ramaze/rest.rb +0 -36
- data/spec/ramaze/rest.rb +0 -28
- data/tasks/rcov.rake +0 -22
data/lib/ramaze/controller.rb
CHANGED
data/lib/ramaze/dependencies.rb
CHANGED
@@ -1,4 +1,15 @@
|
|
1
1
|
module Ramaze
|
2
|
+
# Array containing gems that aren't supported for certain reasons. The gems
|
3
|
+
# that are in this array by default will be removed if the current setup
|
4
|
+
# *does* support them.
|
5
|
+
UNSUPPORTED_GEMS = [
|
6
|
+
'lokar',
|
7
|
+
'localmemcache',
|
8
|
+
'ruby-growl',
|
9
|
+
'nagoro',
|
10
|
+
'syslog'
|
11
|
+
]
|
12
|
+
|
2
13
|
# Array containing the names and versions of all the gems required by Ramaze
|
3
14
|
# along with the name of how the gem should be required.
|
4
15
|
DEPENDENCIES = [
|
@@ -17,10 +28,8 @@ module Ramaze
|
|
17
28
|
{:name => 'hpricot' , :version => ['>= 0.8.4']},
|
18
29
|
{:name => 'liquid' , :version => ['>= 2.2.2']},
|
19
30
|
{:name => 'locale' , :version => ['>= 2.0.5']},
|
20
|
-
{:name => 'lokar' , :version => ['>= 0.2.1']},
|
21
31
|
{:name => 'maruku' , :version => ['>= 0.6.0']},
|
22
32
|
{:name => 'mustache' , :version => ['>= 0.99.4']},
|
23
|
-
{:name => 'nagoro' , :version => ['>= 2009.05']},
|
24
33
|
{:name => 'rack-contrib', :version => ['>= 1.1.0'], :lib => 'rack/contrib'},
|
25
34
|
{:name => 'rack-test' , :version => ['>= 0.6.0'], :lib => 'rack/test'},
|
26
35
|
{:name => 'Remarkably' , :version => ['>= 0.6.1'], :lib => 'remarkably'},
|
@@ -30,17 +39,45 @@ module Ramaze
|
|
30
39
|
{:name => 'tagz' , :version => ['>= 9.0.0']},
|
31
40
|
{:name => 'tenjin' , :version => ['>= 0.6.1']},
|
32
41
|
{:name => 'yard' , :version => ['>= 0.7.2']},
|
42
|
+
{:name => 'redis' , :version => ['>= 2.2.2']},
|
43
|
+
{:name => 'rdiscount' , :version => ['>= 1.6.8']}
|
33
44
|
]
|
34
45
|
|
35
|
-
|
46
|
+
# Lokar requires Ruby >= 1.9
|
47
|
+
if RUBY_VERSION.to_f >= 1.9
|
48
|
+
DEVELOPMENT_DEPENDENCIES.push({:name => 'lokar', :version => ['>= 0.2.1']})
|
49
|
+
UNSUPPORTED_GEMS.delete('lokar')
|
50
|
+
end
|
51
|
+
|
52
|
+
# LocalMemcache doesn't work on Mac OS X or jruby.
|
53
|
+
if !RUBY_DESCRIPTION.include?('jruby') and !RUBY_PLATFORM.include?('darwin')
|
36
54
|
DEVELOPMENT_DEPENDENCIES.push(
|
37
55
|
{:name => 'localmemcache', :version => ['>= 0.4.4']}
|
38
56
|
)
|
57
|
+
|
58
|
+
UNSUPPORTED_GEMS.delete('localmemcache')
|
39
59
|
end
|
40
60
|
|
61
|
+
# Ruby-growl, requiring Growl, only works on Mac OS X.
|
41
62
|
if RUBY_PLATFORM.include?('darwin')
|
42
63
|
DEVELOPMENT_DEPENDENCIES.push(
|
43
64
|
{:name => 'ruby-growl', :version => ['>= 3.0']}
|
44
65
|
)
|
66
|
+
|
67
|
+
UNSUPPORTED_GEMS.delete('ruby-growl')
|
68
|
+
end
|
69
|
+
|
70
|
+
# Nagoro doesn't seem to work on Rbx
|
71
|
+
if !RUBY_DESCRIPTION.include?('rubinius')
|
72
|
+
DEVELOPMENT_DEPENDENCIES.push(
|
73
|
+
{:name => 'nagoro', :version => ['>= 2009.05']}
|
74
|
+
)
|
75
|
+
|
76
|
+
UNSUPPORTED_GEMS.delete('nagoro')
|
77
|
+
end
|
78
|
+
|
79
|
+
# Syslog uses forking which apparently isn't available on jruby.
|
80
|
+
if !RUBY_DESCRIPTION.include?('jruby')
|
81
|
+
UNSUPPORTED_GEMS.delete('syslog')
|
45
82
|
end
|
46
83
|
end # Ramaze
|
data/lib/ramaze/helper/bench.rb
CHANGED
@@ -2,10 +2,14 @@ require 'benchmark'
|
|
2
2
|
|
3
3
|
module Ramaze
|
4
4
|
module Helper
|
5
|
-
|
6
|
-
#
|
5
|
+
##
|
6
|
+
# The Benchmark helper is a simple helper that can be used to benchmark
|
7
|
+
# certain blocks of code by wrapping them in a block. This can be useful if
|
8
|
+
# you want to see how long a certain query takes or how long it takes to
|
9
|
+
# create a new user.
|
10
|
+
#
|
7
11
|
module Bench
|
8
|
-
|
12
|
+
##
|
9
13
|
# Will first run an empty loop to determine the overhead it imposes, then
|
10
14
|
# goes on to yield your block +iterations+ times.
|
11
15
|
#
|
@@ -15,27 +19,33 @@ module Ramaze
|
|
15
19
|
#
|
16
20
|
# Example:
|
17
21
|
#
|
18
|
-
#
|
19
|
-
#
|
20
|
-
#
|
21
|
-
#
|
22
|
+
# class MainController < Ramaze::Controller
|
23
|
+
# def index
|
24
|
+
# @users = bench{ User.all }
|
25
|
+
# @tags = bench{ Article.tags }
|
26
|
+
# end
|
22
27
|
# end
|
23
|
-
# end
|
24
28
|
#
|
25
29
|
# This will show something like following in your log:
|
26
|
-
#
|
27
|
-
#
|
30
|
+
#
|
31
|
+
# [..] INFO Bench ./start.rb:3:in `index': 0.121163845062256
|
32
|
+
# [..] INFO Bench ./start.rb:4:in `index': 2.234987235098341
|
28
33
|
#
|
29
34
|
# So now we know that the Article.tags call takes the most time and
|
30
35
|
# should be improved.
|
36
|
+
#
|
37
|
+
# @param [Fixnum] iterations The amount of iterations to run.
|
38
|
+
# @return [Mixed]
|
39
|
+
#
|
31
40
|
def bench(iterations = 1)
|
32
41
|
result = nil
|
33
|
-
from
|
34
|
-
delta
|
35
|
-
taken
|
42
|
+
from = caller[0]
|
43
|
+
delta = Benchmark.realtime{ iterations.times{ nil }}
|
44
|
+
taken = Benchmark.realtime{ iterations.times{ result = yield }}
|
45
|
+
|
36
46
|
Log.info "Bench #{from}: #{taken - delta}"
|
37
47
|
return result
|
38
48
|
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
49
|
+
end # Bench
|
50
|
+
end # Helper
|
51
|
+
end # Ramaze
|
@@ -4,34 +4,13 @@ require 'ramaze/gestalt'
|
|
4
4
|
module Ramaze
|
5
5
|
module Helper
|
6
6
|
##
|
7
|
-
# == Introduction
|
8
|
-
#
|
9
7
|
# The BlueForm helper tries to be an even better way to build forms
|
10
|
-
# programmatically.
|
8
|
+
# programmatically. By using a simple block you can quickly create all the
|
11
9
|
# required elements for your form.
|
12
10
|
#
|
13
|
-
#
|
14
|
-
# specify an object as the first parameter of the form_for() method. This
|
15
|
-
# object will be used to retrieve the values of each field. This means that
|
16
|
-
# you can directly pass a database result object to the form and no longer
|
17
|
-
# have to manually specify values. However, you can still specify your own
|
18
|
-
# values if you want.
|
19
|
-
#
|
20
|
-
# Old behaviour:
|
21
|
-
#
|
22
|
-
# form_for(:method => :post) do |f|
|
23
|
-
# f.input_text 'Username', :username, 'Chuck Norris'
|
24
|
-
# end
|
25
|
-
#
|
26
|
-
# New behaviour:
|
11
|
+
# See {Ramaze::Helper::BlueForm::Form} for all the available methods.
|
27
12
|
#
|
28
|
-
#
|
29
|
-
# # This variable contains the value "Chuck Norris".
|
30
|
-
# form_for(@data, :method => :post) do |f|
|
31
|
-
# f.input_text 'Username', :username
|
32
|
-
# end
|
33
|
-
#
|
34
|
-
# == Form Data
|
13
|
+
# ## Form Data
|
35
14
|
#
|
36
15
|
# As stated earlier it's possible to pass an object to the form_for()
|
37
16
|
# method. What kind of object this is, a database result object or an
|
@@ -40,16 +19,16 @@ module Ramaze
|
|
40
19
|
# extremely easy to directly pass a result object from your favourite ORM.
|
41
20
|
# Example:
|
42
21
|
#
|
43
|
-
#
|
22
|
+
# @data = User[1]
|
44
23
|
#
|
45
|
-
#
|
46
|
-
#
|
47
|
-
#
|
24
|
+
# form_for(@data, :method => :post) do |f|
|
25
|
+
# f.input_text 'Username', :username
|
26
|
+
# end
|
48
27
|
#
|
49
28
|
# If you don't want to use an object you can simply set the first parameter
|
50
29
|
# to nil.
|
51
30
|
#
|
52
|
-
#
|
31
|
+
# ## HTML Output
|
53
32
|
#
|
54
33
|
# The form helper uses Gestalt, Ramaze's custom HTML builder that works
|
55
34
|
# somewhat like Erector. The output is very minimalistic, elements such as
|
@@ -61,14 +40,11 @@ module Ramaze
|
|
61
40
|
# directly. When using Etanni this would result in something like the
|
62
41
|
# following:
|
63
42
|
#
|
64
|
-
#
|
65
|
-
#
|
66
|
-
#
|
67
|
-
# end
|
68
|
-
# }
|
69
|
-
#
|
70
|
-
# @example
|
43
|
+
# #{form_for(@result, :method => :post) do |f| do
|
44
|
+
# f.input_text 'Text label', :textname, 'Chunky bacon!'
|
45
|
+
# end}
|
71
46
|
#
|
47
|
+
# @example Creating a basic form
|
72
48
|
# form_for(@data, :method => :post) do |f|
|
73
49
|
# f.input_text 'Username', :username
|
74
50
|
# end
|
@@ -197,7 +173,6 @@ module Ramaze
|
|
197
173
|
#
|
198
174
|
# @param [String] text The text to display inside the legend tag.
|
199
175
|
# @example
|
200
|
-
#
|
201
176
|
# form_for(@data, :method => :post) do |f|
|
202
177
|
# f.legend 'Ramaze rocks!'
|
203
178
|
# end
|
@@ -211,7 +186,6 @@ module Ramaze
|
|
211
186
|
#
|
212
187
|
# @param [Block] &block The form elements to display inside the fieldset.
|
213
188
|
# @example
|
214
|
-
#
|
215
189
|
# form_for(@data, :method => :post) do |f|
|
216
190
|
# f.fieldset do
|
217
191
|
# f.legend 'Hello, world!'
|
@@ -232,7 +206,6 @@ module Ramaze
|
|
232
206
|
# @param [Hash] args Any additional HTML attributes along with their
|
233
207
|
# values.
|
234
208
|
# @example
|
235
|
-
#
|
236
209
|
# form_for(@data, :method => :post) do |f|
|
237
210
|
# f.input_text 'Username', :username
|
238
211
|
# end
|
@@ -264,7 +237,6 @@ module Ramaze
|
|
264
237
|
# @param [Hash] args Any additional HTML attributes along with their
|
265
238
|
# values.
|
266
239
|
# @example
|
267
|
-
#
|
268
240
|
# form_for(@data, :method => :post) do |f|
|
269
241
|
# f.input_password 'My password', :password
|
270
242
|
# end
|
@@ -293,7 +265,6 @@ module Ramaze
|
|
293
265
|
# @param [Hash] args Any additional HTML attributes along with their
|
294
266
|
# values.
|
295
267
|
# @example
|
296
|
-
#
|
297
268
|
# form_for(@data, :method => :post) do |f|
|
298
269
|
# f.input_submit 'Save'
|
299
270
|
# end
|
@@ -316,20 +287,20 @@ module Ramaze
|
|
316
287
|
# for each checkbox. When using a hash the key will be displayed and
|
317
288
|
# the value will be the value of the checkbox. Example:
|
318
289
|
#
|
319
|
-
#
|
320
|
-
#
|
321
|
-
#
|
290
|
+
# @data = Class.new
|
291
|
+
# attr_reader :gender_arr
|
292
|
+
# attr_reader :gender_hash
|
322
293
|
#
|
323
|
-
#
|
324
|
-
#
|
325
|
-
#
|
326
|
-
#
|
327
|
-
#
|
294
|
+
# def initialize
|
295
|
+
# @gender_arr = ['male', 'female']
|
296
|
+
# @gender_hash = {"Male" => "male", "Female" => "female"}
|
297
|
+
# end
|
298
|
+
# end.new
|
328
299
|
#
|
329
|
-
#
|
330
|
-
#
|
331
|
-
#
|
332
|
-
#
|
300
|
+
# form_for(@data, :method => :post) do |f|
|
301
|
+
# f.input_checkbox "Gender", :gender_arr
|
302
|
+
# f.input_checkbox "Gender", :gender_hash
|
303
|
+
# end
|
333
304
|
#
|
334
305
|
# @example
|
335
306
|
# form_for(@data, :method => :post) do |f|
|
@@ -338,8 +309,8 @@ module Ramaze
|
|
338
309
|
#
|
339
310
|
# @param [String] label The text to display inside the label tag.
|
340
311
|
# @param [String Symbol] name The name of the checkbox.
|
341
|
-
# @param [String] checked String that indicates
|
342
|
-
# should be checked.
|
312
|
+
# @param [String/Array] checked String or array that indicates which
|
313
|
+
# value(s) should be checked.
|
343
314
|
# @param [Hash] args Any additional HTML attributes along with their
|
344
315
|
# values.
|
345
316
|
# @option args [String/Symbol] :id The value to use for the ID attribute.
|
@@ -430,8 +401,14 @@ module Ramaze
|
|
430
401
|
end
|
431
402
|
|
432
403
|
# Let's see if the current item is checked
|
433
|
-
if
|
434
|
-
|
404
|
+
if checked.class == Array
|
405
|
+
if checked.include?(checkbox_value)
|
406
|
+
opts[:checked] = 'checked'
|
407
|
+
end
|
408
|
+
else
|
409
|
+
if checkbox_value == checked
|
410
|
+
opts[:checked] = 'checked'
|
411
|
+
end
|
435
412
|
end
|
436
413
|
|
437
414
|
# And we're done, easy wasn't it?
|
@@ -462,20 +439,20 @@ module Ramaze
|
|
462
439
|
# If you want to generate multiple radio buttons you can use an array
|
463
440
|
# just like you can with checkboxes. Example:
|
464
441
|
#
|
465
|
-
#
|
466
|
-
#
|
467
|
-
#
|
442
|
+
# @data = Class.new
|
443
|
+
# attr_reader :gender_arr
|
444
|
+
# attr_reader :gender_hash
|
468
445
|
#
|
469
|
-
#
|
470
|
-
#
|
471
|
-
#
|
472
|
-
#
|
473
|
-
#
|
446
|
+
# def initialize
|
447
|
+
# @gender_arr = ['male', 'female']
|
448
|
+
# @gender_hash = {"Male" => "male", "Female" => "female"}
|
449
|
+
# end
|
450
|
+
# end.new
|
474
451
|
#
|
475
|
-
#
|
476
|
-
#
|
477
|
-
#
|
478
|
-
#
|
452
|
+
# form_for(@data, :method => :post) do |f|
|
453
|
+
# f.input_radio "Gender", :gender_arr
|
454
|
+
# f.input_radio "Gender", :gender_hash
|
455
|
+
# end
|
479
456
|
#
|
480
457
|
# For more information see the input_checkbox() method.
|
481
458
|
#
|
@@ -511,7 +488,6 @@ module Ramaze
|
|
511
488
|
# @param [Hash] args Any additional HTML attributes along with their
|
512
489
|
# values.
|
513
490
|
# @example
|
514
|
-
#
|
515
491
|
# form_for(@data, :method => :post) do |f|
|
516
492
|
# f.input_file 'Image', :image
|
517
493
|
# end
|
@@ -536,7 +512,6 @@ module Ramaze
|
|
536
512
|
# @param [Hash] args Any additional HTML attributes along with their
|
537
513
|
# values.
|
538
514
|
# @example
|
539
|
-
#
|
540
515
|
# form_for(@data, :method => :post) do |f|
|
541
516
|
# f.input_hidden :user_id
|
542
517
|
# end
|
@@ -562,7 +537,6 @@ module Ramaze
|
|
562
537
|
# @param [Hash] args Any additional HTML attributes along with their
|
563
538
|
# values.
|
564
539
|
# @example
|
565
|
-
#
|
566
540
|
# form_for(@data, :method => :post) do |f|
|
567
541
|
# f.textarea 'Description', :description
|
568
542
|
# end
|
@@ -593,7 +567,6 @@ module Ramaze
|
|
593
567
|
# @param [String Symbol] name The name of the select tag.
|
594
568
|
# @param [Hash] args Hash containing additional HTML attributes.
|
595
569
|
# @example
|
596
|
-
#
|
597
570
|
# form_for(@data, :method => :post) do |f|
|
598
571
|
# f.select 'Country', :country_list
|
599
572
|
# end
|
data/lib/ramaze/helper/cache.rb
CHANGED
@@ -3,15 +3,16 @@
|
|
3
3
|
|
4
4
|
module Ramaze
|
5
5
|
module Helper
|
6
|
-
|
6
|
+
##
|
7
7
|
# Caching of simple objects and whole action responses.
|
8
|
+
#
|
8
9
|
module Cache
|
9
|
-
|
10
10
|
# Setup needed traits, add the singleton methods and add the caches used
|
11
11
|
# by this helper.
|
12
12
|
#
|
13
13
|
# @param [Class] into Class that this Module is included into
|
14
14
|
# @author manveru
|
15
|
+
#
|
15
16
|
def self.included(into)
|
16
17
|
into.extend(SingletonMethods)
|
17
18
|
into.add_action_wrapper(6.0, :cache_wrap)
|
@@ -19,11 +20,13 @@ module Ramaze
|
|
19
20
|
Ramaze::Cache.add(:action, :cache_helper_value)
|
20
21
|
end
|
21
22
|
|
23
|
+
##
|
22
24
|
# @param [Action] action The currently wrapped action
|
23
25
|
# @yield The next block in wrap_action_call
|
24
26
|
# @return [String] the response body
|
25
27
|
# @see Innate::Node#wrap_action_call
|
26
28
|
# @author manveru
|
29
|
+
#
|
27
30
|
def cache_wrap(action)
|
28
31
|
cache = Innate::Cache.action
|
29
32
|
|
@@ -58,6 +61,7 @@ module Ramaze
|
|
58
61
|
yield
|
59
62
|
end
|
60
63
|
|
64
|
+
##
|
61
65
|
# This method is used to access Ramaze::Cache.cache_helper_value.
|
62
66
|
# It provides an easy way to cache long-running computations, gathering
|
63
67
|
# external resources like RSS feeds or DB queries that are the same for
|
@@ -78,6 +82,7 @@ module Ramaze
|
|
78
82
|
# @return [Object] The cache wrapper assigned for :cache_helper_value
|
79
83
|
# @see Innate::Cache
|
80
84
|
# @author manveru
|
85
|
+
#
|
81
86
|
def cache_value(key = nil, options = {})
|
82
87
|
cache = Ramaze::Cache.cache_helper_value
|
83
88
|
|
@@ -96,7 +101,6 @@ module Ramaze
|
|
96
101
|
# This method allows you to cache whole actions.
|
97
102
|
#
|
98
103
|
# @example Basic usage
|
99
|
-
#
|
100
104
|
# class Foo < Ramaze::Controller
|
101
105
|
# helper :cache
|
102
106
|
# cache_action :method => :bar
|
@@ -112,6 +116,6 @@ module Ramaze
|
|
112
116
|
trait[:cache_action] << hash
|
113
117
|
end
|
114
118
|
end
|
115
|
-
end
|
116
|
-
end
|
117
|
-
end
|
119
|
+
end # Cache
|
120
|
+
end # Helper
|
121
|
+
end # Ramaze
|