module RKit::Decoration::Base
Public Class Methods
included(base)
click to toggle source
# File lib/r_kit/decoration/base.rb, line 3 def self.included base base.singleton_attr_reader :decorated_class base.singleton_attr_reader :after_initialize_procs, default: proc{ [] } base.define_singleton_method :after_initialize, ->(&block) do after_initialize_procs << block end end
new(object, view_context: nil)
click to toggle source
Calls superclass method
# File lib/r_kit/decoration/base.rb, line 13 def initialize object, view_context: nil @view_context = view_context super(object) after_initialize! end
Public Instance Methods
after_initialize!()
click to toggle source
# File lib/r_kit/decoration/base.rb, line 20 def after_initialize! decorated = self __getobj__.define_singleton_method(:decorated){ decorated } decorator_class.after_initialize_procs.each{ |after_initialize_proc| self.instance_eval &after_initialize_proc } end
decorate(*args)
click to toggle source
# File lib/r_kit/decoration/base.rb, line 32 def decorate *args self end
decorated?()
click to toggle source
# File lib/r_kit/decoration/base.rb, line 36 def decorated?() true end
method_missing(method_name, *args, &block)
click to toggle source
Calls superclass method
# File lib/r_kit/decoration/base.rb, line 58 def method_missing method_name, *args, &block closure = super if RKit::Decoration.config.recursive_decoration && closure.need_decoration? closure.decorate(view_context: view) else closure end end
need_decoration?()
click to toggle source
# File lib/r_kit/decoration/base.rb, line 38 def need_decoration?() false end
raw()
click to toggle source
# File lib/r_kit/decoration/base.rb, line 40 def raw __getobj__ end
view()
click to toggle source
# File lib/r_kit/decoration/base.rb, line 49 def view (@@mutex ||= Mutex.new).synchronize do @view_context ||= view_context end rescue ThreadError nil end
Private Instance Methods
view_context()
click to toggle source
# File lib/r_kit/decoration/base.rb, line 45 def view_context backtrace{ |obj| obj.is_a? ActionView::Base } || backtrace{ |obj| obj.respond_to? :view_context }.view_context end