Class: Howitzer::Web::SectionDsl::ClassMethods::SectionScope
- Inherits:
-
Object
- Object
- Howitzer::Web::SectionDsl::ClassMethods::SectionScope
- Defined in:
- lib/howitzer/web/section_dsl.rb
Overview
This class is for private usage only
Instance Attribute Summary collapse
-
#section_class ⇒ Object
Returns the value of attribute section_class.
Instance Method Summary collapse
-
#element(*args, **options) ⇒ Object
# Defines an element on the section # @see Howitzer::Web::ElementDsl::ClassMethods#element.
-
#finder_args ⇒ Array
Returns selector arguments for the section.
-
#finder_options ⇒ Array
Returns selector options for the section.
-
#initialize(name, *args, **options, &block) ⇒ SectionScope
constructor
Instantiates an anynomous or named section and executes block code in the section scope.
-
#section(name, *args, **options, &block) ⇒ Object
Delegates a section describing to the section class.
Constructor Details
#initialize(name, *args, **options, &block) ⇒ SectionScope
Instantiates an anynomous or named section and executes block code in the section scope
22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/howitzer/web/section_dsl.rb', line 22 def initialize(name, *args, **, &block) @args = args @options = self.section_class = if block Class.new(Howitzer::Web::BaseSection) else "#{name}_section".classify.constantize end instance_eval(&block) if block_given? end |
Instance Attribute Details
#section_class ⇒ Object
Returns the value of attribute section_class.
18 19 20 |
# File 'lib/howitzer/web/section_dsl.rb', line 18 def section_class @section_class end |
Instance Method Details
#element(*args, **options) ⇒ Object
# Defines an element on the section # @see Howitzer::Web::ElementDsl::ClassMethods#element
37 38 39 |
# File 'lib/howitzer/web/section_dsl.rb', line 37 def element(*args, **) section_class.send(:element, *args, **) end |
#finder_args ⇒ Array
If anonymous section uses, then inline selector should be specified. Otherwise arguments should be defined with .me dsl method in named section
Returns selector arguments for the section.
53 54 55 56 57 |
# File 'lib/howitzer/web/section_dsl.rb', line 53 def finder_args return @args if @args.present? @finder_args ||= (section_class.default_finder_args || raise(ArgumentError, 'Missing finder arguments')) end |
#finder_options ⇒ Array
If anonymous section uses, then inline selector should be specified. Otherwise arguments should be defined with .me dsl method in named section
Returns selector options for the section.
65 66 67 |
# File 'lib/howitzer/web/section_dsl.rb', line 65 def @options.presence || section_class. || {} end |
#section(name, *args, **options, &block) ⇒ Object
Delegates a section describing to the section class
43 44 45 |
# File 'lib/howitzer/web/section_dsl.rb', line 43 def section(name, *args, **, &block) section_class.send(:section, name, *args, **, &block) end |