Skip to content

Commit 669fd84

Browse files
committed
AS::Concern redefines "include" to lazy include modules as dependencies
1 parent c7c35be commit 669fd84

21 files changed

+31
-31
lines changed

actionpack/lib/action_controller/abstract/benchmarker.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module AbstractController
22
module Benchmarker
33
extend ActiveSupport::Concern
44

5-
depends_on Logger
5+
include Logger
66

77
module ClassMethods
88
def benchmark(title, log_level = ::Logger::DEBUG, use_silence = true)

actionpack/lib/action_controller/abstract/callbacks.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module AbstractController
22
module Callbacks
33
extend ActiveSupport::Concern
44

5-
depends_on ActiveSupport::NewCallbacks
5+
include ActiveSupport::NewCallbacks
66

77
included do
88
define_callbacks :process_action, "response_body"

actionpack/lib/action_controller/abstract/helpers.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module AbstractController
22
module Helpers
33
extend ActiveSupport::Concern
44

5-
depends_on Renderer
5+
include Renderer
66

77
included do
88
extlib_inheritable_accessor :master_helper_module

actionpack/lib/action_controller/abstract/layouts.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module AbstractController
22
module Layouts
33
extend ActiveSupport::Concern
44

5-
depends_on Renderer
5+
include Renderer
66

77
included do
88
extlib_inheritable_accessor :_layout_conditions

actionpack/lib/action_controller/abstract/renderer.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ module AbstractController
44
module Renderer
55
extend ActiveSupport::Concern
66

7-
depends_on AbstractController::Logger
7+
include AbstractController::Logger
88

99
included do
1010
attr_internal :formats

actionpack/lib/action_controller/base/chained/flash.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ module Flash
2929
extend ActiveSupport::Concern
3030

3131
# TODO : Remove the defined? check when new base is the main base
32-
depends_on Session if defined?(ActionController::Http)
32+
include Session if defined?(ActionController::Http)
3333

3434
included do
3535
# TODO : Remove the defined? check when new base is the main base

actionpack/lib/action_controller/base/filter_parameter_logging.rb

+2-4
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,11 @@ module FilterParameterLogging
44

55
# TODO : Remove the defined? check when new base is the main base
66
if defined?(ActionController::Http)
7-
depends_on AbstractController::Logger
7+
include AbstractController::Logger
88
end
99

1010
included do
11-
if defined?(ActionController::Http)
12-
include InstanceMethodsForNewBase
13-
end
11+
include InstanceMethodsForNewBase
1412
end
1513

1614
module ClassMethods

actionpack/lib/action_controller/base/request_forgery_protection.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ module RequestForgeryProtection
77

88
# TODO : Remove the defined? check when new base is the main base
99
if defined?(ActionController::Http)
10-
depends_on AbstractController::Helpers, Session
10+
include AbstractController::Helpers, Session
1111
end
1212

1313
included do

actionpack/lib/action_controller/base/streaming.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ module Streaming
66

77
# TODO : Remove the defined? check when new base is the main base
88
if defined?(ActionController::Http)
9-
depends_on ActionController::Renderer
9+
include ActionController::Renderer
1010
end
1111

1212
DEFAULT_SEND_FILE_OPTIONS = {

actionpack/lib/action_controller/base/verification.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ module Verification #:nodoc:
44

55
# TODO : Remove the defined? check when new base is the main base
66
if defined?(ActionController::Http)
7-
depends_on AbstractController::Callbacks, Session, Flash, Renderer
7+
include AbstractController::Callbacks, Session, Flash, Renderer
88
end
99

1010
# This module provides a class-level method for specifying that certain

actionpack/lib/action_controller/new_base/conditional_get.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module ActionController
22
module ConditionalGet
33
extend ActiveSupport::Concern
44

5-
depends_on RackConvenience
5+
include RackConvenience
66

77
# Sets the etag, last_modified, or both on the response and renders a
88
# "304 Not Modified" response if the request is already fresh.

actionpack/lib/action_controller/new_base/helpers.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ module ActionController
66
module Helpers
77
extend ActiveSupport::Concern
88

9-
depends_on AbstractController::Helpers
9+
include AbstractController::Helpers
1010

1111
included do
1212
# Set the default directory for helpers

actionpack/lib/action_controller/new_base/layouts.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ module ActionController
22
module Layouts
33
extend ActiveSupport::Concern
44

5-
depends_on ActionController::Renderer
6-
depends_on AbstractController::Layouts
5+
include ActionController::Renderer
6+
include AbstractController::Layouts
77

88
module ClassMethods
99
def _implied_layout_name

actionpack/lib/action_controller/new_base/render_options.rb

+5-5
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def render_to_body(options)
3939
module RenderOption #:nodoc:
4040
def self.extended(base)
4141
base.extend ActiveSupport::Concern
42-
base.depends_on ::ActionController::RenderOptions
42+
base.send :include, ::ActionController::RenderOptions
4343

4444
def base.register_renderer(name)
4545
included { _add_render_option(name) }
@@ -94,10 +94,10 @@ def _render_update(proc, options)
9494
module All
9595
extend ActiveSupport::Concern
9696

97-
depends_on ActionController::Renderers::Json
98-
depends_on ActionController::Renderers::Js
99-
depends_on ActionController::Renderers::Xml
100-
depends_on ActionController::Renderers::RJS
97+
include ActionController::Renderers::Json
98+
include ActionController::Renderers::Js
99+
include ActionController::Renderers::Xml
100+
include ActionController::Renderers::RJS
101101
end
102102
end
103103
end

actionpack/lib/action_controller/new_base/renderer.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module ActionController
22
module Renderer
33
extend ActiveSupport::Concern
44

5-
depends_on AbstractController::Renderer
5+
include AbstractController::Renderer
66

77
def process_action(*)
88
self.formats = request.formats.map {|x| x.to_sym}

actionpack/lib/action_controller/new_base/session.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module ActionController
22
module Session
33
extend ActiveSupport::Concern
44

5-
depends_on RackConvenience
5+
include RackConvenience
66

77
def session
88
@_request.session

actionpack/lib/action_controller/new_base/testing.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module ActionController
22
module Testing
33
extend ActiveSupport::Concern
44

5-
depends_on RackConvenience
5+
include RackConvenience
66

77
# OMG MEGA HAX
88
def process_with_new_base_test(request, response)

actionpack/lib/action_controller/new_base/url_for.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module ActionController
22
module UrlFor
33
extend ActiveSupport::Concern
44

5-
depends_on RackConvenience
5+
include RackConvenience
66

77
def process_action(*)
88
initialize_current_url

activerecord/lib/active_record/validations.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,8 @@ def generate_message(attribute, message = :invalid, options = {})
102102
module Validations
103103
extend ActiveSupport::Concern
104104

105-
depends_on ActiveSupport::Callbacks
106-
depends_on ActiveModel::Validations
105+
include ActiveSupport::Callbacks
106+
include ActiveModel::Validations
107107

108108
included do
109109
alias_method_chain :save, :validation

activesupport/lib/active_support/concern.rb

+2
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,7 @@ def included(base = nil, &block)
1919
super
2020
end
2121
end
22+
23+
alias_method :include, :depends_on
2224
end
2325
end

activesupport/test/concern_test.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def baz
3434
module Bar
3535
extend ActiveSupport::Concern
3636

37-
depends_on Baz
37+
include Baz
3838

3939
def bar
4040
"bar"
@@ -48,7 +48,7 @@ def baz
4848
module Foo
4949
extend ActiveSupport::Concern
5050

51-
depends_on Bar, Baz
51+
include Bar, Baz
5252
end
5353

5454
def setup
@@ -90,7 +90,7 @@ def test_modules_dependencies_are_met
9090
assert @klass.included_modules.include?(ConcernTest::Bar)
9191
end
9292

93-
def test_depends_on_with_multiple_modules
93+
def test_dependencies_with_multiple_modules
9494
@klass.send(:include, Foo)
9595
assert_equal [ConcernTest::Foo, ConcernTest::Bar, ConcernTest::Baz::InstanceMethods, ConcernTest::Baz], @klass.included_modules[0..3]
9696
end

0 commit comments

Comments
 (0)