Sha256: 9aab24df8f8cd75b6b2e02f7ab04850e0403a3a229c261318ea44dc2d2ce767c

Contents?: true

Size: 1 KB

Versions: 2

Compression:

Stored size: 1 KB

Contents

module RSpec::RailsApp::Dir
  module Matchers    
    class HaveRailsDir    
      include ::Rails::Assist::App
    
      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

    ::Rails::Assist::App::RailsDirs.root_directories.each do |name|
      class_eval %{
        def have_#{name}_dir
          have_rails_dir :#{name}
        end    
      }
    end

    ::Rails::Assist::App::RailsDirs.app_directories.each do |name|
      class_eval %{
        def have_#{name}_dir
          have_rails_dir :#{name}
        end    
      }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rails-app-spec-0.2.0 lib/rails_app_spec/matchers/file/have_rails_dir.rb
rails-app-spec-0.1.0 lib/rails_app_spec/matchers/file/have_rails_dir.rb