Class: RiCal::Component::ComponentBuilder
- Defined in:
- lib/ri_cal/component.rb
Overview
:nodoc:
Instance Method Summary collapse
-
#initialize(component) ⇒ ComponentBuilder
constructor
:nodoc:.
-
#method_missing(selector, *args, &init_block) ⇒ Object
:nodoc:.
Constructor Details
#initialize(component) ⇒ ComponentBuilder
:nodoc:
6 7 8 |
# File 'lib/ri_cal/component.rb', line 6 def initialize(component) @component = component end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(selector, *args, &init_block) ⇒ Object
:nodoc:
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/ri_cal/component.rb', line 10 def method_missing(selector, *args, &init_block) #:nodoc: if(sub_comp_class = @component.subcomponent_class[selector]) if init_block sub_comp = sub_comp_class.new(@component) if init_block.arity == 1 yield ComponentBuilder.new(sub_comp) else ComponentBuilder.new(sub_comp).instance_eval(&init_block) end self.add_subcomponent(sub_comp) end else sel = selector.to_s sel = "#{sel}=" unless /(^(add_)|(remove_))|(=$)/ =~ sel if @component.respond_to?(sel) @component.send(sel, *args) else super end end end |