ramaze 0.0.9 → 0.1.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.
Files changed (193) hide show
  1. data/Rakefile +14 -259
  2. data/bin/ramaze +52 -25
  3. data/doc/AUTHORS +6 -0
  4. data/doc/CHANGELOG +1363 -42
  5. data/doc/INSTALL +1 -1
  6. data/doc/README +48 -35
  7. data/doc/README.html +637 -0
  8. data/doc/TODO +7 -16
  9. data/doc/allison/allison.css +6 -7
  10. data/doc/allison/allison.gif +0 -0
  11. data/doc/allison/cache/STYLE +1 -2
  12. data/doc/changes.txt +3375 -0
  13. data/doc/changes.xml +3378 -0
  14. data/doc/meta/announcement.txt +47 -0
  15. data/doc/meta/configuration.txt +179 -0
  16. data/doc/meta/internals.txt +111 -0
  17. data/doc/readme_chunks/features.txt +8 -16
  18. data/doc/readme_chunks/installing.txt +7 -1
  19. data/doc/tutorial/todolist.txt +2 -3
  20. data/examples/blog/main.rb +9 -8
  21. data/examples/blog/public/styles/blog.css +132 -0
  22. data/examples/blog/src/controller.rb +14 -41
  23. data/examples/blog/src/model.rb +12 -13
  24. data/examples/blog/src/view.rb +16 -0
  25. data/examples/blog/template/edit.xhtml +19 -8
  26. data/examples/blog/template/index.xhtml +14 -22
  27. data/examples/blog/template/new.xhtml +18 -5
  28. data/examples/caching.rb +5 -8
  29. data/examples/element.rb +3 -3
  30. data/examples/hello.rb +3 -5
  31. data/examples/simple.rb +4 -7
  32. data/examples/templates/template/external.haml +8 -7
  33. data/examples/templates/template/external.mab +11 -8
  34. data/examples/templates/template_amrita2.rb +4 -4
  35. data/examples/templates/template_erubis.rb +3 -3
  36. data/examples/templates/template_ezamar.rb +1 -2
  37. data/examples/templates/template_haml.rb +24 -23
  38. data/examples/templates/template_liquid.rb +3 -1
  39. data/examples/templates/template_markaby.rb +15 -9
  40. data/examples/todolist/src/element/page.rb +1 -1
  41. data/lib/proto/conf/benchmark.yaml +6 -20
  42. data/lib/proto/conf/debug.yaml +6 -19
  43. data/lib/proto/conf/live.yaml +7 -19
  44. data/lib/proto/conf/silent.yaml +6 -16
  45. data/lib/proto/conf/stage.yaml +6 -18
  46. data/lib/proto/public/error.zmr +2 -2
  47. data/lib/ramaze.rb +34 -72
  48. data/lib/ramaze/adapter.rb +21 -18
  49. data/lib/ramaze/adapter/mongrel.rb +0 -3
  50. data/lib/ramaze/adapter/webrick.rb +6 -6
  51. data/lib/ramaze/cache/memcached.rb +3 -0
  52. data/lib/ramaze/controller.rb +227 -183
  53. data/lib/ramaze/dispatcher.rb +34 -129
  54. data/lib/ramaze/dispatcher/action.rb +28 -0
  55. data/lib/ramaze/dispatcher/error.rb +43 -0
  56. data/lib/ramaze/dispatcher/file.rb +34 -0
  57. data/lib/ramaze/global.rb +89 -48
  58. data/lib/ramaze/helper/aspect.rb +8 -6
  59. data/lib/ramaze/helper/auth.rb +3 -3
  60. data/lib/ramaze/helper/cache.rb +2 -2
  61. data/lib/ramaze/helper/file.rb +14 -0
  62. data/lib/ramaze/helper/inform.rb +36 -0
  63. data/lib/ramaze/helper/link.rb +7 -3
  64. data/lib/ramaze/helper/markaby.rb +30 -0
  65. data/lib/ramaze/helper/redirect.rb +2 -0
  66. data/lib/ramaze/inform.rb +8 -182
  67. data/lib/ramaze/inform/analogger.rb +19 -0
  68. data/lib/ramaze/inform/growl.rb +28 -0
  69. data/lib/ramaze/inform/hub.rb +26 -0
  70. data/lib/ramaze/inform/informer.rb +92 -0
  71. data/lib/ramaze/inform/informing.rb +44 -0
  72. data/lib/ramaze/inform/syslog.rb +27 -0
  73. data/lib/ramaze/inform/xosd.rb +42 -0
  74. data/lib/ramaze/snippets.rb +6 -2
  75. data/lib/ramaze/snippets/object/traits.rb +13 -1
  76. data/lib/ramaze/snippets/ramaze/autoreload.rb +58 -2
  77. data/lib/ramaze/snippets/string/color.rb +27 -0
  78. data/lib/ramaze/snippets/string/each.rb +6 -0
  79. data/lib/ramaze/snippets/struct/fill.rb +15 -0
  80. data/lib/ramaze/template/ezamar.rb +13 -22
  81. data/lib/ramaze/template/ezamar/element.rb +12 -12
  82. data/lib/ramaze/template/liquid.rb +19 -18
  83. data/lib/ramaze/template/markaby.rb +37 -58
  84. data/lib/ramaze/tool/localize.rb +128 -0
  85. data/lib/ramaze/tool/tidy.rb +51 -21
  86. data/lib/ramaze/trinity.rb +3 -3
  87. data/lib/ramaze/trinity/request.rb +41 -23
  88. data/lib/ramaze/trinity/response.rb +10 -5
  89. data/lib/ramaze/trinity/session.rb +17 -3
  90. data/lib/ramaze/version.rb +2 -2
  91. data/rake_tasks/conf.rake +56 -0
  92. data/rake_tasks/gem.rake +44 -0
  93. data/rake_tasks/maintaince.rake +187 -0
  94. data/spec/all.rb +32 -0
  95. data/spec/examples/caching.rb +19 -0
  96. data/spec/examples/element.rb +15 -0
  97. data/spec/examples/hello.rb +11 -0
  98. data/spec/examples/simple.rb +51 -0
  99. data/spec/examples/templates/template_amrita2.rb +14 -0
  100. data/spec/examples/templates/template_erubis.rb +21 -0
  101. data/spec/examples/templates/template_ezamar.rb +22 -0
  102. data/spec/examples/templates/template_haml.rb +23 -0
  103. data/spec/examples/templates/template_liquid.rb +24 -0
  104. data/spec/examples/templates/template_markaby.rb +21 -0
  105. data/spec/helper.rb +81 -0
  106. data/spec/{spec_helper_context.rb → helper/context.rb} +1 -1
  107. data/spec/helper/layout.rb +55 -0
  108. data/spec/helper/mock_http.rb +66 -0
  109. data/spec/{spec_helper_requester.rb → helper/requester.rb} +0 -6
  110. data/spec/{spec_helper_simple_http.rb → helper/simple_http.rb} +57 -57
  111. data/spec/helper/wrap.rb +193 -0
  112. data/spec/{adapter_spec.rb → ramaze/adapter.rb} +7 -5
  113. data/spec/{tc_adapter_mongrel.rb → ramaze/adapter/mongrel.rb} +2 -2
  114. data/spec/{tc_adapter_webrick.rb → ramaze/adapter/webrick.rb} +2 -2
  115. data/spec/{tc_cache.rb → ramaze/cache.rb} +16 -16
  116. data/spec/ramaze/conf/locale_de.yaml +6 -0
  117. data/spec/ramaze/conf/locale_en.yaml +6 -0
  118. data/spec/ramaze/controller.rb +184 -0
  119. data/spec/ramaze/controller/template/greet.xhtml +1 -0
  120. data/spec/ramaze/controller/template_resolving.rb +54 -0
  121. data/spec/ramaze/dependencies.rb +16 -0
  122. data/spec/{tc_element.rb → ramaze/element.rb} +21 -19
  123. data/spec/ramaze/error.rb +64 -0
  124. data/spec/{tc_gestalt.rb → ramaze/gestalt.rb} +10 -10
  125. data/spec/{tc_global.rb → ramaze/global.rb} +7 -7
  126. data/spec/{tc_helper_aspect.rb → ramaze/helper/aspect.rb} +22 -14
  127. data/spec/{tc_helper_auth.rb → ramaze/helper/auth.rb} +9 -7
  128. data/spec/{tc_helper_cache.rb → ramaze/helper/cache.rb} +14 -24
  129. data/spec/{tc_helper_feed.rb → ramaze/helper/feed.rb} +12 -12
  130. data/spec/ramaze/helper/file.rb +17 -0
  131. data/spec/{tc_helper_flash.rb → ramaze/helper/flash.rb} +16 -17
  132. data/spec/{tc_helper_form.rb → ramaze/helper/form.rb} +25 -26
  133. data/spec/{tc_helper_link.rb → ramaze/helper/link.rb} +9 -9
  134. data/spec/{tc_helper_redirect.rb → ramaze/helper/redirect.rb} +11 -10
  135. data/spec/{tc_helper_stack.rb → ramaze/helper/stack.rb} +10 -11
  136. data/spec/ramaze/inform/informer.rb +40 -0
  137. data/spec/ramaze/inform/syslog.rb +10 -0
  138. data/spec/ramaze/localize.rb +40 -0
  139. data/spec/ramaze/morpher.rb +82 -0
  140. data/spec/ramaze/params.rb +124 -0
  141. data/spec/{public → ramaze/public}/error404.xhtml +0 -0
  142. data/spec/{public → ramaze/public}/favicon.ico +0 -0
  143. data/spec/{public → ramaze/public}/ramaze.png +0 -0
  144. data/spec/{public → ramaze/public}/test_download.css +0 -0
  145. data/spec/ramaze/request.rb +129 -0
  146. data/spec/{tc_request_mongrel.rb → ramaze/request/mongrel.rb} +2 -2
  147. data/spec/{tc_request_webrick.rb → ramaze/request/webrick.rb} +1 -1
  148. data/spec/{tc_session.rb → ramaze/session.rb} +18 -18
  149. data/spec/{tc_store.rb → ramaze/store/default.rb} +10 -10
  150. data/spec/{tc_store_yaml.rb → ramaze/store/yaml.rb} +9 -9
  151. data/spec/ramaze/template.rb +86 -0
  152. data/spec/{tc_template_amrita2.rb → ramaze/template/amrita2.rb} +5 -5
  153. data/spec/{template → ramaze/template}/amrita2/data.amrita +0 -0
  154. data/spec/{template → ramaze/template}/amrita2/index.amrita +0 -0
  155. data/spec/{template → ramaze/template}/amrita2/sum.amrita +0 -0
  156. data/spec/{tc_template_erubis.rb → ramaze/template/erubis.rb} +9 -9
  157. data/spec/{template → ramaze/template}/erubis/sum.rhtml +0 -0
  158. data/spec/ramaze/template/ezamar.rb +62 -0
  159. data/spec/{template → ramaze/template}/ezamar/another/long/action.zmr +0 -0
  160. data/spec/{template → ramaze/template}/ezamar/combined.zmr +0 -0
  161. data/spec/{template → ramaze/template}/ezamar/file_only.zmr +0 -0
  162. data/spec/{template → ramaze/template}/ezamar/index.zmr +0 -0
  163. data/spec/ramaze/template/ezamar/nested.zmr +1 -0
  164. data/spec/{template → ramaze/template}/ezamar/some__long__action.zmr +0 -0
  165. data/spec/{template → ramaze/template}/ezamar/sum.zmr +0 -0
  166. data/spec/{tc_template_haml.rb → ramaze/template/haml.rb} +7 -7
  167. data/spec/{template → ramaze/template}/haml/index.haml +0 -0
  168. data/spec/{template → ramaze/template}/haml/with_vars.haml +0 -0
  169. data/spec/{tc_template_liquid.rb → ramaze/template/liquid.rb} +7 -7
  170. data/spec/{template → ramaze/template}/liquid/index.liquid +0 -0
  171. data/spec/{template → ramaze/template}/liquid/products.liquid +0 -0
  172. data/spec/ramaze/template/markaby.rb +59 -0
  173. data/spec/{template → ramaze/template}/markaby/external.mab +0 -0
  174. data/spec/{template → ramaze/template}/markaby/sum.mab +0 -0
  175. data/spec/ramaze/template/ramaze/external.test +1 -0
  176. data/spec/{tc_tidy.rb → ramaze/tidy.rb} +3 -3
  177. metadata +145 -81
  178. data/examples/blog/public/screen.css +0 -106
  179. data/examples/blog/src/element.rb +0 -58
  180. data/examples/blog/template/view.xhtml +0 -15
  181. data/examples/blog/test/tc_entry.rb +0 -18
  182. data/lib/proto/public/404.jpg +0 -0
  183. data/spec/request_tc_helper.rb +0 -135
  184. data/spec/spec_all.rb +0 -118
  185. data/spec/spec_helper.rb +0 -66
  186. data/spec/tc_controller.rb +0 -49
  187. data/spec/tc_dependencies.rb +0 -13
  188. data/spec/tc_error.rb +0 -43
  189. data/spec/tc_morpher.rb +0 -88
  190. data/spec/tc_params.rb +0 -125
  191. data/spec/tc_template_ezamar.rb +0 -64
  192. data/spec/tc_template_markaby.rb +0 -72
  193. data/spec/template/ezamar/nested.zmr +0 -1
@@ -0,0 +1,64 @@
1
+ # Copyright (c) 2006 Michael Fellinger m.fellinger@gmail.com
2
+ # All files in this distribution are subject to the terms of the Ruby license.
3
+
4
+ require 'spec/helper'
5
+ require 'open-uri'
6
+
7
+ class TCErrorController < Ramaze::Controller
8
+ map :/
9
+ trait :public => 'spec/ramaze/public'
10
+
11
+ def index
12
+ self.class.name
13
+ end
14
+
15
+ def erroring
16
+ blah
17
+ end
18
+ end
19
+
20
+ describe "Error" do
21
+ ramaze :error_page => true
22
+
23
+ describe "Throwing Error" do
24
+ it 'erroring' do
25
+ response = get('/erroring')
26
+ response.status.should == 500
27
+ regex = %r(undefined local variable or method `blah' for .*?TCErrorController)
28
+ response.body.should =~ regex
29
+ end
30
+ end
31
+
32
+ describe "No Action" do
33
+ it 'default' do
34
+ response = get('/foobar')
35
+ response.status.should == 404
36
+ response.body.should =~ %r(No Action found for `/foobar' on TCErrorController)
37
+ end
38
+
39
+ it "No Action custom" do
40
+ Ramaze::Dispatcher.trait[:handle_error] = { Exception => [500, '/error'] }
41
+
42
+ response = get('/illegal')
43
+ response.status.should == 500
44
+ response.body.should =~ %r(No Action found for `/illegal' on TCErrorController)
45
+ end
46
+ end
47
+
48
+ it "No Controller" do
49
+ Ramaze::Global.should_receive(:mapping).twice.and_return{ {} }
50
+ Ramaze::Dispatcher.trait[:handle_error].should_receive(:[]).twice.
51
+ with(Ramaze::Error::NoController).and_return{ [500, '/error'] }
52
+ response = get('/illegal')
53
+ response.status.should == 500
54
+ response.body.should =~ %r(No Controller found for `/error')
55
+ end
56
+
57
+ it "Custom Static" do
58
+ Ramaze::Dispatcher.trait[:handle_error].should_receive(:[]).twice.
59
+ with(Ramaze::Error::NoAction).and_return{ [404, '/error404'] }
60
+ response = get('/foo')
61
+ response.status.should == 404
62
+ response.body.should == '404 - not found'
63
+ end
64
+ end
@@ -1,28 +1,28 @@
1
1
  # Copyright (c) 2006 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
- require 'spec/spec_helper'
4
+ require 'spec/helper'
5
5
 
6
- context "Gestalt" do
6
+ describe "Gestalt" do
7
7
  def gestalt &block
8
8
  Ramaze::Gestalt.new(&block).to_s
9
9
  end
10
10
 
11
- specify "simple tag" do
11
+ it "simple tag" do
12
12
  gestalt{ br }.should == '<br />'
13
13
  gestalt{ p }.should == '<p />'
14
14
  end
15
15
 
16
- specify "open close tags" do
16
+ it "open close tags" do
17
17
  gestalt{ p{} }.should == '<p></p>'
18
18
  gestalt{ div{} }.should == '<div></div>'
19
19
  end
20
20
 
21
- specify "nested tags" do
21
+ it "nested tags" do
22
22
  gestalt{ p{ br } }.should == '<p><br /></p>'
23
23
  end
24
24
 
25
- specify "deep nested tags" do
25
+ it "deep nested tags" do
26
26
  gestalt{ p do
27
27
  div do
28
28
  ol do
@@ -33,7 +33,7 @@ context "Gestalt" do
33
33
  }.should == '<p><div><ol><li /></ol></div></p>'
34
34
  end
35
35
 
36
- specify "deep nested tags with repetition" do
36
+ it "deep nested tags with repetition" do
37
37
  gestalt{ p do
38
38
  div do
39
39
  ol do
@@ -49,7 +49,7 @@ context "Gestalt" do
49
49
  }.should == '<p><div><ol><li /><li /></ol><ol><li /><li /></ol></div></p>'
50
50
  end
51
51
 
52
- specify "deep nested tags with strings" do
52
+ it "deep nested tags with strings" do
53
53
  gestalt{
54
54
  p do
55
55
  div do
@@ -59,7 +59,7 @@ context "Gestalt" do
59
59
  }.should == '<p><div>Hello, World</div></p>'
60
60
  end
61
61
 
62
- specify "some simple example" do
62
+ it "some simple example" do
63
63
  gestalt{
64
64
  html do
65
65
  head do
@@ -76,7 +76,7 @@ context "Gestalt" do
76
76
  }.should == '<html><head><title>Hello World</title></head><body><h1>Hello World</h1></body></html>'
77
77
  end
78
78
 
79
- specify "now some ruby inside" do
79
+ it "now some ruby inside" do
80
80
  gestalt{
81
81
  table do
82
82
  tr do
@@ -1,15 +1,15 @@
1
1
  # Copyright (c) 2006 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
- require 'spec/spec_helper'
4
+ require 'spec/helper'
5
5
 
6
- context "Ramaze::Global" do
7
- specify "just simple assignment and retrive" do
6
+ describe "Ramaze::Global" do
7
+ it "just simple assignment and retrive" do
8
8
  Ramaze::Global.some = :xxx
9
9
  Ramaze::Global.some.should == :xxx
10
10
  end
11
11
 
12
- specify "setup" do
12
+ it "setup" do
13
13
  Ramaze::Global.setup :a => :b
14
14
  Ramaze::Global.a.should == :b
15
15
  Ramaze::Global.some.should == :xxx
@@ -17,17 +17,17 @@ context "Ramaze::Global" do
17
17
  Ramaze::Global.a.should == :c
18
18
  end
19
19
 
20
- specify "more neat stuff" do
20
+ it "more neat stuff" do
21
21
  Ramaze::Global.update :a => :d, :foo => :bar
22
22
  Ramaze::Global.a.should == :c
23
23
  Ramaze::Global.foo.should == :bar
24
24
  end
25
25
 
26
- specify "values_at" do
26
+ it "values_at" do
27
27
  Ramaze::Global.values_at(:a, :foo).should == [:c, :bar]
28
28
  end
29
29
 
30
- specify "getting thready" do
30
+ it "getting thready" do
31
31
  Ramaze::Global[:i] = 0
32
32
  Thread.main[:i] = 0
33
33
 
@@ -1,9 +1,10 @@
1
1
  # Copyright (c) 2006 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
- require 'spec/spec_helper'
4
+ require 'spec/helper'
5
5
 
6
6
  class TCAspectController < Ramaze::Controller
7
+ map '/'
7
8
  helper :aspect
8
9
 
9
10
  def pre_aspect() '<aspect>' end
@@ -25,6 +26,9 @@ class TCAspectController < Ramaze::Controller
25
26
  end
26
27
 
27
28
  class TCAspectAllController < Ramaze::Controller
29
+ map '/all'
30
+ trait :foo => :bar
31
+
28
32
  helper :aspect
29
33
 
30
34
  def pre_aspect() '<pre>' end
@@ -37,27 +41,31 @@ class TCAspectAllController < Ramaze::Controller
37
41
  post :all, :post_aspect
38
42
  end
39
43
 
40
- context "Aspect" do
41
- ramaze(:mapping => {'/' => TCAspectController, '/all' => TCAspectAllController})
44
+ describe "Aspect" do
45
+ ramaze(:error_page => false)
46
+
47
+ it "shouldn't overwrite traits on inclusion" do
48
+ TCAspectAllController.trait[:foo].should == :bar
49
+ end
42
50
 
43
- specify "pre" do
44
- get('/test_pre').should == '<aspect>test pre'
51
+ it "pre" do
52
+ get('/test_pre').body.should == '<aspect>test pre'
45
53
  end
46
54
 
47
- specify "post" do
48
- get('/test_post').should == 'test post</aspect>'
55
+ it "post" do
56
+ get('/test_post').body.should == 'test post</aspect>'
49
57
  end
50
58
 
51
- specify "pre and post" do
52
- get('/test').should == '<aspect>test</aspect>'
59
+ it "pre and post" do
60
+ get('/test').body.should == '<aspect>test</aspect>'
53
61
  end
54
62
 
55
- specify "wrap" do
56
- get('/test_wrap').should == '<br />test wrap<br />'
63
+ it "wrap" do
64
+ get('/test_wrap').body.should == '<br />test wrap<br />'
57
65
  end
58
66
 
59
- specify ":all" do
60
- get('/all/test_all_first').should == '<pre>first</pre>'
61
- get('/all/test_all_second').should == '<pre>second</pre>'
67
+ it ":all" do
68
+ get('/all/test_all_first').body.should == '<pre>first</pre>'
69
+ get('/all/test_all_second').body.should == '<pre>second</pre>'
62
70
  end
63
71
  end
@@ -1,9 +1,10 @@
1
1
  # Copyright (c) 2006 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
- require 'spec/spec_helper'
4
+ require 'spec/helper'
5
5
 
6
6
  class TCAuthHelperController < Ramaze::Controller
7
+ map '/'
7
8
  helper :auth
8
9
 
9
10
  def index
@@ -21,12 +22,14 @@ class TCAuthHelperController < Ramaze::Controller
21
22
  end
22
23
 
23
24
  class TCAuthHashHelperController < TCAuthHelperController
25
+ map '/hash'
24
26
  trait :auth_table => {
25
27
  'manveru' => '5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8'
26
28
  }
27
29
  end
28
30
 
29
31
  class TCAuthMethodHelperController < TCAuthHelperController
32
+ map '/method'
30
33
  trait :auth_table => :auth_table
31
34
 
32
35
  def auth_table
@@ -35,22 +38,21 @@ class TCAuthMethodHelperController < TCAuthHelperController
35
38
  end
36
39
 
37
40
  class TCAuthLambdaHelperController < TCAuthHelperController
41
+ map '/lambda'
38
42
  trait :auth_table => lambda{
39
43
  { 'manveru' => '5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8' }
40
44
  }
41
45
  end
42
46
 
43
- context "StackHelper" do
44
- ramaze
45
- [
46
- TCAuthHashHelperController,
47
+ describe "StackHelper" do
48
+ ramaze :adapter => :webrick
49
+ [ TCAuthHashHelperController,
47
50
  TCAuthMethodHelperController,
48
51
  TCAuthLambdaHelperController
49
52
  ].each do |controller|
50
- ctx = Context.new('/', Ramaze::Global.mapping.invert[controller])
51
53
 
52
54
  specify controller.to_s do
53
- Context.new('/', Ramaze::Global.mapping.invert[controller]) do
55
+ browser('/', Ramaze::Global.mapping.invert[controller]) do
54
56
  get('/secured').should == ''
55
57
  post('/login', 'username' => 'manveru', 'password' => 'password')
56
58
  get('/secured').should == 'Secret content'
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) 2006 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
- require 'spec/spec_helper'
4
+ require 'spec/helper'
5
5
 
6
6
  class TCCacheHelperController < Ramaze::Controller
7
7
  helper :cache
@@ -35,45 +35,35 @@ class TCCacheHelperController < Ramaze::Controller
35
35
  end
36
36
  end
37
37
 
38
- context "CacheHelper" do
38
+ describe "CacheHelper" do
39
39
  ramaze(:mapping => {'/' => TCCacheHelperController})
40
40
 
41
- specify "testrun" do
42
- get('/').should == 'TCCacheHelperController'
41
+ it "testrun" do
42
+ get('/').body.should == 'TCCacheHelperController'
43
43
  end
44
44
 
45
- def cached_value() get('/cached_value') end
46
- def uncache_value() get('/uncache_value') end
47
- def cached_action() get('/cached_action') end
48
- def uncache_actions() get('/uncache_actions') end
49
-
50
- specify "cached value" do
51
- uncached = cached_value
45
+ def cached_value() get('/cached_value').body end
46
+ def uncache_value() get('/uncache_value').body end
47
+ def cached_action() get('/cached_action').body end
48
+ def uncache_actions() get('/uncache_actions').body end
52
49
 
50
+ it "cached value" do
53
51
  3.times do
54
- uncached.should == cached_value
52
+ lambda{ cached_value }.should_not change{ cached_value }
55
53
  end
56
54
 
57
- old = cached_value
58
-
59
55
  3.times do
60
- uncache_value
61
- cached_value.should_not == old
56
+ lambda{ uncache_value }.should change{ cached_value }
62
57
  end
63
58
  end
64
59
 
65
- specify "cached action" do
66
- uncached = cached_action
67
-
60
+ it "cached action" do
68
61
  3.times do
69
- cached_action.should == uncached
62
+ lambda{ cached_action }.should_not change{ cached_action }
70
63
  end
71
64
 
72
- old = cached_action
73
-
74
65
  3.times do
75
- uncache_actions
76
- cached_action.should_not == old
66
+ lambda{ uncache_actions }.should change{ cached_action }
77
67
  end
78
68
  end
79
69
  end
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) 2006 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
- require 'spec/spec_helper'
4
+ require 'spec/helper'
5
5
 
6
6
  testcase_requires 'hpricot'
7
7
 
@@ -44,11 +44,11 @@ class User < With
44
44
  xml_accessor :books
45
45
  end
46
46
 
47
- context "ReFeed" do
48
- context "User" do
47
+ describe "ReFeed" do
48
+ describe "User" do
49
49
  user = User.with :name => 'manveru', :email => 'foo@bar.com'
50
50
 
51
- specify "to_xml" do
51
+ it "to_xml" do
52
52
  xml = ( user.to_xml.hpricot/:user )
53
53
 
54
54
  xml.size.should == 1
@@ -57,11 +57,11 @@ context "ReFeed" do
57
57
  end
58
58
  end
59
59
 
60
- context "Book" do
60
+ describe "Book" do
61
61
  book = Book.with :title => 'foo', :content => 'bar',
62
62
  :isbn => 123456789012, :description => 'The Best Foo in the world!'
63
63
 
64
- specify "to_xml" do
64
+ it "to_xml" do
65
65
  xml = ( book.to_xml.hpricot/:book )
66
66
 
67
67
  xml.size.should == 1
@@ -74,11 +74,11 @@ context "ReFeed" do
74
74
  end
75
75
  end
76
76
 
77
- context "Book and User" do
77
+ describe "Book and User" do
78
78
  user = User.with :name => 'manveru', :email => 'foo@bar.com'
79
79
  book = Book.with :title => 'foo', :content => 'bar', :author => user
80
80
 
81
- specify "to_xml" do
81
+ it "to_xml" do
82
82
  xml_book = ( book.to_xml.hpricot/:book )
83
83
  xml_user = xml_book.at(:user)
84
84
 
@@ -90,13 +90,13 @@ context "ReFeed" do
90
90
  end
91
91
  end
92
92
 
93
- context "User and books" do
93
+ describe "User and books" do
94
94
  book1 = Book.with :title => 'foo', :content => 'bar'
95
95
  book2 = Book.with :title => 'foz', :content => 'baz'
96
96
  user = User.with :name => 'manveru', :email => 'foo@bar.com',
97
97
  :books => [book1, book2]
98
98
 
99
- specify "to_xml" do
99
+ it "to_xml" do
100
100
  xml = ( user.to_xml.hpricot/:user )
101
101
  books = ( xml/:book )
102
102
  first = books.find{|a| a.at('title').inner_html == book1.title }
@@ -115,10 +115,10 @@ context "ReFeed" do
115
115
  end
116
116
  end
117
117
 
118
- context "User from XML" do
118
+ describe "User from XML" do
119
119
  user = User.with :name => 'manveru', :email => 'foo@bar.com'
120
120
 
121
- specify "from_xml" do
121
+ it "from_xml" do
122
122
  new_user = User.from_xml(user.to_xml)
123
123
  new_user.name.should == user.name
124
124
  new_user.email.should == user.email
@@ -0,0 +1,17 @@
1
+ require 'spec/helper'
2
+
3
+ class TCFileHelper < Ramaze::Controller
4
+ map '/'
5
+
6
+ def index
7
+ send_file(__FILE__)
8
+ end
9
+ end
10
+
11
+ describe 'FileHelper' do
12
+ ramaze
13
+
14
+ it 'serving a file' do
15
+ get('/').body.strip.should == File.read(__FILE__).strip
16
+ end
17
+ end