Sha256: d8f687d33de391e8962710b4a5aa9b3a59dee41becacb254f0118140f14df92b

Contents?: true

Size: 813 Bytes

Versions: 4

Compression:

Stored size: 813 Bytes

Contents

module VCR
  class CucumberTags
    class << self
      def tags
        @tags.dup
      end

      def add_tag(tag)
        @tags << tag
      end
    end

    @tags = []
    def initialize(main_object)
      @main_object = main_object
    end

    def tags(*tag_names)
      options = tag_names.last.is_a?(::Hash) ? tag_names.pop : {}
      tag_names.each do |tag_name|
        tag_name = "@#{tag_name}" unless tag_name =~ /^@/
        cassette_name = "cucumber_tags/#{tag_name.gsub(/\A@/, '')}"

        @main_object.instance_eval do
          Before(tag_name) do
            VCR.create_cassette!(cassette_name, options)
          end

          After(tag_name) do
            VCR.destroy_cassette!
          end
        end
        self.class.add_tag(tag_name)
      end
    end
    alias :tag :tags
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
vcr-0.2.0 lib/vcr/cucumber_tags.rb
vcr-0.1.2 lib/vcr/cucumber_tags.rb
vcr-0.1.1 lib/vcr/cucumber_tags.rb
vcr-0.1.0 lib/vcr/cucumber_tags.rb