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
|
@@ -1,13 +1,18 @@
|
|
|
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
|
-
|
|
5
|
-
instance_methods.each { |m| undef_method m unless m =~ /^__/ }
|
|
4
|
+
require File.join(File.dirname(__FILE__), 'blankslate')
|
|
6
5
|
|
|
6
|
+
class OrderedSet < BlankSlate
|
|
7
7
|
def initialize(*args)
|
|
8
|
-
|
|
8
|
+
if args.size == 1
|
|
9
|
+
@set = args.shift
|
|
10
|
+
else
|
|
11
|
+
@set = *args
|
|
12
|
+
end
|
|
13
|
+
|
|
9
14
|
@set ||= []
|
|
10
|
-
@set = [@set] unless Array === @set
|
|
15
|
+
@set = [@set] unless ::Array === @set
|
|
11
16
|
@set.uniq!
|
|
12
17
|
end
|
|
13
18
|
|
|
@@ -17,7 +22,7 @@ class OrderedSet
|
|
|
17
22
|
@set.delete *args
|
|
18
23
|
when '[]='
|
|
19
24
|
@set.map! do |e|
|
|
20
|
-
if Array === args.last
|
|
25
|
+
if ::Array === args.last
|
|
21
26
|
args.last.include?(e) ? nil : e
|
|
22
27
|
else
|
|
23
28
|
args.last == e ? nil : e
|
|
@@ -26,6 +31,6 @@ class OrderedSet
|
|
|
26
31
|
end
|
|
27
32
|
@set.__send__(meth, *args, &block)
|
|
28
33
|
ensure
|
|
29
|
-
@set.
|
|
34
|
+
@set.compact! if meth == :[]=
|
|
30
35
|
end
|
|
31
36
|
end
|
|
@@ -1,12 +1,10 @@
|
|
|
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
|
# Extensions for String
|
|
5
5
|
|
|
6
6
|
class String
|
|
7
|
-
|
|
8
|
-
{
|
|
9
|
-
:reset => 0,
|
|
7
|
+
{ :reset => 0,
|
|
10
8
|
:bold => 1,
|
|
11
9
|
:dark => 2,
|
|
12
10
|
:underline => 4,
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Copyright (c) 2008 Michael Fellinger m.fellinger@gmail.com
|
|
2
|
+
# All files in this distribution are subject to the terms of the Ruby license.
|
|
3
|
+
|
|
4
|
+
# Extensions for String
|
|
5
|
+
|
|
6
|
+
class String
|
|
7
|
+
unless method_defined?(:ord)
|
|
8
|
+
|
|
9
|
+
# compatibility with Ruby 1.9
|
|
10
|
+
|
|
11
|
+
def ord
|
|
12
|
+
self[0]
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -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
|
# Extensions for Struct
|
|
@@ -12,8 +12,10 @@ class Struct
|
|
|
12
12
|
|
|
13
13
|
def self.fill(hash = {})
|
|
14
14
|
instance = new
|
|
15
|
+
to_s = members.first.respond_to?(:to_str)
|
|
15
16
|
hash.each do |key, value|
|
|
16
|
-
|
|
17
|
+
key = to_s ? key.to_s : key.to_sym
|
|
18
|
+
next unless members.include?(key)
|
|
17
19
|
instance.send("#{key}=", value)
|
|
18
20
|
end
|
|
19
21
|
instance
|
|
@@ -1,10 +1,10 @@
|
|
|
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
|
# Extensions for Struct
|
|
5
5
|
|
|
6
6
|
class Symbol
|
|
7
|
-
undef_method :to_int
|
|
7
|
+
undef_method :to_int if method_defined?(:to_int)
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
class Struct
|
|
@@ -1,17 +1,24 @@
|
|
|
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
|
# Extensions for Symbol
|
|
5
5
|
|
|
6
6
|
class Symbol
|
|
7
|
+
unless method_defined?(:to_proc)
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
# Turns the symbol into a simple proc, which is especially useful for enumerations. Examples:
|
|
10
|
+
#
|
|
11
|
+
# # The same as people.collect { |p| p.name }
|
|
12
|
+
# people.collect(&:name)
|
|
13
|
+
#
|
|
14
|
+
# # The same as people.select { |p| p.manager? }.collect { |p| p.salary }
|
|
15
|
+
# people.select(&:manager?).collect(&:salary)
|
|
16
|
+
#
|
|
17
|
+
# [1, 2, 3].map(&:to_s) # => ['1', '2', '3']
|
|
18
|
+
# %w[a b c].map(&:to_sym) # => [:a, :b, :c]
|
|
13
19
|
|
|
14
|
-
|
|
15
|
-
|
|
20
|
+
def to_proc
|
|
21
|
+
Proc.new{|*args| args.shift.__send__(self, *args) }
|
|
22
|
+
end
|
|
16
23
|
end
|
|
17
24
|
end
|
data/lib/ramaze/sourcereload.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 'set'
|
|
@@ -14,7 +14,7 @@ module Ramaze
|
|
|
14
14
|
attr_accessor :thread, :interval, :map
|
|
15
15
|
|
|
16
16
|
# Reload everything which falls under this regex
|
|
17
|
-
trait :reload_glob =>
|
|
17
|
+
trait :reload_glob => Regexp.union(/^\.\//, Dir.pwd, 'ramaze')
|
|
18
18
|
|
|
19
19
|
# Take interval for files that are going to be reloaded.
|
|
20
20
|
|
|
@@ -97,7 +97,7 @@ module Ramaze
|
|
|
97
97
|
@map = map.compact
|
|
98
98
|
end
|
|
99
99
|
|
|
100
|
-
|
|
100
|
+
@map.grep(class_trait[:reload_glob])
|
|
101
101
|
end
|
|
102
102
|
|
|
103
103
|
# Safe mtime
|
|
@@ -148,6 +148,7 @@ module Ramaze
|
|
|
148
148
|
def after_safe_load_succeed(file)
|
|
149
149
|
Cache.compiled.clear
|
|
150
150
|
Cache.resolved.clear
|
|
151
|
+
Cache.action_methods.clear
|
|
151
152
|
SourceReloadHooks.after_safe_load(file)
|
|
152
153
|
end
|
|
153
154
|
|
data/lib/ramaze/spec/helper.rb
CHANGED
|
@@ -1,27 +1,17 @@
|
|
|
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
|
-
|
|
5
|
-
require '
|
|
6
|
-
|
|
7
|
-
require 'ramaze/spec/helper/requester'
|
|
8
|
-
require 'ramaze/spec/helper/browser'
|
|
9
|
-
|
|
10
|
-
Spec::Runner.configure do |config|
|
|
11
|
-
config.include MockHTTP
|
|
4
|
+
begin
|
|
5
|
+
require 'rubygems'
|
|
6
|
+
rescue LoadError => ex
|
|
12
7
|
end
|
|
13
8
|
|
|
9
|
+
require 'timeout'
|
|
14
10
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
exclude += [Base64::Deprecated, Base64, Spec::Expectations::ObjectExpectations]
|
|
18
|
-
exclude << Spec::Mocks::Methods if defined?(Spec::Mock::Methods)
|
|
19
|
-
end
|
|
11
|
+
require 'ramaze'
|
|
12
|
+
require 'ramaze/spec/helper/bacon'
|
|
20
13
|
|
|
21
|
-
|
|
22
|
-
# that will be merged with the default-options.
|
|
23
|
-
|
|
24
|
-
def ramaze_start hash = {}
|
|
14
|
+
def ramaze(options = {})
|
|
25
15
|
appdir = File.dirname(caller[0].split(':').first)
|
|
26
16
|
options = {
|
|
27
17
|
:template_root => appdir/:template,
|
|
@@ -32,27 +22,22 @@ def ramaze_start hash = {}
|
|
|
32
22
|
:port => 7007,
|
|
33
23
|
:host => '127.0.0.1',
|
|
34
24
|
:force => true,
|
|
25
|
+
:sourcereload => false,
|
|
35
26
|
:origin => :spec,
|
|
36
|
-
}.merge(
|
|
27
|
+
}.merge(options)
|
|
37
28
|
|
|
38
29
|
Ramaze.start(options)
|
|
39
30
|
end
|
|
40
31
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
# (and might never be due to limited possibilites)
|
|
45
|
-
|
|
46
|
-
def browser(*args, &block)
|
|
47
|
-
Browser.new(*args, &block)
|
|
48
|
-
end
|
|
49
|
-
|
|
32
|
+
SPEC_REQUIRE_DEPENDENCY = {
|
|
33
|
+
'sequel' => %w[sqlite3 sequel_model sequel_core]
|
|
34
|
+
}
|
|
50
35
|
|
|
51
36
|
# require each of the following and rescue LoadError, telling you why it failed.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
following.each do |file|
|
|
55
|
-
require
|
|
37
|
+
def spec_require(*following)
|
|
38
|
+
following << following.map{|f| SPEC_REQUIRE_DEPENDENCY[f] }
|
|
39
|
+
following.flatten.uniq.compact.reverse.each do |file|
|
|
40
|
+
require file.to_s
|
|
56
41
|
end
|
|
57
42
|
rescue LoadError => ex
|
|
58
43
|
puts ex
|
|
@@ -61,3 +46,71 @@ rescue LoadError => ex
|
|
|
61
46
|
puts "library and try again (if you want to use that feature later on)"
|
|
62
47
|
exit
|
|
63
48
|
end
|
|
49
|
+
|
|
50
|
+
def testcase_requires(*following)
|
|
51
|
+
warn "'testcase_requires' is being deprecated, please use 'spec_require' instead"
|
|
52
|
+
spec_require(*following)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
shared "http" do
|
|
56
|
+
require 'ramaze/spec/helper/mock_http'
|
|
57
|
+
extend MockHTTP
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
shared 'browser' do
|
|
61
|
+
require 'ramaze/spec/helper/simple_http'
|
|
62
|
+
require 'ramaze/spec/helper/browser'
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
shared 'requester' do
|
|
66
|
+
require 'ramaze/spec/helper/requester'
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
shared 'xpath' do
|
|
70
|
+
behaves_like 'http'
|
|
71
|
+
|
|
72
|
+
require 'rexml/document'
|
|
73
|
+
require 'rexml/xpath'
|
|
74
|
+
|
|
75
|
+
include REXML
|
|
76
|
+
|
|
77
|
+
class Rack::MockResponse
|
|
78
|
+
def match(xpath = '*')
|
|
79
|
+
REXML::XPath::match(REXML::Document.new(body), xpath)
|
|
80
|
+
end
|
|
81
|
+
alias / match
|
|
82
|
+
alias search match
|
|
83
|
+
|
|
84
|
+
def first(xpath = '*')
|
|
85
|
+
REXML::XPath::first(REXML::Document.new(body), xpath)
|
|
86
|
+
end
|
|
87
|
+
alias at first
|
|
88
|
+
|
|
89
|
+
def each(xpath = '*', &block)
|
|
90
|
+
REXML::XPath::each(REXML::Document.new(body), xpath, &block)
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def xp_match(obj, xpath = '*')
|
|
95
|
+
XPath::match(rexml_doc(body), xpath, &block)
|
|
96
|
+
end
|
|
97
|
+
alias xp_search xp_match
|
|
98
|
+
|
|
99
|
+
def xp_first(obj, xpath = '*')
|
|
100
|
+
XPath::first(rexml_doc(body), xpath, &block)
|
|
101
|
+
end
|
|
102
|
+
alias xp_at xp_first
|
|
103
|
+
|
|
104
|
+
def xp_each(obj, xpath = '*', &block)
|
|
105
|
+
XPath::each(rexml_doc(body), xpath, &block)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def rexml_doc(obj)
|
|
109
|
+
case obj
|
|
110
|
+
when REXML::Document, REXML::Element
|
|
111
|
+
obj
|
|
112
|
+
else
|
|
113
|
+
REXML::Document.new(obj)
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
libdir = File.expand_path(File.join(File.dirname(__FILE__), '../../../'))
|
|
2
|
+
$LOAD_PATH.unshift libdir
|
|
3
|
+
require 'vendor/bacon'
|
|
4
|
+
require 'ramaze/spec/helper/pretty_output'
|
|
5
|
+
Bacon.extend Bacon::PrettyOutput
|
|
6
|
+
# Bacon.extend Bacon::TestUnitOutput
|
|
7
|
+
Bacon.summary_on_exit
|
|
@@ -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
|
class Browser
|
|
@@ -51,7 +51,6 @@ class Browser
|
|
|
51
51
|
hash.clear
|
|
52
52
|
end
|
|
53
53
|
|
|
54
|
-
puts "#{method.to_s.upcase} => #{@http.uri}"
|
|
55
54
|
response = @http.send(method, hash).strip
|
|
56
55
|
@history << @http.uri
|
|
57
56
|
get_cookie
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
module Bacon
|
|
2
|
+
module PrettyOutput
|
|
3
|
+
NAME = ''
|
|
4
|
+
|
|
5
|
+
def handle_specification(name)
|
|
6
|
+
NAME.replace name
|
|
7
|
+
yield
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def handle_requirement(description)
|
|
11
|
+
error = yield
|
|
12
|
+
|
|
13
|
+
unless error.empty?
|
|
14
|
+
if defined?(Ramaze::Informing)
|
|
15
|
+
puts '', " #{NAME} -- #{description} ".center(70, '-'), ''
|
|
16
|
+
colors = Ramaze::Informer::COLORS
|
|
17
|
+
|
|
18
|
+
until RamazeLogger.log.empty?
|
|
19
|
+
tag, line = RamazeLogger.log.shift
|
|
20
|
+
out = "%6s | %s" % [tag.to_s, line]
|
|
21
|
+
puts out.send(colors[tag])
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
general_error
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def general_error
|
|
30
|
+
puts "", ErrorLog
|
|
31
|
+
ErrorLog.scan(/^\s*(.*?):(\d+): #{NAME} - (.*?)$/) do
|
|
32
|
+
puts "#{ENV['EDITOR'] || 'vim'} #$1 +#$2 # #$3"
|
|
33
|
+
end
|
|
34
|
+
ErrorLog.replace ''
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def handle_summary
|
|
38
|
+
puts "%d tests, %d assertions, %d failures, %d errors" %
|
|
39
|
+
Counter.values_at(:specifications, :requirements, :failed, :errors)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
if defined?(Ramaze::Informing)
|
|
45
|
+
module Ramaze
|
|
46
|
+
class SpecLogger
|
|
47
|
+
include Ramaze::Informing
|
|
48
|
+
include Enumerable
|
|
49
|
+
|
|
50
|
+
attr_accessor :log
|
|
51
|
+
|
|
52
|
+
def initialize
|
|
53
|
+
@log = []
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def each
|
|
57
|
+
@log.each{|e| yield(e) }
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def inform(tag, str)
|
|
61
|
+
@log << [tag, str]
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
module Bacon::PrettyOutput
|
|
67
|
+
RamazeLogger = Ramaze::SpecLogger.new
|
|
68
|
+
Ramaze::Inform.loggers = [RamazeLogger]
|
|
69
|
+
end
|
|
70
|
+
end
|