Sha256: b692fb6db0a8e4c1270236567b8608513f258f377d70c2ce336420d7a2c15800

Contents?: true

Size: 1.32 KB

Versions: 5

Compression:

Stored size: 1.32 KB

Contents

module CucumberExt
  def self.included(obj)
    #add_set_images_to_results(obj)
    add_images_to_results(obj)
    add_push_image_to_results(obj)
    add_delete_images_to_results(obj)
  end

  def self.add_delete_images_to_results(klass)
    klass.class_eval {
      define_method('delete_images') {
        Cucumber::Constants::IMAGES.each { |i| 
          Cucumber::Constants::IMAGES.delete(i) 
        }
      }
    }
  end


  def self.add_set_images_to_results(klass)
    klass.class_eval {
      define_method('set_images') {
        @images = [] unless @images.kind_of?(Array)
      }
    }
  end

  def self.add_images_to_results(klass)
    klass.class_eval {
      define_method('images') {
        #set_images
        Cucumber::Constants::IMAGES #@images
      }
    }
  end

  def self.add_push_image_to_results(klass)
    klass.class_eval {
      define_method('add_image') { |params={}, &block|
        raise ArgumentError unless params.has_key?(:src)
        raise ArgumentError unless params.has_key?(:label)
        Cucumber::Constants::IMAGES << {:src => params[:src], :label => params[:label]}
      }
    }
  end

end

module Cucumber
  module Constants
    IMAGES = []
  end
  class Runtime
    class ForProgrammingLanguages
      include CucumberExt 
    end
  end
  class StepMother < Runtime
      include CucumberExt 
  end
end


Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
whirlwind-0.1.8 lib/cucumber.rb
whirlwind-0.1.7 lib/cucumber.rb
whirlwind-0.1.6 lib/cucumber.rb
whirlwind-0.1.5 lib/cucumber.rb
whirlwind-0.1.4 lib/cucumber.rb