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.
- data/CHANGELOG +925 -0
- data/CONTRIBUTORS +93 -0
- data/PUBLIC_CHANGELOG +85 -0
- data/Rakefile +18 -28
- data/bin/merb +34 -5
- data/lib/merb-core/autoload.rb +2 -3
- data/lib/merb-core/bootloader.rb +60 -66
- data/lib/merb-core/config.rb +7 -1
- data/lib/merb-core/controller/abstract_controller.rb +35 -21
- data/lib/merb-core/controller/merb_controller.rb +15 -42
- data/lib/merb-core/controller/mixins/authentication.rb +42 -6
- data/lib/merb-core/controller/mixins/conditional_get.rb +83 -0
- data/lib/merb-core/controller/mixins/render.rb +3 -3
- data/lib/merb-core/core_ext/kernel.rb +6 -19
- data/lib/merb-core/dispatch/cookies.rb +96 -80
- data/lib/merb-core/dispatch/default_exception/views/index.html.erb +2 -0
- data/lib/merb-core/dispatch/request.rb +18 -16
- data/lib/merb-core/dispatch/router/route.rb +6 -0
- data/lib/merb-core/dispatch/router.rb +4 -1
- data/lib/merb-core/dispatch/session/container.rb +64 -0
- data/lib/merb-core/dispatch/session/cookie.rb +91 -101
- data/lib/merb-core/dispatch/session/memcached.rb +38 -174
- data/lib/merb-core/dispatch/session/memory.rb +62 -208
- data/lib/merb-core/dispatch/session/store_container.rb +145 -0
- data/lib/merb-core/dispatch/session.rb +174 -48
- data/lib/merb-core/rack/middleware/conditional_get.rb +14 -8
- data/lib/merb-core/rack/middleware/csrf.rb +73 -0
- data/lib/merb-core/rack.rb +1 -0
- data/lib/merb-core/script.rb +112 -0
- data/lib/merb-core/server.rb +2 -0
- data/lib/merb-core/tasks/merb_rake_helper.rb +25 -0
- data/lib/merb-core/test/helpers/request_helper.rb +40 -3
- data/lib/merb-core/test/run_specs.rb +4 -3
- data/lib/merb-core/vendor/facets/inflect.rb +7 -10
- data/lib/merb-core/version.rb +1 -1
- data/lib/merb-core.rb +11 -40
- data/spec/private/core_ext/kernel_spec.rb +0 -11
- data/spec/private/dispatch/fixture/log/merb_test.log +893 -0
- data/spec/private/router/fixture/log/merb_test.log +12 -1728
- data/spec/private/router/route_spec.rb +4 -0
- data/spec/private/router/router_spec.rb +8 -0
- data/spec/private/vendor/facets/plural_spec.rb +1 -1
- data/spec/private/vendor/facets/singular_spec.rb +1 -1
- data/spec/public/abstract_controller/controllers/display.rb +8 -2
- data/spec/public/abstract_controller/controllers/filters.rb +18 -0
- data/spec/public/abstract_controller/display_spec.rb +6 -2
- data/spec/public/abstract_controller/filter_spec.rb +4 -0
- data/spec/public/controller/authentication_spec.rb +114 -43
- data/spec/public/controller/base_spec.rb +8 -0
- data/spec/public/controller/conditional_get_spec.rb +100 -0
- data/spec/public/controller/config/init.rb +1 -1
- data/spec/public/controller/controllers/authentication.rb +29 -0
- data/spec/public/controller/controllers/base.rb +13 -0
- data/spec/public/controller/controllers/conditional_get.rb +35 -0
- data/spec/public/controller/controllers/cookies.rb +10 -1
- data/spec/public/controller/cookies_spec.rb +38 -9
- data/spec/public/controller/spec_helper.rb +1 -0
- data/spec/public/controller/url_spec.rb +70 -1
- data/spec/public/directory_structure/directory/log/merb_test.log +461 -0
- data/spec/public/rack/conditinal_get_middleware_spec.rb +77 -89
- data/spec/public/rack/csrf_middleware_spec.rb +70 -0
- data/spec/public/reloading/directory/log/merb_test.log +52 -0
- data/spec/public/request/request_spec.rb +19 -1
- data/spec/public/router/fixation_spec.rb +26 -4
- data/spec/public/router/fixture/log/merb_test.log +234 -30332
- data/spec/public/session/controllers/sessions.rb +52 -0
- data/spec/public/session/cookie_session_spec.rb +73 -0
- data/spec/public/session/memcached_session_spec.rb +31 -0
- data/spec/public/session/memory_session_spec.rb +28 -0
- data/spec/public/session/multiple_sessions_spec.rb +74 -0
- data/spec/public/session/no_session_spec.rb +12 -0
- data/spec/public/session/session_spec.rb +91 -0
- data/spec/public/test/controllers/spec_helper_controller.rb +2 -1
- data/spec/public/test/request_helper_spec.rb +15 -0
- data/spec/spec_helper.rb +2 -2
- metadata +23 -5
- data/spec/private/dispatch/cookies_spec.rb +0 -219
- 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
|
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
|
-
#
|
382
|
-
#
|
383
|
-
#
|
384
|
-
#
|
385
|
-
|
386
|
-
|
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
|
|