Sha256: 292abd60a7c74c3f6fdd09312f09a52d5fa0e1ce0611b673dac4da0d4feea433

Contents?: true

Size: 1.06 KB

Versions: 10

Compression:

Stored size: 1.06 KB

Contents

module RSpec::RailsApp::Directory
  module Matchers    
    class HaveArtifactDirs    
      extend Rails3::Assist::UseMacro
      use_helper :directory
    
      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

10 entries across 10 versions & 1 rubygems

Version Path
rails-app-spec-0.3.2 lib/rails_app_spec/matchers/directory/have_artifact_dirs.rb
rails-app-spec-0.3.1 lib/rails_app_spec/matchers/directory/have_artifact_dirs.rb
rails-app-spec-0.3.0 lib/rails_app_spec/matchers/directory/have_artifact_dirs.rb
rails-app-spec-0.2.16 lib/rails_app_spec/matchers/directory/have_artifact_dirs.rb
rails-app-spec-0.2.15 lib/rails_app_spec/matchers/directory/have_artifact_dirs.rb
rails-app-spec-0.2.14 lib/rails_app_spec/matchers/directory/have_artifact_dirs.rb
rails-app-spec-0.2.13 lib/rails_app_spec/matchers/directory/have_artifact_dirs.rb
rails-app-spec-0.2.12 lib/rails_app_spec/matchers/directory/have_artifact_dirs.rb
rails-app-spec-0.2.10 lib/rails_app_spec/matchers/directory/have_artifact_dirs.rb
rails-app-spec-0.2.8 lib/rails_app_spec/matchers/directory/have_artifact_dirs.rb