Sha256: 4244b37f115f8e372962124556b5343b3b59cbebcfc3be5861aec11a7e710f15

Contents?: true

Size: 1022 Bytes

Versions: 1

Compression:

Stored size: 1022 Bytes

Contents

module RSpec::RailsApp::Directory
  module Matchers    
    class HaveArtifactDirs    
    
      attr_accessor :artifact_type, :dir, :dir_name, :dirs

      def initialize artifact_type, *dirs
        @artifact_type = artifact_type
        @dirs = dirs
      end

      def matches?(obj, &block)
        dirs.to_strings.each do |dir_name|
          @dir_name = dir_name
          @dir = File.join(send :"#{artifact_type}_dir", dir_name)
          return false if !File.directory?(dir)
        end
        yield if block
        true
      end          
  
      def msg
        "Rails app to have the #{artifact_type} dir: #{dir_name}"
      end
  
      def failure_message
        "Expected #{msg}"
      end

      def negative_failure_message
        "Did not expect #{msg}"
      end   
    end
    
    ::Rails3::Assist::Directory::App.app_directories.each do |name|
      class_eval %{
        def have_#{name}_dirs *names
          have_artifact_dirs :#{name}, *names
        end    
      }
    end    
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rails-app-spec-0.2.7 lib/rails_app_spec/matchers/directory/have_artifact_dirs.rb