Module: TemplateMethod
- Included in:
- Controls::Extended::Example, Controls::Included::Example, Controls::TemplateMethod::Body::Example, Controls::TemplateMethod::Example, Controls::TemplateMethod::Implemented::Example, Controls::TemplateMethod::Implemented::Module::Example, Controls::TemplateMethod::Implemented::Prior::Example, Controls::TemplateMethod::Variant::Example, Controls::TemplateMethod::Variant::Implemented::Example
- Defined in:
- lib/template_method/error.rb,
lib/template_method/macro.rb,
lib/template_method/activate.rb,
lib/template_method/controls/clean.rb,
lib/template_method/template_method.rb,
lib/template_method/controls/extended.rb,
lib/template_method/controls/included.rb,
lib/template_method/controls/template_method.rb,
lib/template_method/controls/template_method/body.rb,
lib/template_method/controls/template_method/variant.rb,
lib/template_method/controls/template_method/implemented.rb
Defined Under Namespace
Constant Summary collapse
- Error =
Class.new(RuntimeError)
Class Method Summary collapse
- .activate(target_class = nil) ⇒ Object
- .activated?(target_class = nil) ⇒ Boolean
- .extended(cls) ⇒ Object
- .included(cls) ⇒ Object
- .subject_class(subject) ⇒ Object
Class Method Details
.activate(target_class = nil) ⇒ Object
2 3 4 5 |
# File 'lib/template_method/activate.rb', line 2 def self.activate(target_class=nil) target_class ||= Object target_class.extend(TemplateMethod::Macro) end |
.activated?(target_class = nil) ⇒ Boolean
7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/template_method/activate.rb', line 7 def self.activated?(target_class=nil) target_class ||= Object subject = subject_class(target_class) Macro.macro_methods.each do |mthd| if not subject.respond_to?(mthd) return false end end true end |
.extended(cls) ⇒ Object
6 7 8 |
# File 'lib/template_method/template_method.rb', line 6 def self.extended(cls) activate(cls) end |
.included(cls) ⇒ Object
2 3 4 |
# File 'lib/template_method/template_method.rb', line 2 def self.included(cls) activate(cls) end |
.subject_class(subject) ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/template_method/activate.rb', line 21 def self.subject_class(subject) case subject when Module, Class subject else subject.class end end |