Sha256: 6ceb29e41e76ef264f2589cc3dbcc03f6d00373915820d32a6f01a2a1b25c217

Contents?: true

Size: 814 Bytes

Versions: 3

Compression:

Stored size: 814 Bytes

Contents

require 'forwardable'

module SitePrism
  class Page
    extend Forwardable

    def_delegator :@applier, :shift_event

    class << self
      def inherited(subclass)
        # This code is required to allow subpages to inherit
        # a defined adjuster block. Otherwise, that block should be
        # duplicated in a subpage as well.
        subclass.instance_variable_set(:@vcr_adjuster, @vcr_adjuster)
      end

      def vcr_options_for_load(&block)
        @vcr_adjuster = block
      end

      def vcr_adjuster
        @vcr_adjuster
      end
    end

    def initialize(*args)
      super

      @applier = SPV::Applier.new(
        self,
        &self.class.vcr_adjuster
      )
    end

    def load_and_apply_vcr(*args, &block)
      shift_event { load(*args) }.apply_vcr(&block)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
site_prism.vcr-0.1.2 lib/site_prism_vcr/patches/page.rb
site_prism.vcr-0.1.1 lib/site_prism_vcr/patches/page.rb
site_prism.vcr-0.1.0 lib/site_prism_vcr/patches/page.rb