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