grspec 0.0.2 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/bin/grspec +0 -0
- data/lib/find_changed_files.rb +22 -5
- data/lib/find_matching_specs.rb +13 -4
- data/lib/spec_runner.rb +0 -0
- metadata +4 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
             | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 2 | 
            +
            SHA1:
         | 
| 3 | 
            +
              metadata.gz: 5fed8d85358aba0b5235c0d7a67829830e916fdd
         | 
| 4 | 
            +
              data.tar.gz: dc77a91cebad89157204954bf70484bc7dbea222
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: aedfb223a5019cb25983ac80c5d79eea97264fee32c4d9f0b66cc5a013878cc7e7b6394c248700d7e67ecfb7ea6543ec7cf25cc569e46dbfc80d43899da3ee2e
         | 
| 7 | 
            +
              data.tar.gz: 3c81c5e91bbdaef83e4a1721b004d906e46687ca873db2b3a747f940a6a4ccc9ad09063e432a98ca094b9cf5aeb5bb7f92feb0cc11354c6b563f021dc7eb461a
         | 
    
        data/bin/grspec
    CHANGED
    
    | 
            File without changes
         | 
    
        data/lib/find_changed_files.rb
    CHANGED
    
    | @@ -1,8 +1,11 @@ | |
| 1 1 | 
             
            class FindChangedFiles
         | 
| 2 | 
            +
              class GitDiffError < StandardError; end
         | 
| 3 | 
            +
             | 
| 2 4 | 
             
              attr_reader :args
         | 
| 3 5 |  | 
| 4 6 | 
             
              GIT_DIFF_COMMAND = 'git diff'.freeze
         | 
| 5 7 | 
             
              GIT_DIFF_OPTIONS = '--name-only'.freeze
         | 
| 8 | 
            +
              REDIRECT_STDERR_TO_STDOUT = '2>&1'.freeze
         | 
| 6 9 |  | 
| 7 10 | 
             
              def initialize(args)
         | 
| 8 11 | 
             
                @args = args
         | 
| @@ -10,9 +13,13 @@ class FindChangedFiles | |
| 10 13 |  | 
| 11 14 | 
             
              def call
         | 
| 12 15 | 
             
                changed_files = differed_files
         | 
| 13 | 
            -
                changed_files += untracked_files if simple_diff?
         | 
| 14 16 |  | 
| 15 | 
            -
                 | 
| 17 | 
            +
                if simple_diff?
         | 
| 18 | 
            +
                  changed_files += untracked_files
         | 
| 19 | 
            +
                  changed_files += staged_files
         | 
| 20 | 
            +
                end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                changed_files
         | 
| 16 23 | 
             
              end
         | 
| 17 24 |  | 
| 18 25 | 
             
              private
         | 
| @@ -26,10 +33,20 @@ class FindChangedFiles | |
| 26 33 | 
             
              end
         | 
| 27 34 |  | 
| 28 35 | 
             
              def differed_files
         | 
| 29 | 
            -
                 | 
| 36 | 
            +
                @differed_files ||= begin
         | 
| 37 | 
            +
                  diff_output = `#{GIT_DIFF_COMMAND} #{stringified_args} #{GIT_DIFF_OPTIONS} #{REDIRECT_STDERR_TO_STDOUT}`
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                  raise GitDiffError.new("Bad git diff arguments; #{stringified_args}") unless $?.success?
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                  diff_output.split("\n")
         | 
| 42 | 
            +
                end
         | 
| 30 43 | 
             
              end
         | 
| 31 44 |  | 
| 32 45 | 
             
              def untracked_files
         | 
| 33 | 
            -
                `git ls-files . --exclude-standard --others | 
| 46 | 
            +
                `git ls-files . --exclude-standard --others`.split("\n")
         | 
| 47 | 
            +
              end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
              def staged_files
         | 
| 50 | 
            +
                `#{GIT_DIFF_COMMAND} --staged #{GIT_DIFF_OPTIONS}`.split("\n")
         | 
| 34 51 | 
             
              end
         | 
| 35 | 
            -
            end
         | 
| 52 | 
            +
            end
         | 
    
        data/lib/find_matching_specs.rb
    CHANGED
    
    | @@ -1,7 +1,8 @@ | |
| 1 1 | 
             
            class FindMatchingSpecs
         | 
| 2 2 | 
             
              attr_reader :directory, :files
         | 
| 3 3 |  | 
| 4 | 
            -
              RUBY_FILE_EXTENSION = '.rb'
         | 
| 4 | 
            +
              RUBY_FILE_EXTENSION = '.rb'.freeze
         | 
| 5 | 
            +
              SPEC_PREFIX_AND_EXTENSION = '_spec.rb'.freeze
         | 
| 5 6 |  | 
| 6 7 | 
             
              def initialize(files)
         | 
| 7 8 | 
             
                @files = files
         | 
| @@ -18,18 +19,26 @@ class FindMatchingSpecs | |
| 18 19 | 
             
              private
         | 
| 19 20 |  | 
| 20 21 | 
             
              def spec_file_listing
         | 
| 21 | 
            -
                @spec_file_listing ||= Dir.glob(" | 
| 22 | 
            +
                @spec_file_listing ||= Dir.glob("**/spec/**/*#{SPEC_PREFIX_AND_EXTENSION}")
         | 
| 22 23 | 
             
              end
         | 
| 23 24 |  | 
| 24 25 | 
             
              def ruby_file?(filename)
         | 
| 25 26 | 
             
                filename.end_with?(RUBY_FILE_EXTENSION)
         | 
| 26 27 | 
             
              end
         | 
| 27 28 |  | 
| 29 | 
            +
              def spec_file?(filename)
         | 
| 30 | 
            +
                filename.end_with?(SPEC_PREFIX_AND_EXTENSION)
         | 
| 31 | 
            +
              end
         | 
| 32 | 
            +
             | 
| 28 33 | 
             
              def specs_for(filename)
         | 
| 29 | 
            -
                 | 
| 34 | 
            +
                return [filename] if spec_file?(filename)
         | 
| 30 35 |  | 
| 31 36 | 
             
                spec_file_listing.select do |spec_file|
         | 
| 32 | 
            -
                  spec_file. | 
| 37 | 
            +
                  file_for_spec = spec_file.gsub(/\/?spec\//, '/')
         | 
| 38 | 
            +
                  file_for_spec.sub!(SPEC_PREFIX_AND_EXTENSION, RUBY_FILE_EXTENSION)
         | 
| 39 | 
            +
                  file_for_spec.sub!(/^\//, '')
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                  file_for_spec == filename
         | 
| 33 42 | 
             
                end
         | 
| 34 43 | 
             
              end
         | 
| 35 44 | 
             
            end
         | 
    
        data/lib/spec_runner.rb
    CHANGED
    
    | 
            File without changes
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: grspec
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.1.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Jordane Lew
         | 
| @@ -28,6 +28,8 @@ licenses: | |
| 28 28 | 
             
            - MIT
         | 
| 29 29 | 
             
            metadata:
         | 
| 30 30 | 
             
              source_code_uri: https://github.com/yumoose/grspec
         | 
| 31 | 
            +
              changelog_uri: https://github.com/yumoose/grspec/blob/master/CHANGELOG.md
         | 
| 32 | 
            +
              bug_tracker_uri: https://github.com/yumoose/grspec/issues
         | 
| 31 33 | 
             
            post_install_message: 
         | 
| 32 34 | 
             
            rdoc_options: []
         | 
| 33 35 | 
             
            require_paths:
         | 
| @@ -44,7 +46,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 44 46 | 
             
                  version: '0'
         | 
| 45 47 | 
             
            requirements: []
         | 
| 46 48 | 
             
            rubyforge_project: 
         | 
| 47 | 
            -
            rubygems_version: 2. | 
| 49 | 
            +
            rubygems_version: 2.5.2
         | 
| 48 50 | 
             
            signing_key: 
         | 
| 49 51 | 
             
            specification_version: 4
         | 
| 50 52 | 
             
            summary: A simple spec runner for differed files
         |