18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/concerned/module_ext.rb', line 18
def include_concerns(*concerns)
options = concerns.
scope_name = options[:for] || options[:from] || name
concerns.flatten.each do |concern|
next if concern.blank?
require_concern scope_name, concern
concern_ns ||= [scope_name.to_s.camelize, concern.to_s.camelize].join('::')
self.send :include, concern_ns.constantize
if Concerned.extend_enabled?
begin
self.extend [concern_ns, 'ClassMethods'].join('::').constantize
rescue
end
end
end
class_eval do
self.my_concerns += concerns.flatten if self.respond_to?(:my_concerns)
end
include_shared_concerns([options[:shared]].flatten.compact)
end
|