Sha256: b7728693bba83b37154c7531bb12a88005e744ad655863bbd94027c61592bce7

Contents?: true

Size: 1.48 KB

Versions: 7

Compression:

Stored size: 1.48 KB

Contents

module RSpec::RailsApp::ArtifactFile
  module Matchers
    class HaveRailsArtifactFiles
      extend Rails3::Assist::UseMacro
      use_helpers :file

      include ::ArtifactFile::Matcher::Helper
          
      def initialize(artifact_type, *names)
        @names = names
        extend "Rails3::Assist::Artifact::#{artifact_type.to_s.camelize}".constantize

        handle_view artifact_type, names

        @artifact_type = artifact_type        
      end

      def matches?(root_path, &block) 
        labels = names.to_strings          
        return false if labels.empty?
        begin
          labels.each do |name|
            @artifact_name = name
            @artifact_name = get_artifact_name
            return false if !File.file?(artifact_name)
          end
          yield if block
          true
        rescue
          false
        end
      end            
    end

    def have_rails_artifact_files(artifact_type, *names)
      HaveRailsArtifactFiles.new(artifact_type, *names)
    end
    alias_method :contain_rails_artifact_files, :have_rails_artifact_files
    
    (::Rails3::Assist.artifacts - [:view]).each do |name|
      class_eval %{
        def have_#{name}_files *names
          have_rails_artifact_files :#{name}, *names 
        end
        alias_method :contain_#{name}_files, :have_#{name}_files
      }
    end  
    
    def have_view_files *args
      have_rails_artifact_files :view, *args
    end
    alias_method :contain_view_files, :have_view_files
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
rails-app-spec-0.3.2 lib/rails_app_spec/matchers/artifact/have_rails_artifact_files.rb
rails-app-spec-0.3.1 lib/rails_app_spec/matchers/artifact/have_rails_artifact_files.rb
rails-app-spec-0.3.0 lib/rails_app_spec/matchers/artifact/have_rails_artifact_files.rb
rails-app-spec-0.2.16 lib/rails_app_spec/matchers/artifact/have_rails_artifact_files.rb
rails-app-spec-0.2.15 lib/rails_app_spec/matchers/artifact/have_rails_artifact_files.rb
rails-app-spec-0.2.14 lib/rails_app_spec/matchers/artifact/have_rails_artifact_files.rb
rails-app-spec-0.2.13 lib/rails_app_spec/matchers/artifact/have_rails_artifact_files.rb