ramaze 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (195) hide show
  1. data/Rakefile +4 -12
  2. data/bin/ramaze +95 -171
  3. data/doc/CHANGELOG +387 -4
  4. data/doc/README +81 -13
  5. data/doc/meta/announcement.txt +51 -8
  6. data/doc/meta/configuration.txt +17 -34
  7. data/doc/meta/internals.txt +34 -4
  8. data/doc/migrate/1110_to_1111.txt +131 -0
  9. data/doc/readme_chunks/features.txt +81 -12
  10. data/doc/readme_chunks/installing.txt +0 -1
  11. data/doc/tutorial/todolist.html +293 -65
  12. data/doc/tutorial/{todolist.txt → todolist.mkd} +251 -51
  13. data/examples/blog/main.rb +1 -1
  14. data/examples/blog/src/model.rb +0 -1
  15. data/examples/hello.rb +2 -5
  16. data/examples/templates/template/external.haml +5 -5
  17. data/examples/templates/template/external.liquid +1 -1
  18. data/examples/templates/template/external.mab +8 -8
  19. data/examples/templates/template/external.rem +30 -0
  20. data/examples/templates/template/external.rhtml +6 -7
  21. data/examples/templates/template/external.zmr +13 -9
  22. data/examples/templates/template_amrita2.rb +8 -8
  23. data/examples/templates/template_erubis.rb +11 -11
  24. data/examples/templates/template_ezamar.rb +9 -11
  25. data/examples/templates/template_haml.rb +13 -13
  26. data/examples/templates/template_liquid.rb +10 -10
  27. data/examples/templates/template_markaby.rb +13 -10
  28. data/examples/templates/template_remarkably.rb +59 -0
  29. data/examples/todolist/main.rb +1 -7
  30. data/examples/todolist/src/controller/main.rb +26 -13
  31. data/examples/todolist/src/element/page.rb +5 -0
  32. data/examples/whywiki/main.rb +1 -1
  33. data/lib/proto/main.rb +0 -8
  34. data/lib/proto/public/css/ramaze_error.css +12 -4
  35. data/lib/proto/public/error.zmr +6 -25
  36. data/lib/ramaze.rb +35 -245
  37. data/lib/ramaze/action.rb +21 -0
  38. data/lib/ramaze/adapter.rb +94 -29
  39. data/lib/ramaze/adapter/base.rb +57 -0
  40. data/lib/ramaze/adapter/mongrel.rb +12 -19
  41. data/lib/ramaze/adapter/webrick.rb +21 -20
  42. data/lib/ramaze/cache.rb +47 -3
  43. data/lib/ramaze/cache/memcached.rb +22 -0
  44. data/lib/ramaze/cache/yaml_store.rb +19 -0
  45. data/lib/ramaze/controller.rb +47 -271
  46. data/lib/ramaze/controller/error.rb +43 -0
  47. data/lib/ramaze/controller/render.rb +90 -0
  48. data/lib/ramaze/controller/resolve.rb +147 -0
  49. data/lib/ramaze/dispatcher.rb +41 -9
  50. data/lib/ramaze/dispatcher/file.rb +1 -1
  51. data/lib/ramaze/global.rb +73 -158
  52. data/lib/ramaze/global/dsl.rb +29 -0
  53. data/lib/ramaze/global/globalstruct.rb +90 -0
  54. data/lib/ramaze/helper.rb +1 -1
  55. data/lib/ramaze/helper/aspect.rb +39 -179
  56. data/lib/ramaze/helper/cache.rb +8 -9
  57. data/lib/ramaze/helper/cgi.rb +23 -0
  58. data/lib/ramaze/helper/file.rb +3 -0
  59. data/lib/ramaze/helper/inform.rb +3 -0
  60. data/lib/ramaze/helper/link.rb +56 -63
  61. data/lib/ramaze/helper/nitroform.rb +4 -0
  62. data/lib/ramaze/helper/redirect.rb +1 -1
  63. data/lib/ramaze/inform.rb +6 -2
  64. data/lib/ramaze/inform/analogger.rb +5 -1
  65. data/lib/ramaze/inform/hub.rb +1 -1
  66. data/lib/ramaze/inform/informing.rb +7 -0
  67. data/lib/ramaze/snippets/kernel/aquire.rb +2 -0
  68. data/lib/ramaze/snippets/kernel/constant.rb +2 -0
  69. data/lib/ramaze/snippets/kernel/pretty_inspect.rb +2 -0
  70. data/lib/ramaze/snippets/object/traits.rb +4 -0
  71. data/lib/ramaze/snippets/openstruct/temp.rb +3 -0
  72. data/lib/ramaze/snippets/string/DIVIDE.rb +2 -0
  73. data/lib/ramaze/snippets/string/camel_case.rb +2 -0
  74. data/lib/ramaze/snippets/string/color.rb +2 -0
  75. data/lib/ramaze/snippets/string/each.rb +2 -0
  76. data/lib/ramaze/snippets/string/snake_case.rb +3 -0
  77. data/lib/ramaze/snippets/struct/fill.rb +8 -2
  78. data/lib/ramaze/snippets/struct/values_at.rb +16 -0
  79. data/lib/ramaze/snippets/symbol/to_proc.rb +3 -0
  80. data/lib/ramaze/sourcereload.rb +89 -0
  81. data/lib/ramaze/template.rb +21 -12
  82. data/lib/ramaze/template/amrita2.rb +6 -6
  83. data/lib/ramaze/template/erubis.rb +4 -9
  84. data/lib/ramaze/template/ezamar.rb +13 -57
  85. data/lib/ramaze/template/ezamar/element.rb +10 -12
  86. data/lib/ramaze/template/ezamar/engine.rb +40 -101
  87. data/lib/ramaze/template/ezamar/morpher.rb +3 -3
  88. data/lib/ramaze/template/haml.rb +3 -6
  89. data/lib/ramaze/template/liquid.rb +4 -9
  90. data/lib/ramaze/template/markaby.rb +16 -22
  91. data/lib/ramaze/template/remarkably.rb +28 -0
  92. data/lib/ramaze/tool/mime.rb +2 -0
  93. data/lib/ramaze/tool/record.rb +6 -0
  94. data/lib/ramaze/trinity/request.rb +44 -54
  95. data/lib/ramaze/trinity/response.rb +1 -1
  96. data/lib/ramaze/trinity/session.rb +15 -37
  97. data/lib/ramaze/version.rb +1 -1
  98. data/rake_tasks/gem.rake +2 -2
  99. data/rake_tasks/maintaince.rake +42 -1
  100. data/rake_tasks/spec.rake +45 -0
  101. data/spec/examples/caching.rb +1 -1
  102. data/spec/examples/simple.rb +1 -1
  103. data/spec/examples/templates/template_amrita2.rb +1 -0
  104. data/spec/examples/templates/template_erubis.rb +2 -1
  105. data/spec/examples/templates/template_ezamar.rb +1 -1
  106. data/spec/examples/templates/template_haml.rb +2 -1
  107. data/spec/examples/templates/template_liquid.rb +2 -1
  108. data/spec/examples/templates/template_markaby.rb +2 -1
  109. data/spec/examples/templates/template_remarkably.rb +22 -0
  110. data/spec/examples/todolist.rb +125 -0
  111. data/spec/helper.rb +2 -23
  112. data/spec/helper/minimal.rb +20 -0
  113. data/spec/helper/mock_http.rb +24 -30
  114. data/spec/helper/simple_http.rb +2 -2
  115. data/spec/helper/wrap.rb +6 -9
  116. data/spec/ramaze/adapter.rb +1 -1
  117. data/spec/ramaze/adapter/record.rb +31 -0
  118. data/spec/ramaze/cache.rb +41 -54
  119. data/spec/ramaze/controller.rb +121 -137
  120. data/spec/ramaze/controller/template/list.xhtml +1 -0
  121. data/spec/ramaze/controller/template/other/greet/other.xhtml +1 -0
  122. data/spec/ramaze/controller/template_resolving.rb +27 -3
  123. data/spec/ramaze/element.rb +11 -7
  124. data/spec/ramaze/error.rb +1 -1
  125. data/spec/ramaze/gestalt.rb +2 -0
  126. data/spec/ramaze/helper/aspect.rb +30 -21
  127. data/spec/ramaze/helper/auth.rb +1 -1
  128. data/spec/ramaze/helper/cache.rb +2 -1
  129. data/spec/ramaze/helper/form.rb +14 -11
  130. data/spec/ramaze/helper/link.rb +18 -41
  131. data/spec/ramaze/localize.rb +29 -2
  132. data/spec/ramaze/morpher.rb +23 -12
  133. data/spec/ramaze/params.rb +46 -24
  134. data/spec/ramaze/request.rb +6 -2
  135. data/spec/ramaze/store/yaml.rb +5 -0
  136. data/spec/ramaze/template.rb +22 -27
  137. data/spec/ramaze/template/amrita2.rb +1 -2
  138. data/spec/ramaze/template/erubis.rb +1 -1
  139. data/spec/ramaze/template/ezamar.rb +1 -2
  140. data/spec/ramaze/template/haml.rb +2 -2
  141. data/spec/ramaze/template/haml/with_vars.haml +1 -1
  142. data/spec/ramaze/template/liquid.rb +1 -1
  143. data/spec/ramaze/template/markaby.rb +1 -1
  144. data/spec/ramaze/template/remarkably.rb +56 -0
  145. data/spec/ramaze/template/remarkably/external.rem +8 -0
  146. data/spec/ramaze/template/remarkably/sum.rem +1 -0
  147. metadata +38 -63
  148. data/doc/README.html +0 -637
  149. data/doc/allison/LICENSE +0 -184
  150. data/doc/allison/README +0 -37
  151. data/doc/allison/allison.css +0 -299
  152. data/doc/allison/allison.gif +0 -0
  153. data/doc/allison/allison.js +0 -307
  154. data/doc/allison/allison.rb +0 -287
  155. data/doc/allison/cache/BODY +0 -588
  156. data/doc/allison/cache/CLASS_INDEX +0 -4
  157. data/doc/allison/cache/CLASS_PAGE +0 -1
  158. data/doc/allison/cache/FILE_INDEX +0 -4
  159. data/doc/allison/cache/FILE_PAGE +0 -1
  160. data/doc/allison/cache/FONTS +0 -1
  161. data/doc/allison/cache/FR_INDEX_BODY +0 -1
  162. data/doc/allison/cache/IMGPATH +0 -1
  163. data/doc/allison/cache/INDEX +0 -1
  164. data/doc/allison/cache/JAVASCRIPT +0 -307
  165. data/doc/allison/cache/METHOD_INDEX +0 -4
  166. data/doc/allison/cache/METHOD_LIST +0 -1
  167. data/doc/allison/cache/SRC_PAGE +0 -1
  168. data/doc/allison/cache/STYLE +0 -321
  169. data/doc/allison/cache/URL +0 -1
  170. data/doc/changes.txt +0 -3375
  171. data/doc/changes.xml +0 -3378
  172. data/examples/todolist/conf/benchmark.yaml +0 -35
  173. data/examples/todolist/conf/debug.yaml +0 -34
  174. data/examples/todolist/conf/live.yaml +0 -33
  175. data/examples/todolist/conf/silent.yaml +0 -31
  176. data/examples/todolist/conf/stage.yaml +0 -33
  177. data/examples/todolist/public/css/coderay.css +0 -105
  178. data/examples/todolist/public/css/ramaze_error.css +0 -42
  179. data/lib/proto/conf/benchmark.yaml +0 -21
  180. data/lib/proto/conf/debug.yaml +0 -21
  181. data/lib/proto/conf/live.yaml +0 -21
  182. data/lib/proto/conf/silent.yaml +0 -21
  183. data/lib/proto/conf/stage.yaml +0 -21
  184. data/lib/proto/public/css/coderay.css +0 -105
  185. data/lib/ramaze/http_status.rb +0 -66
  186. data/lib/ramaze/snippets/hash/keys_to_sym.rb +0 -19
  187. data/lib/ramaze/snippets/kernel/method.rb +0 -26
  188. data/lib/ramaze/snippets/method/name.rb +0 -22
  189. data/lib/ramaze/snippets/ramaze/autoreload.rb +0 -135
  190. data/lib/ramaze/snippets/rdoc/usage_no_exit.rb +0 -65
  191. data/spec/all.rb +0 -32
  192. data/spec/ramaze/conf/locale_de.yaml +0 -6
  193. data/spec/ramaze/conf/locale_en.yaml +0 -6
  194. data/spec/ramaze/dependencies.rb +0 -16
  195. data/spec/ramaze/global.rb +0 -44
@@ -1,66 +0,0 @@
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
- module Ramaze
5
- STATUS_CODE = {
6
- # 1xx Informational (Request received, continuing process.)
7
-
8
- :continue => 100,
9
- :switching_protocols => 101,
10
-
11
- # 2xx Success (The action was successfully received, understood, and accepted.)
12
-
13
- :ok => 200,
14
- :created => 201,
15
- :accepted => 202,
16
- :non_authorative_information => 203,
17
- :no_content => 204,
18
- :resent_content => 205,
19
- :partial_content => 206,
20
- :multi_status => 207,
21
-
22
- # 3xx Redirection (The client must take additional action to complete the request.)
23
-
24
- :multiple_choices => 300,
25
- :moved_permamently => 301,
26
- :moved_temporarily => 302,
27
- :found => 302,
28
- :see_other => 303,
29
- :not_modified => 304,
30
- :use_proxy => 305,
31
- :switch_proxy => 306,
32
- :temporary_redirect => 307,
33
-
34
- # 4xx Client Error (The request contains bad syntax or cannot be fulfilled.)
35
-
36
- :bad_request => 400,
37
- :unauthorized => 401,
38
- :payment_required => 402,
39
- :forbidden => 403,
40
- :not_found => 404,
41
- :method_not_allowed => 405,
42
- :not_aceptable => 406,
43
- :proxy_authentication_required => 407,
44
- :request_timeout => 408,
45
- :conflict => 409,
46
- :gone => 410,
47
- :length_required => 411,
48
- :precondition_failed => 412,
49
- :request_entity_too_large => 413,
50
- :request_uri_too_long => 414,
51
- :unsupported_media_type => 415,
52
- :requested_range_not_satisfiable => 416,
53
- :expectation_failed => 417,
54
- :retry_with => 449,
55
-
56
- # 5xx Server Error (The server failed to fulfill an apparently valid request.)
57
-
58
- :internal_server_error => 500,
59
- :not_implemented => 501,
60
- :bad_gateway => 502,
61
- :service_unavailable => 503,
62
- :gateway_timeout => 504,
63
- :http_version_not_supported => 505,
64
- :bandwidth_limit_exceeded => 509, # (not official)
65
- }
66
- end
@@ -1,19 +0,0 @@
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
- class Hash
5
-
6
- # convert all keys in the Hash to symbols.
7
-
8
- def keys_to_sym!
9
- each do |key, value|
10
- self[key.to_sym] = delete(key)
11
- end
12
- end
13
-
14
- # answer with a new Hash with all keys as symbols.
15
-
16
- def keys_to_sym
17
- dup.keys_to_sym!
18
- end
19
- end
@@ -1,26 +0,0 @@
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
- # This chunk of code redefines the #method method of Kernel to act more
5
- # dynamic.
6
-
7
- module Kernel
8
- alias_method :method_get, :method unless defined? method_get
9
-
10
- # get the object of the method you are currently in or any
11
- # other out of the backtrace, as long as it is in the same
12
- # instance and retrievable via method_get (which is the old #method).
13
- #
14
- # class Foo
15
- # def bar
16
- # method
17
- # end
18
- # end
19
- #
20
- # Foo.new.bar #=> #<Method: Foo#bar>
21
-
22
- def method(n = 0)
23
- return method_get(n) unless n.is_a? Integer
24
- method_get caller.to_s.scan(/`(.*?)'/)[n].first rescue nil
25
- end
26
- end
@@ -1,22 +0,0 @@
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
- # Modification for upcoming functionality in 1.9
5
-
6
- class Method
7
-
8
- # name of the Method (example shows combination with the new Kernel#method)
9
- #
10
- # class Foo
11
- # def bar
12
- # method.name
13
- # end
14
- # end
15
- #
16
- # Foo.new.bar #=> 'bar'
17
-
18
- def name
19
- # parses things like <Method: A.d>
20
- inspect.gsub(/#<Method: .*?[\.#](.*?)>/, '\1')
21
- end
22
- end
@@ -1,135 +0,0 @@
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 'set'
5
-
6
- module Ramaze
7
-
8
- RELOAD_ENV = {
9
- :glob => /#{Dir.pwd}|ramaze/
10
- }
11
-
12
- class << self
13
- def reload interval = 1
14
- Inform.debug("initialize automatic file reload every #{interval} seconds")
15
-
16
- Thread.new do
17
- this = Thread.current
18
- this[:task] = :autoreload
19
-
20
- mtimes = {}
21
-
22
- loop do
23
- to_reload = all_reload_files.reject do |file|
24
- mtime = File.mtime(file)
25
- mtimes[file] ||= mtime
26
- mtimes[file] == mtime
27
- end
28
-
29
- to_reload.each do |file|
30
- sleep(interval / files.size.to_f)
31
- Inform.debug("reload #{file}")
32
- mtimes[file] = mtime if safe_load(file)
33
- end
34
- end
35
- end
36
- end
37
-
38
- def all_reload_files
39
- env = RELOAD_ENV
40
-
41
- files, paths = $LOADED_FEATURES, $LOAD_PATH
42
-
43
- unless env[:files] == files and env[:paths] == paths
44
- env[:files], env[:paths] = files.dup, paths.dup
45
- env[:map] = files.map do |file|
46
- possible = paths.map{|pa| File.join(pa.to_s, file.to_s) }
47
- possible.find{|po| File.exists?(po) }
48
- end
49
- env[:map] = env[:map].compact.sort
50
- end
51
-
52
- env[:map].select{|f| f =~ env[:glob] }
53
- end
54
-
55
- def safe_load(file)
56
- load(file)
57
- true
58
- rescue Object => ex
59
- Inform.error(ex)
60
- false
61
- end
62
- end
63
-
64
- # this method loops through all loaded/required files
65
- # and re-loads them when they are updated.
66
- # It takes one parameter, which is the interval in seconds
67
- # with a default of 10.
68
- # You can also safely kill all threads (except for the main)
69
- # and it will just restart the autoreloader.
70
-
71
- def self.autoreload interval = 10
72
- Inform.debug("initialize autoreload with an interval of #{interval} seconds")
73
-
74
- gatherer = Thread.new do
75
- this = Thread.current
76
- this[:task] = :autoreload
77
-
78
- cache = {}
79
- file_set = Set.new
80
-
81
- loop do
82
- files = file_set.dup
83
- $LOADED_FEATURES.map do |file|
84
- file = file.to_s
85
- paths = $LOAD_PATH + ['']
86
- correct_path = paths.find{|lp| File.exist?(File.join(lp.to_s, file))}
87
- correct_file = File.expand_path(File.join(correct_path, file)) if correct_path
88
-
89
- files << correct_file if correct_file
90
- end
91
-
92
- this[:files] = files
93
-
94
- sleep_interval = this[:interval] ||= interval || 10
95
- sleep sleep_interval
96
- end
97
- end
98
-
99
- reloader = Thread.new do
100
- this = Thread.current
101
- this[:task] = :autoreload
102
-
103
- cache = {}
104
- this[:interval] = interval
105
- sleep 0.1 until gatherer[:files] # wait for the gatherer
106
-
107
- loop do
108
- gatherer[:files].each do |file|
109
- begin
110
- current_time = File.mtime(file)
111
- if last_time = cache[file]
112
- unless last_time == current_time
113
- Inform.info("autoreload #{file}")
114
- load(file)
115
- cache[file] = current_time
116
- end
117
- else
118
- cache[file] = current_time
119
- end
120
- rescue Object => ex # catches errors when the load fails
121
- # in case mtime fails
122
- unless ex.message =~ /No such file or directory/
123
- puts ex
124
- puts ex.backtrace
125
- end
126
- # sleep a total of reloader[:interval],
127
- # but spread it evenly on all files
128
- end # begin
129
- sleep_interval = this[:interval].to_f / gatherer[:files].size
130
- sleep sleep_interval
131
- end # each
132
- end # loop
133
- end # Thread.new
134
- end # autoreload
135
- end # Ramaze
@@ -1,65 +0,0 @@
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 'rdoc/ri/ri_paths'
5
- require 'rdoc/usage'
6
-
7
- # This is a little hack to enable RDoc to see through gems.
8
- #
9
- # Very evil, but until we get a better RDoc this will have to do.
10
-
11
- module RDoc
12
- class << self
13
-
14
- # a patch for RDocs::usage calling our Rdoc::ramazes_usage_no_exit
15
-
16
- def ramazes_usage(*args)
17
- exit_code = 0
18
-
19
- if args.size > 0
20
- status = args[0]
21
- if status.respond_to?(:to_int)
22
- exit_code = status.to_int
23
- args.shift
24
- end
25
- end
26
-
27
- # display the usage and exit with the given code
28
- ramazes_usage_no_exit(*args)
29
- exit(exit_code)
30
- end
31
-
32
- # Only a modfication of RDoc::usage_no_exit for the lookup of main_program,
33
- # this would be buggy if used by the binary of the gem since $0 is
34
- # different.
35
- #
36
- # Using caller to lookup the actual bin.
37
-
38
- def ramazes_usage_no_exit(*args)
39
- main_program_file = caller[1].sub(/:\d+$/, '')
40
- comment = File.open(main_program_file) do |file|
41
- find_comment(file)
42
- end
43
-
44
- comment = comment.gsub(/^\s*#/, '')
45
-
46
- markup = SM::SimpleMarkup.new
47
- flow_convertor = SM::ToFlow.new
48
-
49
- flow = markup.convert(comment, flow_convertor)
50
-
51
- format = "plain"
52
-
53
- unless args.empty?
54
- flow = extract_sections(flow, args)
55
- end
56
-
57
- options = RI::Options.instance
58
- if args = ENV["RI"]
59
- options.parse(args.split)
60
- end
61
- formatter = options.formatter.new(options, "")
62
- formatter.display_flow(flow)
63
- end
64
- end
65
- end
@@ -1,32 +0,0 @@
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/layout'
5
-
6
- layout = {
7
- 'ramaze' => {
8
- '.' => '*',
9
- 'adapter' => '*',
10
- 'helper' => '*',
11
- 'inform' => '*',
12
- 'request' => '*',
13
- 'store' => '*',
14
- 'template' => '*',
15
- 'controller' => '*'
16
- },
17
- 'examples' => {
18
- '.' => '*',
19
- 'templates' => '*'
20
- }
21
- }
22
-
23
- manually_add = %w[
24
- ramaze/template ramaze/controller
25
- ]
26
- manually_add.map!{|ma| File.expand_path("spec/#{ma}.rb") }
27
-
28
- layout = SpecLayout.new(File.dirname(__FILE__), layout)
29
- layout.gather
30
- layout.clean
31
- layout.files += manually_add
32
- layout.run
@@ -1,6 +0,0 @@
1
- ---
2
- a: ein
3
- hello: "Hallo, Welt!"
4
- is: ist
5
- test: Test
6
- this: Das
@@ -1,6 +0,0 @@
1
- ---
2
- a: a
3
- hello: "Hello, World!"
4
- is: is
5
- test: test
6
- this: this
@@ -1,16 +0,0 @@
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
-
6
- testcase_requires 'rubygems'
7
-
8
- describe "dependencies" do
9
- it "no gems" do
10
- # rspec, systemu and syntax (loaded by rspec since 0.9)
11
- # are used for testing
12
- regex = /rspec|rack|systemu|syntax/
13
- gems = $:.grep(/gems/).reject{|g| g =~ regex}
14
- gems.should == []
15
- end
16
- end
@@ -1,44 +0,0 @@
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
-
6
- describe "Ramaze::Global" do
7
- it "just simple assignment and retrive" do
8
- Ramaze::Global.some = :xxx
9
- Ramaze::Global.some.should == :xxx
10
- end
11
-
12
- it "setup" do
13
- Ramaze::Global.setup :a => :b
14
- Ramaze::Global.a.should == :b
15
- Ramaze::Global.some.should == :xxx
16
- Ramaze::Global.setup :a => :c
17
- Ramaze::Global.a.should == :c
18
- end
19
-
20
- it "more neat stuff" do
21
- Ramaze::Global.update :a => :d, :foo => :bar
22
- Ramaze::Global.a.should == :c
23
- Ramaze::Global.foo.should == :bar
24
- end
25
-
26
- it "values_at" do
27
- Ramaze::Global.values_at(:a, :foo).should == [:c, :bar]
28
- end
29
-
30
- it "getting thready" do
31
- Ramaze::Global[:i] = 0
32
- Thread.main[:i] = 0
33
-
34
- (1..10).each do |i|
35
- Thread.new do
36
- Ramaze::Global[:i] += i
37
- Thread.main[:i] += i
38
- end
39
- end
40
-
41
- Ramaze::Global[:i].should == Thread.main[:i]
42
- Ramaze::Global[:i].should == 55
43
- end
44
- end