Sha256: 055649f33c01daeb1a82ea38775cd4171312034ab95b1335b62617c668940f96

Contents?: true

Size: 959 Bytes

Versions: 7

Compression:

Stored size: 959 Bytes

Contents

module CucumberAnalytics

  # A mix-in module containing methods used by elements that are nested inside
  # of other elements.

  module Nested

    # The parent object that contains *self*
    attr_accessor :parent_element


    # Returns the ancestor of *self* that matches the given type.
    def get_ancestor(ancestor_type)
      ancestor = self.parent_element
      target_type = {:directory => Directory,
                     :feature_file => FeatureFile,
                     :feature => Feature,
                     :test => TestElement,
                     :step => Step,
                     :table => Table,
                     :example => Example
      }[ancestor_type]

      raise(ArgumentError, "Unknown ancestor type '#{ancestor_type}'.") if target_type.nil?

      until ancestor.is_a?(target_type) || ancestor.nil?
        ancestor = ancestor.parent_element
      end

      ancestor
    end

  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
cucumber_analytics-1.6.0 lib/cucumber_analytics/nested.rb
cucumber_analytics-1.5.2 lib/cucumber_analytics/nested.rb
cucumber_analytics-1.5.1 lib/cucumber_analytics/nested.rb
cucumber_analytics-1.5.0 lib/cucumber_analytics/nested.rb
cucumber_analytics-1.4.2 lib/cucumber_analytics/nested.rb
cucumber_analytics-1.4.1 lib/cucumber_analytics/nested.rb
cucumber_analytics-1.4.0 lib/cucumber_analytics/nested.rb