Sha256: 0c4ad0246f6b09d03b8c0227f5b956150740ba13a9b7873bb420a87e44fab52a

Contents?: true

Size: 907 Bytes

Versions: 2

Compression:

Stored size: 907 Bytes

Contents

module PageMagic
  class Element
    # contains method for finding element definitions
    module Locators
      # message used when raising {ElementMissingException} from methods within this module
      ELEMENT_NOT_DEFINED_MSG = 'Element not defined: %s'

      # find an element definition based on its name
      # @param [Symbol] name name of the element
      # @return [Element] element definition with the given name
      # @raise [ElementMissingException] raised when element with the given name is not found
      def element_by_name(name, *args)
        defintion = element_definitions[name]
        fail ElementMissingException, (ELEMENT_NOT_DEFINED_MSG % name) unless defintion
        defintion.call(*args.append(self))
      end

      # @return [Array] class level defined element definitions
      def element_definitions
        self.class.element_definitions
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
page_magic-1.0.1 lib/page_magic/element/locators.rb
page_magic-1.0.0 lib/page_magic/element/locators.rb