splot 0.5.3 → 0.5.4
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 +4 -4
- data/README.md +7 -1
- data/bin/splot +1 -1
- data/lib/splot.rb +5 -2
- data/lib/splot/config.rb +19 -0
- data/lib/splot/runner.rb +15 -0
- data/lib/splot/version.rb +1 -1
- data/test/fixtures/config_example_rc +1 -0
- data/test/splot_test.rb +13 -0
- metadata +5 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: a02e6293df35f85f64deee512f9cf1578ed9ff5e
         | 
| 4 | 
            +
              data.tar.gz: 4d6a6370d513eae9ba1f8d90ef298490132cffdc
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: f46537a99393fe4abe1cbd8463269e0507e94f820a807017de0d1b97c2154d4c8e1e1e912387260907403a067aabbfa770eef5b8c052405144c0f564e9c7ed8a
         | 
| 7 | 
            +
              data.tar.gz: 6b8bb95b26328f36a6ac07adbb1866484714a3add2681831477fab6687258b7d9180adefc42da91ac5a54053b6c7041ef0221aa92effa98bcd9c18b9cbc344ed
         | 
    
        data/README.md
    CHANGED
    
    | @@ -54,6 +54,12 @@ I'm a huge fan of vim dispatch. Here's my `.vimrc` entries that bind `<F5>` to " | |
| 54 54 | 
             
                :map <f5> :w <cr> :execute "Dispatch splot -p spring -f % -l " . ( line(".") + 1 )<cr>
         | 
| 55 55 | 
             
                :map <f6> :w <cr> :Dispatch splot -p spring -f %<cr>
         | 
| 56 56 |  | 
| 57 | 
            +
            ## Project configuration
         | 
| 58 | 
            +
             | 
| 59 | 
            +
            If you have some specific project configuration, you can store arguments to `splot` as key value pairs (parsed by YAML) in a file called `.splotrc` in your project root. For example, if you want to tell `splot` to use `zeus` when running tests in this project:
         | 
| 60 | 
            +
             | 
| 61 | 
            +
                echo "preloader: zeus" > .splotrc
         | 
| 62 | 
            +
             | 
| 57 63 | 
             
            ## Notes and planned features
         | 
| 58 64 |  | 
| 59 65 | 
             
            1. When invoking a `Test::Unit` test, `splot` defaults to using the `rake test`. This is to be compatible with preloaders like `spring` or `zeus`.
         | 
| @@ -61,8 +67,8 @@ I'm a huge fan of vim dispatch. Here's my `.vimrc` entries that bind `<F5>` to " | |
| 61 67 | 
             
            3. I'm planning on adding git integration. Think "auto stage my changes if the tests pass."
         | 
| 62 68 | 
             
            4. `vim-dispatch` seems to be unaware of when a test run passes, causing the "quickfix window" to stick around, even when there isn't a failure. I can potentially work around it in `splot`.
         | 
| 63 69 | 
             
            5. I may write a small vim plugin to simplify the above dispatch mappings. It doesn't seem super necessary at this point, and I like to keep my plugin list small.
         | 
| 64 | 
            -
            6. I'd like to implement project level configuration. That way, you can store the information necessary to teach `splot` how to run your tests inside your project, kind of like how a `ruby-version` file configures the version of ruby you use.
         | 
| 65 70 | 
             
            7. More context specific handlers. For example, running `splot` on a `.gemspec` file should build the gem (if the tests all pass). Ideally, this would be extensible and not bundled in this gem.
         | 
| 71 | 
            +
            8. Auto detect preloaders (zeus/spring/etc).
         | 
| 66 72 |  | 
| 67 73 | 
             
            ## Contributing
         | 
| 68 74 |  | 
    
        data/bin/splot
    CHANGED
    
    
    
        data/lib/splot.rb
    CHANGED
    
    | @@ -5,6 +5,7 @@ require "splot/version" | |
| 5 5 |  | 
| 6 6 | 
             
            module Splot
         | 
| 7 7 | 
             
              autoload :Command,           "splot/command"
         | 
| 8 | 
            +
              autoload :Config,            "splot/config"
         | 
| 8 9 | 
             
              autoload :CorrespondingFile, "splot/corresponding_file"
         | 
| 9 10 | 
             
              autoload :Runner,            "splot/runner"
         | 
| 10 11 |  | 
| @@ -16,11 +17,13 @@ module Splot | |
| 16 17 | 
             
                  params[:file] = new_file
         | 
| 17 18 | 
             
                  params.delete(:line)
         | 
| 18 19 | 
             
                end
         | 
| 20 | 
            +
                params.update Config.read_config params.delete(:config_file)
         | 
| 19 21 | 
             
                Command.for(params[:file]).new(params).command
         | 
| 20 22 | 
             
              end
         | 
| 21 23 |  | 
| 22 | 
            -
              def self. | 
| 23 | 
            -
                Runner.new.tap(&:parse).command
         | 
| 24 | 
            +
              def self.exec_command_from_argv
         | 
| 25 | 
            +
                command = Runner.new.tap(&:parse).command
         | 
| 26 | 
            +
                Kernel.exec command
         | 
| 24 27 | 
             
              rescue RunnerNotFoundError => e
         | 
| 25 28 | 
             
                warn "Warning: #{e}; will not run any test"
         | 
| 26 29 | 
             
                exit 2
         | 
    
        data/lib/splot/config.rb
    ADDED
    
    | @@ -0,0 +1,19 @@ | |
| 1 | 
            +
            require 'yaml'
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Splot
         | 
| 4 | 
            +
              module Config
         | 
| 5 | 
            +
                extend self
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                def read_config(config_path)
         | 
| 8 | 
            +
                  return {} unless File.size? String(config_path)
         | 
| 9 | 
            +
                  symbolize_keys YAML.load File.read config_path
         | 
| 10 | 
            +
                end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                def symbolize_keys(hash)
         | 
| 13 | 
            +
                  hash.keys.each do |k|
         | 
| 14 | 
            +
                    hash[k.to_sym] = hash.delete k if k.is_a?(String)
         | 
| 15 | 
            +
                  end
         | 
| 16 | 
            +
                  hash
         | 
| 17 | 
            +
                end
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
            end
         | 
    
        data/lib/splot/runner.rb
    CHANGED
    
    | @@ -11,6 +11,11 @@ module Splot | |
| 11 11 | 
             
                end
         | 
| 12 12 |  | 
| 13 13 | 
             
                def parse
         | 
| 14 | 
            +
                  parse_splotrc
         | 
| 15 | 
            +
                  parse_command_line_arguments
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                def parse_command_line_arguments
         | 
| 14 19 | 
             
                  OptionParser.new do |opts|
         | 
| 15 20 | 
             
                    opts.banner = "Usage: #{File.basename($PROGRAM_NAME)} [options]"
         | 
| 16 21 |  | 
| @@ -35,5 +40,15 @@ module Splot | |
| 35 40 | 
             
                    end
         | 
| 36 41 | 
             
                  end.parse!
         | 
| 37 42 | 
             
                end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                def parse_splotrc
         | 
| 45 | 
            +
                  params[:config_file] = splotrc if File.size? splotrc
         | 
| 46 | 
            +
                end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                private
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                def splotrc
         | 
| 51 | 
            +
                  ".splotrc"
         | 
| 52 | 
            +
                end
         | 
| 38 53 | 
             
              end
         | 
| 39 54 | 
             
            end
         | 
    
        data/lib/splot/version.rb
    CHANGED
    
    
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            preloader: spring
         | 
    
        data/test/splot_test.rb
    CHANGED
    
    | @@ -83,6 +83,19 @@ class SplotTest < Minitest::Test | |
| 83 83 | 
             
                  Splot.command(file: "lib/splot.rb", line: 5)
         | 
| 84 84 | 
             
              end
         | 
| 85 85 |  | 
| 86 | 
            +
              def test_config_file_can_set_params
         | 
| 87 | 
            +
                assert_equal "spring rspec path/to/my_spec.rb",
         | 
| 88 | 
            +
                  Splot.command(file: "path/to/my_spec.rb", config_file: "test/fixtures/config_example_rc")
         | 
| 89 | 
            +
              end
         | 
| 90 | 
            +
             | 
| 91 | 
            +
              def test_auto_loads_dot_splotrc
         | 
| 92 | 
            +
                splotrc = File.expand_path('../../.splotrc', __FILE__)
         | 
| 93 | 
            +
                File.write splotrc, "include_path: test/fixtures"
         | 
| 94 | 
            +
                assert_equal 0, run_binary(runner: "ruby", file: "test/fixtures/test_unit_example_test.rb", line: 5)
         | 
| 95 | 
            +
              ensure
         | 
| 96 | 
            +
                File.unlink splotrc if File.exist? splotrc
         | 
| 97 | 
            +
              end
         | 
| 98 | 
            +
             | 
| 86 99 | 
             
              private
         | 
| 87 100 |  | 
| 88 101 | 
             
              def run_binary(params = {})
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: splot
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.5. | 
| 4 | 
            +
              version: 0.5.4
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - ntl
         | 
| @@ -112,16 +112,19 @@ files: | |
| 112 112 | 
             
            - bin/splot
         | 
| 113 113 | 
             
            - lib/splot.rb
         | 
| 114 114 | 
             
            - lib/splot/command.rb
         | 
| 115 | 
            +
            - lib/splot/config.rb
         | 
| 115 116 | 
             
            - lib/splot/corresponding_file.rb
         | 
| 116 117 | 
             
            - lib/splot/runner.rb
         | 
| 117 118 | 
             
            - lib/splot/version.rb
         | 
| 118 119 | 
             
            - splot.gemspec
         | 
| 119 120 | 
             
            - test/corresponding_file_test.rb
         | 
| 120 121 | 
             
            - test/fixtures/activesupport_example_test.rb
         | 
| 122 | 
            +
            - test/fixtures/config_example_rc
         | 
| 121 123 | 
             
            - test/fixtures/fake_test_helper.rb
         | 
| 122 124 | 
             
            - test/fixtures/test_unit_example_test.rb
         | 
| 123 125 | 
             
            - test/splot_test.rb
         | 
| 124 126 | 
             
            - test/test_helper.rb
         | 
| 127 | 
            +
            - tmp/.gitkeep
         | 
| 125 128 | 
             
            homepage: https://github.com/ntl/splot
         | 
| 126 129 | 
             
            licenses:
         | 
| 127 130 | 
             
            - MIT
         | 
| @@ -149,6 +152,7 @@ summary: Run any test from any file from any project :) | |
| 149 152 | 
             
            test_files:
         | 
| 150 153 | 
             
            - test/corresponding_file_test.rb
         | 
| 151 154 | 
             
            - test/fixtures/activesupport_example_test.rb
         | 
| 155 | 
            +
            - test/fixtures/config_example_rc
         | 
| 152 156 | 
             
            - test/fixtures/fake_test_helper.rb
         | 
| 153 157 | 
             
            - test/fixtures/test_unit_example_test.rb
         | 
| 154 158 | 
             
            - test/splot_test.rb
         |