yard-doctest 0.1.15 → 0.1.16
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/CHANGELOG.md +4 -0
 - data/features/yard-doctest.feature +20 -0
 - data/lib/yard/doctest/example.rb +20 -13
 - data/lib/yard/doctest/version.rb +1 -1
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: c75c418a5cbe791e718cb9ba2deff5f1b187c00ae8578a79d149cda39f567d05
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: e48f64151a5273ddbbc8d0f8efe5327c2f7798d744473ed7ac82e0b49e1b0842
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: a6f46775edc0057a440ae41adcc1377a2125015981ac9dc7fd8cc5481754e8f4d4289a66262b7db51489b0ef1039c6dcd12ac825700d5bd22b687f6228979722
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 69cfad611e30b3f5cd1fc6f672aed1326efd330cc9e6a8a2124316541431d2adf92b0edb71a2a5404f2b0f0a11fac218eec98f1653b36cb6316b80754f1e4c6a
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    
| 
         @@ -590,6 +590,26 @@ Feature: yard doctest 
     | 
|
| 
       590 
590 
     | 
    
         
             
                When I run `bundle exec yard doctest`
         
     | 
| 
       591 
591 
     | 
    
         
             
                Then the output should contain "2 runs, 2 assertions, 0 failures, 0 errors, 0 skips"
         
     | 
| 
       592 
592 
     | 
    
         | 
| 
      
 593 
     | 
    
         
            +
              Scenario: passes example to hooks to allow for inspection
         
     | 
| 
      
 594 
     | 
    
         
            +
                Given a file named "doctest_helper.rb" with:
         
     | 
| 
      
 595 
     | 
    
         
            +
                  """
         
     | 
| 
      
 596 
     | 
    
         
            +
                  YARD::Doctest.before do |example|
         
     | 
| 
      
 597 
     | 
    
         
            +
                    require example.filepath.split(':').first
         
     | 
| 
      
 598 
     | 
    
         
            +
                  end
         
     | 
| 
      
 599 
     | 
    
         
            +
                  """
         
     | 
| 
      
 600 
     | 
    
         
            +
                And a file named "app/app.rb" with:
         
     | 
| 
      
 601 
     | 
    
         
            +
                  """
         
     | 
| 
      
 602 
     | 
    
         
            +
                  # @example
         
     | 
| 
      
 603 
     | 
    
         
            +
                  #   App.foo #=> 'bar'
         
     | 
| 
      
 604 
     | 
    
         
            +
                  class App
         
     | 
| 
      
 605 
     | 
    
         
            +
                    def self.foo
         
     | 
| 
      
 606 
     | 
    
         
            +
                      'bar'
         
     | 
| 
      
 607 
     | 
    
         
            +
                    end
         
     | 
| 
      
 608 
     | 
    
         
            +
                  end
         
     | 
| 
      
 609 
     | 
    
         
            +
                  """
         
     | 
| 
      
 610 
     | 
    
         
            +
                When I run `bundle exec yard doctest`
         
     | 
| 
      
 611 
     | 
    
         
            +
                Then the output should contain "1 runs, 1 assertions, 0 failures, 0 errors, 0 skips"
         
     | 
| 
      
 612 
     | 
    
         
            +
             
     | 
| 
       593 
613 
     | 
    
         
             
              Scenario: can skip tests
         
     | 
| 
       594 
614 
     | 
    
         
             
                Given a file named "doctest_helper.rb" with:
         
     | 
| 
       595 
615 
     | 
    
         
             
                  """
         
     | 
    
        data/lib/yard/doctest/example.rb
    CHANGED
    
    | 
         @@ -26,12 +26,6 @@ module YARD 
     | 
|
| 
       26 
26 
     | 
    
         | 
| 
       27 
27 
     | 
    
         
             
                      return if YARD::Doctest.skips.any? { |skip| this.definition.include?(skip) }
         
     | 
| 
       28 
28 
     | 
    
         | 
| 
       29 
     | 
    
         
            -
                      begin
         
     | 
| 
       30 
     | 
    
         
            -
                        object_name = this.definition.split(/#|\./).first
         
     | 
| 
       31 
     | 
    
         
            -
                        scope = Object.const_get(object_name) if const_defined?(object_name)
         
     | 
| 
       32 
     | 
    
         
            -
                      rescue NameError
         
     | 
| 
       33 
     | 
    
         
            -
                      end
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
29 
     | 
    
         
             
                      describe this.definition do
         
     | 
| 
       36 
30 
     | 
    
         
             
                        # Append this.name to this.definition if YARD's @example tag is followed by
         
     | 
| 
       37 
31 
     | 
    
         
             
                        # descriptive text, to support hooks for multiple examples per code object.
         
     | 
| 
         @@ -41,9 +35,15 @@ module YARD 
     | 
|
| 
       41 
35 
     | 
    
         
             
                                         "#{this.definition}@#{this.name}"
         
     | 
| 
       42 
36 
     | 
    
         
             
                                       end
         
     | 
| 
       43 
37 
     | 
    
         | 
| 
       44 
     | 
    
         
            -
                        register_hooks(example_name, YARD::Doctest.hooks)
         
     | 
| 
      
 38 
     | 
    
         
            +
                        register_hooks(example_name, YARD::Doctest.hooks, this)
         
     | 
| 
       45 
39 
     | 
    
         | 
| 
       46 
40 
     | 
    
         
             
                        it this.name do
         
     | 
| 
      
 41 
     | 
    
         
            +
                          begin
         
     | 
| 
      
 42 
     | 
    
         
            +
                            object_name = this.definition.split(/#|\./).first
         
     | 
| 
      
 43 
     | 
    
         
            +
                            scope = Object.const_get(object_name) if self.class.const_defined?(object_name)
         
     | 
| 
      
 44 
     | 
    
         
            +
                          rescue NameError
         
     | 
| 
      
 45 
     | 
    
         
            +
                          end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
       47 
47 
     | 
    
         
             
                          global_constants = Object.constants
         
     | 
| 
       48 
48 
     | 
    
         
             
                          scope_constants = scope.constants if scope
         
     | 
| 
       49 
49 
     | 
    
         
             
                          this.asserts.each do |assert|
         
     | 
| 
         @@ -140,12 +140,19 @@ module YARD 
     | 
|
| 
       140 
140 
     | 
    
         
             
                    end
         
     | 
| 
       141 
141 
     | 
    
         
             
                  end
         
     | 
| 
       142 
142 
     | 
    
         | 
| 
       143 
     | 
    
         
            -
                   
     | 
| 
       144 
     | 
    
         
            -
                     
     | 
| 
       145 
     | 
    
         
            -
             
     | 
| 
       146 
     | 
    
         
            -
             
     | 
| 
       147 
     | 
    
         
            -
             
     | 
| 
       148 
     | 
    
         
            -
             
     | 
| 
      
 143 
     | 
    
         
            +
                  class << self
         
     | 
| 
      
 144 
     | 
    
         
            +
                    protected
         
     | 
| 
      
 145 
     | 
    
         
            +
             
     | 
| 
      
 146 
     | 
    
         
            +
                    # @param [String] example_name The name of the example.
         
     | 
| 
      
 147 
     | 
    
         
            +
                    # @param [Hash<Symbol, Array<Hash<(test: String, block: Proc)>>] all_hooks
         
     | 
| 
      
 148 
     | 
    
         
            +
                    # @param [Example] example
         
     | 
| 
      
 149 
     | 
    
         
            +
                    def register_hooks(example_name, all_hooks, example)
         
     | 
| 
      
 150 
     | 
    
         
            +
                      all_hooks.each do |type, hooks|
         
     | 
| 
      
 151 
     | 
    
         
            +
                        global_hooks = hooks.reject { |hook| hook[:test] }
         
     | 
| 
      
 152 
     | 
    
         
            +
                        test_hooks   = hooks.select { |hook| hook[:test] && example_name.include?(hook[:test]) }
         
     | 
| 
      
 153 
     | 
    
         
            +
                        __send__(type) do
         
     | 
| 
      
 154 
     | 
    
         
            +
                          (global_hooks + test_hooks).each { |hook| instance_exec(example, &hook[:block]) }
         
     | 
| 
      
 155 
     | 
    
         
            +
                        end
         
     | 
| 
       149 
156 
     | 
    
         
             
                      end
         
     | 
| 
       150 
157 
     | 
    
         
             
                    end
         
     | 
| 
       151 
158 
     | 
    
         
             
                  end
         
     | 
    
        data/lib/yard/doctest/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: yard-doctest
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.16
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Alex Rodionov
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2019-02- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2019-02-08 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: yard
         
     |