merb-core 0.9.5 → 0.9.6

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 (78) hide show
  1. data/CHANGELOG +925 -0
  2. data/CONTRIBUTORS +93 -0
  3. data/PUBLIC_CHANGELOG +85 -0
  4. data/Rakefile +18 -28
  5. data/bin/merb +34 -5
  6. data/lib/merb-core/autoload.rb +2 -3
  7. data/lib/merb-core/bootloader.rb +60 -66
  8. data/lib/merb-core/config.rb +7 -1
  9. data/lib/merb-core/controller/abstract_controller.rb +35 -21
  10. data/lib/merb-core/controller/merb_controller.rb +15 -42
  11. data/lib/merb-core/controller/mixins/authentication.rb +42 -6
  12. data/lib/merb-core/controller/mixins/conditional_get.rb +83 -0
  13. data/lib/merb-core/controller/mixins/render.rb +3 -3
  14. data/lib/merb-core/core_ext/kernel.rb +6 -19
  15. data/lib/merb-core/dispatch/cookies.rb +96 -80
  16. data/lib/merb-core/dispatch/default_exception/views/index.html.erb +2 -0
  17. data/lib/merb-core/dispatch/request.rb +18 -16
  18. data/lib/merb-core/dispatch/router/route.rb +6 -0
  19. data/lib/merb-core/dispatch/router.rb +4 -1
  20. data/lib/merb-core/dispatch/session/container.rb +64 -0
  21. data/lib/merb-core/dispatch/session/cookie.rb +91 -101
  22. data/lib/merb-core/dispatch/session/memcached.rb +38 -174
  23. data/lib/merb-core/dispatch/session/memory.rb +62 -208
  24. data/lib/merb-core/dispatch/session/store_container.rb +145 -0
  25. data/lib/merb-core/dispatch/session.rb +174 -48
  26. data/lib/merb-core/rack/middleware/conditional_get.rb +14 -8
  27. data/lib/merb-core/rack/middleware/csrf.rb +73 -0
  28. data/lib/merb-core/rack.rb +1 -0
  29. data/lib/merb-core/script.rb +112 -0
  30. data/lib/merb-core/server.rb +2 -0
  31. data/lib/merb-core/tasks/merb_rake_helper.rb +25 -0
  32. data/lib/merb-core/test/helpers/request_helper.rb +40 -3
  33. data/lib/merb-core/test/run_specs.rb +4 -3
  34. data/lib/merb-core/vendor/facets/inflect.rb +7 -10
  35. data/lib/merb-core/version.rb +1 -1
  36. data/lib/merb-core.rb +11 -40
  37. data/spec/private/core_ext/kernel_spec.rb +0 -11
  38. data/spec/private/dispatch/fixture/log/merb_test.log +893 -0
  39. data/spec/private/router/fixture/log/merb_test.log +12 -1728
  40. data/spec/private/router/route_spec.rb +4 -0
  41. data/spec/private/router/router_spec.rb +8 -0
  42. data/spec/private/vendor/facets/plural_spec.rb +1 -1
  43. data/spec/private/vendor/facets/singular_spec.rb +1 -1
  44. data/spec/public/abstract_controller/controllers/display.rb +8 -2
  45. data/spec/public/abstract_controller/controllers/filters.rb +18 -0
  46. data/spec/public/abstract_controller/display_spec.rb +6 -2
  47. data/spec/public/abstract_controller/filter_spec.rb +4 -0
  48. data/spec/public/controller/authentication_spec.rb +114 -43
  49. data/spec/public/controller/base_spec.rb +8 -0
  50. data/spec/public/controller/conditional_get_spec.rb +100 -0
  51. data/spec/public/controller/config/init.rb +1 -1
  52. data/spec/public/controller/controllers/authentication.rb +29 -0
  53. data/spec/public/controller/controllers/base.rb +13 -0
  54. data/spec/public/controller/controllers/conditional_get.rb +35 -0
  55. data/spec/public/controller/controllers/cookies.rb +10 -1
  56. data/spec/public/controller/cookies_spec.rb +38 -9
  57. data/spec/public/controller/spec_helper.rb +1 -0
  58. data/spec/public/controller/url_spec.rb +70 -1
  59. data/spec/public/directory_structure/directory/log/merb_test.log +461 -0
  60. data/spec/public/rack/conditinal_get_middleware_spec.rb +77 -89
  61. data/spec/public/rack/csrf_middleware_spec.rb +70 -0
  62. data/spec/public/reloading/directory/log/merb_test.log +52 -0
  63. data/spec/public/request/request_spec.rb +19 -1
  64. data/spec/public/router/fixation_spec.rb +26 -4
  65. data/spec/public/router/fixture/log/merb_test.log +234 -30332
  66. data/spec/public/session/controllers/sessions.rb +52 -0
  67. data/spec/public/session/cookie_session_spec.rb +73 -0
  68. data/spec/public/session/memcached_session_spec.rb +31 -0
  69. data/spec/public/session/memory_session_spec.rb +28 -0
  70. data/spec/public/session/multiple_sessions_spec.rb +74 -0
  71. data/spec/public/session/no_session_spec.rb +12 -0
  72. data/spec/public/session/session_spec.rb +91 -0
  73. data/spec/public/test/controllers/spec_helper_controller.rb +2 -1
  74. data/spec/public/test/request_helper_spec.rb +15 -0
  75. data/spec/spec_helper.rb +2 -2
  76. metadata +23 -5
  77. data/spec/private/dispatch/cookies_spec.rb +0 -219
  78. data/spec/private/dispatch/session_mixin_spec.rb +0 -47
data/lib/merb-core.rb CHANGED
@@ -16,7 +16,9 @@ $LOAD_PATH.unshift __DIR__ unless
16
16
  require 'merb-core' / 'vendor' / 'facets'
17
17
 
18
18
  module Merb
19
+ # Create stub module for global controller helpers.
19
20
  module GlobalHelpers; end
21
+
20
22
  class << self
21
23
 
22
24
  # Merge environment settings
@@ -354,43 +356,20 @@ module Merb
354
356
 
355
357
  Merb.klass_hashes = []
356
358
 
357
- attr_reader :registered_session_types
358
-
359
- # ==== Parameters
360
- # name<~to_s>:: Name of the session type to register.
361
- # file<String>:: The file that defines this session type.
362
- # description<String>:: An optional description of the session type.
363
- #
364
- # ==== Notes
365
- # Merb currently supports memory, cookie and memcache session
366
- # types.
367
- def register_session_type(name, file, description = nil)
368
- @registered_session_types ||= Dictionary.new
369
- @registered_session_types[name] = {
370
- :file => file,
371
- :description => (description || "Using #{name} sessions")
372
- }
373
- end
374
-
375
359
  attr_accessor :frozen
376
360
 
377
361
  # ==== Returns
378
- # Boolean:: True if Merb is running via merb-freezer or other freezer.
362
+ # Boolean:: True if Merb is running as an application with bundled gems.
363
+ # Can only be disabled by --no-bundle option on startup (or for Rakefile
364
+ # use NO_BUNDLE=true to disable local gems).
379
365
  #
380
366
  # ==== Notes
381
- # Freezing means bundling framework libraries with your application
382
- # making it independent from environment it runs in. This is a good
383
- # practice to freeze application framework and gems it uses and
384
- # very useful when application is run in some sort of sandbox,
385
- # for instance, shared hosting with preconfigured gems.
386
- def frozen?
387
- @frozen
388
- end
389
-
390
- # Used by merb-freezer and other freezers to mark Merb as frozen.
391
- # See Merb::GlobalHelpers.frozen? for more details on framework freezing.
392
- def frozen!
393
- @frozen = true
367
+ # Bundling required gems makes your application independent from the
368
+ # environment it runs in. This is a good practice to freeze application
369
+ # framework and gems it uses and very useful when application is run in
370
+ # some sort of sandbox, for instance, shared hosting with preconfigured gems.
371
+ def bundled?
372
+ ENV.key?("BUNDLE") || Merb::Config[:bundle] || ENV.key?("NO_BUNDLE")
394
373
  end
395
374
 
396
375
  # Load configuration and assign logger.
@@ -424,12 +403,6 @@ module Merb
424
403
  # :use_mutex<Boolean>:: turns action dispatch synchronization
425
404
  # on or off, default is on (true)
426
405
  #
427
- # :session_id_key<String>:: session identifier,
428
- # default is _session_id
429
- #
430
- # :session_store<String>:: session store to use (one of cookies,
431
- # memcache or memory)
432
- #
433
406
  # :log_delimiter<String>:: what Merb logger uses as delimiter
434
407
  # between message sections, default is " ~ "
435
408
  #
@@ -518,8 +491,6 @@ module Merb
518
491
  # environment "development"
519
492
  # log_level "debug"
520
493
  # use_mutex false
521
- # session_store "cookie"
522
- # session_secret_key "0d05a226affa226623eb18700"
523
494
  # exception_details true
524
495
  # reload_classes true
525
496
  # reload_time 0.5
@@ -84,17 +84,6 @@ describe "Kernel#load_dependency" do
84
84
  # some people may have no RSpec gem
85
85
  end
86
86
  end
87
-
88
- it "tries to be smart by checking if Merb is frozen" do
89
- self.should_receive(:require)
90
- Merb.should_receive(:frozen?).and_return(true)
91
-
92
- begin
93
- load_dependency("merb-core")
94
- rescue LoadError => e
95
- # some people may have no RSpec gem
96
- end
97
- end
98
87
  end
99
88
 
100
89