merb-core 0.9.4 → 0.9.5

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 (52) hide show
  1. data/Rakefile +22 -13
  2. data/lib/merb-core/bootloader.rb +3 -2
  3. data/lib/merb-core/config.rb +1 -1
  4. data/lib/merb-core/constants.rb +3 -1
  5. data/lib/merb-core/controller/abstract_controller.rb +25 -39
  6. data/lib/merb-core/controller/exceptions.rb +14 -16
  7. data/lib/merb-core/controller/merb_controller.rb +2 -2
  8. data/lib/merb-core/controller/mime.rb +2 -1
  9. data/lib/merb-core/controller/mixins/render.rb +12 -0
  10. data/lib/merb-core/controller/mixins/responder.rb +31 -7
  11. data/lib/merb-core/core_ext/hash.rb +7 -0
  12. data/lib/merb-core/core_ext/kernel.rb +31 -34
  13. data/lib/merb-core/core_ext.rb +1 -0
  14. data/lib/merb-core/dispatch/default_exception/default_exception.rb +3 -3
  15. data/lib/merb-core/dispatch/dispatcher.rb +128 -135
  16. data/lib/merb-core/dispatch/request.rb +11 -11
  17. data/lib/merb-core/dispatch/router/behavior.rb +6 -6
  18. data/lib/merb-core/dispatch/router.rb +5 -5
  19. data/lib/merb-core/logger.rb +203 -202
  20. data/lib/merb-core/rack/application.rb +19 -5
  21. data/lib/merb-core/rack/middleware/conditional_get.rb +23 -0
  22. data/lib/merb-core/rack/middleware/content_length.rb +18 -0
  23. data/lib/merb-core/rack/middleware/tracer.rb +20 -0
  24. data/lib/merb-core/rack/middleware.rb +1 -7
  25. data/lib/merb-core/rack.rb +19 -16
  26. data/lib/merb-core/test/matchers/route_matchers.rb +1 -0
  27. data/lib/merb-core/test/matchers/view_matchers.rb +36 -0
  28. data/lib/merb-core/test/run_specs.rb +2 -1
  29. data/lib/merb-core/version.rb +1 -1
  30. data/lib/merb-core.rb +39 -33
  31. data/spec/private/config/merb_spec.rb +34 -0
  32. data/spec/private/dispatch/fixture/log/merb_test.log +372 -0
  33. data/spec/private/router/fixture/log/merb_test.log +42 -0
  34. data/spec/public/abstract_controller/controllers/filters.rb +50 -1
  35. data/spec/public/abstract_controller/filter_spec.rb +25 -0
  36. data/spec/public/controller/base_spec.rb +41 -1
  37. data/spec/public/controller/controllers/base.rb +16 -0
  38. data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/class_provides/index.html.erb +1 -1
  39. data/spec/public/controller/dispatcher_spec.rb +24 -25
  40. data/spec/public/controller/responder_spec.rb +6 -0
  41. data/spec/public/core_ext/kernel_spec.rb +79 -0
  42. data/spec/public/directory_structure/directory/log/merb_test.log +245 -0
  43. data/spec/public/rack/conditinal_get_middleware_spec.rb +139 -0
  44. data/spec/public/rack/rack_middleware_spec.rb +99 -0
  45. data/spec/public/rack/shared_example_groups.rb +35 -0
  46. data/spec/public/reloading/directory/log/merb_test.log +40 -0
  47. data/spec/public/request/request_spec.rb +0 -5
  48. data/spec/public/router/fixture/log/merb_test.log +348 -0
  49. data/spec/public/test/route_matchers_spec.rb +4 -0
  50. data/spec/spec_helper.rb +7 -1
  51. metadata +42 -5
  52. data/spec/private/plugins/plugin_spec.rb +0 -166
data/spec/spec_helper.rb CHANGED
@@ -30,7 +30,7 @@ module Merb
30
30
  def matches?(target)
31
31
  target.log.rewind
32
32
  @text = target.log.read
33
- @text =~ (String === @expected ? /#{@expected}/ : @expected)
33
+ @text =~ (String === @expected ? /#{Regexp.escape @expected}/ : @expected)
34
34
  end
35
35
 
36
36
  def failure_message
@@ -98,6 +98,12 @@ Spec::Runner.configure do |config|
98
98
  config.include Merb::Test::RspecMatchers
99
99
  config.include Merb::Test::RequestHelper
100
100
 
101
+ def with_level(level)
102
+ Merb.logger = Merb::Logger.new(StringIO.new, level)
103
+ yield
104
+ Merb.logger
105
+ end
106
+
101
107
  def capture(stream)
102
108
  begin
103
109
  stream = stream.to_s
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: merb-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.4
4
+ version: 0.9.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ezra Zygmuntowicz
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-08-13 00:00:00 +03:00
12
+ date: 2008-08-26 00:00:00 +03:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -20,7 +20,7 @@ dependencies:
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 0.9.3
23
+ version: 0.9.4
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: erubis
@@ -82,6 +82,36 @@ dependencies:
82
82
  - !ruby/object:Gem::Version
83
83
  version: "0"
84
84
  version:
85
+ - !ruby/object:Gem::Dependency
86
+ name: hpricot
87
+ type: :runtime
88
+ version_requirement:
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: "0"
94
+ version:
95
+ - !ruby/object:Gem::Dependency
96
+ name: libxml-ruby
97
+ type: :development
98
+ version_requirement:
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: "0"
104
+ version:
105
+ - !ruby/object:Gem::Dependency
106
+ name: memcache-client
107
+ type: :development
108
+ version_requirement:
109
+ version_requirements: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ">="
112
+ - !ruby/object:Gem::Version
113
+ version: "0"
114
+ version:
85
115
  description: Merb. Pocket rocket web framework.
86
116
  email: ez@engineyard.com
87
117
  executables:
@@ -110,6 +140,7 @@ files:
110
140
  - spec/private/config/adapter_spec.rb
111
141
  - spec/private/config/config_spec.rb
112
142
  - spec/private/config/environment_spec.rb
143
+ - spec/private/config/merb_spec.rb
113
144
  - spec/private/config/spec_helper.rb
114
145
  - spec/private/core_ext
115
146
  - spec/private/core_ext/kernel_spec.rb
@@ -154,8 +185,6 @@ files:
154
185
  - spec/private/dispatch/route_params_spec.rb
155
186
  - spec/private/dispatch/session_mixin_spec.rb
156
187
  - spec/private/dispatch/spec_helper.rb
157
- - spec/private/plugins
158
- - spec/private/plugins/plugin_spec.rb
159
188
  - spec/private/router
160
189
  - spec/private/router/behavior_spec.rb
161
190
  - spec/private/router/fixture
@@ -371,6 +400,10 @@ files:
371
400
  - spec/public/logger
372
401
  - spec/public/logger/logger_spec.rb
373
402
  - spec/public/logger/spec_helper.rb
403
+ - spec/public/rack
404
+ - spec/public/rack/conditinal_get_middleware_spec.rb
405
+ - spec/public/rack/rack_middleware_spec.rb
406
+ - spec/public/rack/shared_example_groups.rb
374
407
  - spec/public/reloading
375
408
  - spec/public/reloading/directory
376
409
  - spec/public/reloading/directory/app
@@ -437,6 +470,7 @@ files:
437
470
  - lib/merb-core/controller/mixins/responder.rb
438
471
  - lib/merb-core/controller/template.rb
439
472
  - lib/merb-core/core_ext
473
+ - lib/merb-core/core_ext/hash.rb
440
474
  - lib/merb-core/core_ext/kernel.rb
441
475
  - lib/merb-core/core_ext.rb
442
476
  - lib/merb-core/dispatch
@@ -481,9 +515,12 @@ files:
481
515
  - lib/merb-core/rack/handler
482
516
  - lib/merb-core/rack/handler/mongrel.rb
483
517
  - lib/merb-core/rack/middleware
518
+ - lib/merb-core/rack/middleware/conditional_get.rb
519
+ - lib/merb-core/rack/middleware/content_length.rb
484
520
  - lib/merb-core/rack/middleware/path_prefix.rb
485
521
  - lib/merb-core/rack/middleware/profiler.rb
486
522
  - lib/merb-core/rack/middleware/static.rb
523
+ - lib/merb-core/rack/middleware/tracer.rb
487
524
  - lib/merb-core/rack/middleware.rb
488
525
  - lib/merb-core/rack.rb
489
526
  - lib/merb-core/server.rb
@@ -1,166 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "..", "..", "spec_helper")
2
-
3
- Merb.environment = 'test'
4
-
5
- def reset_merb_generator_scope
6
- Merb.orm_generator_scope = :merb_default
7
- Merb.test_framework_generator_scope = :rspec
8
- Kernel.stub!(:dependency)
9
- end
10
-
11
- describe "Plugins", "default generator scope" do
12
- it "has :merb_default" do
13
- Merb.generator_scope.should include(:merb_default)
14
- end
15
-
16
- it "MUST include :merb" do
17
- Merb.generator_scope.should include(:merb)
18
- end
19
-
20
- it "has :rspec" do
21
- Merb.generator_scope.should include(:rspec)
22
- end
23
- end
24
-
25
-
26
-
27
- describe "Plugins", "ORM generator scope" do
28
- before :each do
29
- reset_merb_generator_scope
30
- end
31
-
32
- it "has merb_default stub by default" do
33
- Merb.orm_generator_scope.should == :merb_default
34
- end
35
- end
36
-
37
-
38
-
39
- describe "Plugins","use_orm" do
40
- before(:each) do
41
- reset_merb_generator_scope
42
- end
43
-
44
- it "removes defaults from generator scope" do
45
- use_orm(:datamapper)
46
- Merb.generator_scope.should_not include(:merb_default)
47
- end
48
-
49
- it "adds orm symbol to generator scope" do
50
- use_orm(:activerecord)
51
- Merb.generator_scope.should include(:activerecord)
52
- end
53
-
54
- it "replaces previously used if use_orm is called more than once" do
55
- use_orm(:sequel)
56
- use_orm(:activerecord)
57
- use_orm(:datamapper)
58
-
59
- Merb.generator_scope.should_not include(:sequel)
60
- Merb.generator_scope.should_not include(:activerecord)
61
- Merb.generator_scope.should include(:datamapper)
62
- end
63
-
64
- it "calls dependency :merb_<orm>" do
65
- Kernel.should_receive(:dependency).with("merb_activerecord").once.
66
- and_return(true)
67
- use_orm(:activerecord)
68
- end
69
-
70
- it "does not affect presence of :merb in generator scope" do
71
- use_orm(:datamapper)
72
- Merb.generator_scope.should include(:merb)
73
- end
74
- end
75
-
76
-
77
-
78
- describe "Plugins", "test framework generator scope" do
79
- before :each do
80
- reset_merb_generator_scope
81
- end
82
-
83
- it "has rspec by default" do
84
- Merb.test_framework_generator_scope.should == :rspec
85
- end
86
- end
87
-
88
-
89
-
90
- describe "Plugins","use_test" do
91
- before(:each) do
92
- reset_merb_generator_scope
93
- end
94
-
95
- it "removes defaults" do
96
- use_test(:test_unit)
97
- Merb.generator_scope.should_not include(:rspec)
98
- end
99
-
100
- it "adds used test framework to generator scope" do
101
- use_test(:test_unit)
102
- Merb.generator_scope.should include(:test_unit)
103
- end
104
-
105
- it "raises an error when unsupported test framework is used" do
106
- lambda { use_test(:fiddlefaddle) }.should raise_error
107
- end
108
-
109
- it "does not affect presence of :merb in generator scope" do
110
- use_test(:test_unit)
111
- Merb.generator_scope.should include(:merb)
112
- end
113
- end
114
-
115
-
116
-
117
- describe "Plugins", "register_orm" do
118
- before(:each) do
119
- reset_merb_generator_scope
120
- end
121
-
122
- it "registers ORM plugin at orm generator scope" do
123
- register_orm(:sequel)
124
-
125
- Merb.orm_generator_scope.should == :sequel
126
- end
127
- end
128
-
129
-
130
-
131
- describe "Plugins", "register_test_framework" do
132
- before(:each) do
133
- reset_merb_generator_scope
134
- end
135
-
136
- it "registers test framework at generator scope" do
137
- register_test_framework(:test_unit)
138
-
139
- Merb.generator_scope.should include(:test_unit)
140
- end
141
- end
142
-
143
-
144
-
145
- describe "Plugins", "supported_test_framework?" do
146
- before(:each) do
147
- Merb.generator_scope.replace [:merb_default, :merb, :rspec]
148
- Kernel.stub!(:dependency)
149
- end
150
-
151
- it "supports RSpec" do
152
- supported_test_framework?(:rspec).should be(true)
153
- end
154
-
155
- it "supports Test::Unit" do
156
- supported_test_framework?(:rspec).should be(true)
157
- end
158
-
159
- it "does not (no yet) support MSpec" do
160
- supported_test_framework?(:mspec).should be(false)
161
- end
162
-
163
- it "does not (no yet) support Bacon" do
164
- supported_test_framework?(:bacon).should be(false)
165
- end
166
- end