Sha256: fb35ea4c40a1153d09d42ab2b188df81f09331533d33631cee2a9dc0772d8efc

Contents?: true

Size: 931 Bytes

Versions: 3

Compression:

Stored size: 931 Bytes

Contents

module RSpec::RailsApp::Directory
  module Matchers    
    class HaveRailsDir    
      extend RailsAssist::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

    (RailsAssist.artifacts + RailsAssist.specials(:all) + RailsAssist::Directory::Root.root_directories).each do |name|
      class_eval %{
        def have_#{name}_dir
          have_rails_dir :#{name}
        end    
      }
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rails-app-spec-0.5.0 lib/rails_app_spec/matchers/directory/have_rails_dir.rb
rails-app-spec-0.4.0 lib/rails_app_spec/matchers/directory/have_rails_dir.rb
rails-app-spec-0.3.3 lib/rails_app_spec/matchers/directory/have_rails_dir.rb