Sha256: f7b197afac8c5d7d8c3aef7bfee3cb15740f284118531a0c781f2b4cf4b9017c

Contents?: true

Size: 983 Bytes

Versions: 12

Compression:

Stored size: 983 Bytes

Contents

# frozen_string_literal: true

module PageMagic
  # for the benefit of pull review :@
  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)
        definition = element_definitions[name]
        raise ElementMissingException, (ELEMENT_NOT_DEFINED_MSG % name) unless definition

        definition.call(self, *args)
      end

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

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
page_magic-2.0.13 lib/page_magic/element/locators.rb
page_magic-2.0.12 lib/page_magic/element/locators.rb
page_magic-2.0.11 lib/page_magic/element/locators.rb
page_magic-2.0.10 lib/page_magic/element/locators.rb
page_magic-2.0.9 lib/page_magic/element/locators.rb
page_magic-2.0.6 lib/page_magic/element/locators.rb
page_magic-2.0.5 lib/page_magic/element/locators.rb
page_magic-2.0.4 lib/page_magic/element/locators.rb
page_magic-2.0.3 lib/page_magic/element/locators.rb
page_magic-2.0.2 lib/page_magic/element/locators.rb
page_magic-2.0.1 lib/page_magic/element/locators.rb
page_magic-2.0.0 lib/page_magic/element/locators.rb