Sha256: 418480382950446d4400ed098c2a13348a392ee2a34e87813f3a9429e1a5e545

Contents?: true

Size: 883 Bytes

Versions: 11

Compression:

Stored size: 883 Bytes

Contents

module Lopata
  module RSpec
    module AR
      module DSL
        def self.included(base)
          base.extend(ClassMethods)
        end

        def cleanup(*objects)
          return if Lopata::Config.ops[:keep]
          objects.flatten.compact.each do |o|
            begin
              o.reload.destroy!
            rescue ActiveRecord::RecordNotFound
              # Already destroyed
            end
          end
        end

        def reload(*objects)
          objects.flatten.each(&:reload)
        end


        module ClassMethods
          def cleanup(*vars, &block)
            unless vars.empty?
              teardown do
                cleanup vars.map { |v| instance_variable_get "@#{v}" }
              end
            end
            teardown &block if block_given?
          end
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
lopata-0.1.1 lib/lopata/rspec/ar_dsl.rb
lopata-0.1.0 lib/lopata/rspec/ar_dsl.rb
lopata-0.0.16 lib/lopata/rspec/ar_dsl.rb
lopata-0.0.15 lib/lopata/rspec/ar_dsl.rb
lopata-0.0.14 lib/lopata/rspec/ar_dsl.rb
lopata-0.0.13 lib/lopata/rspec/ar_dsl.rb
lopata-0.0.12 lib/lopata/rspec/ar_dsl.rb
lopata-0.0.11 lib/lopata/rspec/ar_dsl.rb
lopata-0.0.10 lib/lopata/rspec/ar_dsl.rb
lopata-0.0.9 lib/lopata/rspec/ar_dsl.rb
lopata-0.0.8 lib/lopata/rspec/ar_dsl.rb