cucumber-expressions 5.0.12 → 5.0.13
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
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: e37bfd25d2fa6ce81bb76f2a0e4b155b23d7c243
         | 
| 4 | 
            +
              data.tar.gz: a843eb27ff496f5744bb8fc9b7ff2993640a029a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 7a9c2d12d144a509ff625e72c67cf1b1e2504a2ecab38086f85aa019150e59437ee06807efb5d65c398f7314c52f1677cb7429d75ff442316c043c0d0987d4f3
         | 
| 7 | 
            +
              data.tar.gz: 8a9e6c44e79d1c713ff2dac7b6b5a2327001615df1ae4e8a356dcc682b7ac71a06629a9f0f5ac5f8d6f053380c5223657eb60ae007a3c0668bdc2a08f30996e4
         | 
| @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            # -*- encoding: utf-8 -*-
         | 
| 2 2 | 
             
            Gem::Specification.new do |s|
         | 
| 3 3 | 
             
              s.name        = 'cucumber-expressions'
         | 
| 4 | 
            -
              s.version     = '5.0. | 
| 4 | 
            +
              s.version     = '5.0.13'
         | 
| 5 5 | 
             
              s.authors     = ["Aslak Hellesøy"]
         | 
| 6 6 | 
             
              s.description = 'Cucumber Expressions - a simpler alternative to Regular Expressions'
         | 
| 7 7 | 
             
              s.summary     = "cucumber-expressions-#{s.version}"
         | 
| @@ -3,24 +3,18 @@ require 'cucumber/cucumber_expressions/group_builder' | |
| 3 3 | 
             
            module Cucumber
         | 
| 4 4 | 
             
              module CucumberExpressions
         | 
| 5 5 | 
             
                class TreeRegexp
         | 
| 6 | 
            -
                  REGEXP_CHARS = ['#', '$', '(', ')', '*', '+', '.', '?', '[', '\\', '^', '{', '|']
         | 
| 7 | 
            -
             | 
| 8 6 | 
             
                  attr_reader :regexp, :group_builder
         | 
| 9 7 |  | 
| 10 8 | 
             
                  def initialize(regexp)
         | 
| 11 9 | 
             
                    @regexp = regexp.is_a?(Regexp) ? regexp : Regexp.new(regexp)
         | 
| 12 | 
            -
             | 
| 13 10 | 
             
                    stack = [GroupBuilder.new]
         | 
| 14 11 | 
             
                    group_start_stack = []
         | 
| 15 12 | 
             
                    last = nil
         | 
| 16 13 | 
             
                    escaping = false
         | 
| 17 14 | 
             
                    non_capturing_maybe = false
         | 
| 15 | 
            +
             | 
| 18 16 | 
             
                    @regexp.source.split('').each_with_index do |c, n|
         | 
| 19 | 
            -
                      if  | 
| 20 | 
            -
                        escaping = false
         | 
| 21 | 
            -
                      elsif c == '\\'
         | 
| 22 | 
            -
                        escaping = true
         | 
| 23 | 
            -
                      elsif c == '(' && !escaping
         | 
| 17 | 
            +
                      if c == '(' && !escaping
         | 
| 24 18 | 
             
                        stack.push(GroupBuilder.new)
         | 
| 25 19 | 
             
                        group_start_stack.push(n+1)
         | 
| 26 20 | 
             
                        non_capturing_maybe = false
         | 
| @@ -40,15 +34,13 @@ module Cucumber | |
| 40 34 | 
             
                        stack.last.set_non_capturing!
         | 
| 41 35 | 
             
                        non_capturing_maybe = false
         | 
| 42 36 | 
             
                      end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                      escaping = c == '\\' && !escaping
         | 
| 43 39 | 
             
                      last = c
         | 
| 44 40 | 
             
                    end
         | 
| 45 41 | 
             
                    @group_builder = stack.pop
         | 
| 46 42 | 
             
                  end
         | 
| 47 43 |  | 
| 48 | 
            -
                  def regexp_char?(c)
         | 
| 49 | 
            -
                    REGEXP_CHARS.include?(c)
         | 
| 50 | 
            -
                  end
         | 
| 51 | 
            -
             | 
| 52 44 | 
             
                  def match(s)
         | 
| 53 45 | 
             
                    match = @regexp.match(s)
         | 
| 54 46 | 
             
                    return nil if match.nil?
         | 
| @@ -65,6 +65,12 @@ module Cucumber | |
| 65 65 | 
             
                    expect(group.children.length).to eq(1)
         | 
| 66 66 | 
             
                  end
         | 
| 67 67 |  | 
| 68 | 
            +
                  it 'works with digit and word' do
         | 
| 69 | 
            +
                    tr = TreeRegexp.new(/^(\d) (\w+)$/)
         | 
| 70 | 
            +
                    group = tr.match("2 you")
         | 
| 71 | 
            +
                    expect(group.children.length).to eq(2)
         | 
| 72 | 
            +
                  end
         | 
| 73 | 
            +
             | 
| 68 74 | 
             
                  it 'captures non capturing groups with capturing groups inside' do
         | 
| 69 75 | 
             
                    tr = TreeRegexp.new(/the stdout(?: from "(.*?)")?/)
         | 
| 70 76 | 
             
                    group = tr.match("the stdout")
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: cucumber-expressions
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 5.0. | 
| 4 | 
            +
              version: 5.0.13
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Aslak Hellesøy
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2018-01- | 
| 11 | 
            +
            date: 2018-01-21 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -131,7 +131,7 @@ rubyforge_project: | |
| 131 131 | 
             
            rubygems_version: 2.6.8
         | 
| 132 132 | 
             
            signing_key: 
         | 
| 133 133 | 
             
            specification_version: 4
         | 
| 134 | 
            -
            summary: cucumber-expressions-5.0. | 
| 134 | 
            +
            summary: cucumber-expressions-5.0.13
         | 
| 135 135 | 
             
            test_files:
         | 
| 136 136 | 
             
            - spec/capture_warnings.rb
         | 
| 137 137 | 
             
            - spec/coverage.rb
         |