Sha256: 185dca80dbf8bbfbd04f0599ce1c10beda0e8ef06a6c52c410b2fc47f393c32c

Contents?: true

Size: 943 Bytes

Versions: 10

Compression:

Stored size: 943 Bytes

Contents

module RSpec::RailsApp::Directory
  module Matchers    
    class HaveRailsDir    
      extend Rails3::Assist::UseMacro
      use_helper :directory
    
      attr_accessor :dir, :type

      def initialize(type = nil)
        @type = type
      end

      def matches?(obj, &block)
        @dir = send :"#{type}_dir"
        File.directory? dir
      end          
  
      def failure_message
        "Expected Rails app to have dir: #{relative_path}, but it didn't"
      end

      def negative_failure_message
        "Did not expected Rails app to have dir: #{relative_path}, but it did"
      end   
    end

    def have_rails_dir(type = nil)
      HaveRailsDir.new(type)
    end

    (Rails3::Assist.artifacts + Rails3::Assist.specials(:all) + Rails3::Assist::Directory::Root.root_directories).each do |name|
      class_eval %{
        def have_#{name}_dir
          have_rails_dir :#{name}
        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_rails_dir.rb
rails-app-spec-0.3.1 lib/rails_app_spec/matchers/directory/have_rails_dir.rb
rails-app-spec-0.3.0 lib/rails_app_spec/matchers/directory/have_rails_dir.rb
rails-app-spec-0.2.16 lib/rails_app_spec/matchers/directory/have_rails_dir.rb
rails-app-spec-0.2.15 lib/rails_app_spec/matchers/directory/have_rails_dir.rb
rails-app-spec-0.2.14 lib/rails_app_spec/matchers/directory/have_rails_dir.rb
rails-app-spec-0.2.13 lib/rails_app_spec/matchers/directory/have_rails_dir.rb
rails-app-spec-0.2.12 lib/rails_app_spec/matchers/directory/have_rails_dir.rb
rails-app-spec-0.2.10 lib/rails_app_spec/matchers/directory/have_rails_dir.rb
rails-app-spec-0.2.8 lib/rails_app_spec/matchers/directory/have_rails_dir.rb