cowl 0.6 → 0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (7) hide show
  1. checksums.yaml +5 -5
  2. data/CONFIGURE.md +1 -1
  3. data/README.md +11 -8
  4. data/bin/cowl +53 -48
  5. data/lib/cowl.rb +92 -85
  6. data/lib/version.rb +1 -1
  7. metadata +36 -64
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f4c8fcb9be685e11e164c6fafa86fe354eba6714
4
- data.tar.gz: 6c8b6e63914a308fc77da6423f9b1e2a38f4e5a0
2
+ SHA256:
3
+ metadata.gz: 6e48650353ef98dadd70e3b3fc38e826c10c97aff618f88c511caf0286f5f549
4
+ data.tar.gz: 29021bd7603d0ccbdf675ee2087f38db260ff81fbdd4362a6af4a2b2110479ea
5
5
  SHA512:
6
- metadata.gz: a2663c5811b77a77bb346337ec43e48974b9073dc18a997f9261fe6c7629f71b1676989a1f73a2be3c52dcccd10db08359a7441a92bf2cedc1dbbd66e2b19635
7
- data.tar.gz: b84ce5aa9cff6f05194c397c36498b087913dc98b63005694031135a0ab3189ac851ca292fba3b14a5a034cb9ee259c7fdb779c5bb31c906d911c87bf3b2faff
6
+ metadata.gz: f4754a3574c0d0a19e860e7d9b796e477fe5e643a371ed5937e69961595c2f8ea376e1dad9c946058ecfe18317235b10cddf8cef4f262b1cba7c14eeab441dc4
7
+ data.tar.gz: fa2410d71cc62eca82074a4503c9a8675ac3c3476787d06b4d113613c812aeadb14b66181f1799ae5042d406c0307f68a8d5f94631a7e01ec971190bd5443df2
@@ -12,7 +12,7 @@ Any command-line flags that are present override the same settings in dotfiles a
12
12
 
13
13
  Run `cowl -h` or `cowl --help` for a full list, or refer to the source code for `bin/cowl`.
14
14
 
15
- ```
15
+ ```console
16
16
  $ cowl -h
17
17
  Usage: cowl [options] [<files>]
18
18
  -i, --ignore pattern Ignore file patterns (fnmatch)
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # EXAMPLES
6
6
 
7
- ```
7
+ ```console
8
8
  $ cowl examples/
9
9
  examples/hello.bf:3:++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
10
10
 
@@ -24,6 +24,7 @@ $ cowl -h
24
24
  Usage: cowl [options] [<files>|-]
25
25
  -i, --ignore pattern Ignore file patterns (fnmatch)
26
26
  -w, --max-width= Maximum column width, either an integer or "unlimited". Default: 80
27
+ -s, --stat Output in STAT
27
28
  -h, --help Print usage info
28
29
  -v, --version Print version info
29
30
  ```
@@ -49,20 +50,22 @@ cowl is a shell wrapper around the traditional GNU [grep](http://www.gnu.org/sof
49
50
 
50
51
  # REQUIREMENTS
51
52
 
52
- * [Ruby](https://www.ruby-lang.org/) 2.0+
53
- * [grep](http://www.gnu.org/software/grep/) (often built-in, or provided by [git](http://git-scm.com/))
54
-
55
- E.g., Windows users can `chocolatey install git`.
53
+ * [ruby](https://www.ruby-lang.org/) 2.3+
54
+ * [grep](http://www.gnu.org/software/grep/)
56
55
 
57
56
  ## Optional
58
57
 
59
58
  * [wc](http://linux.die.net/man/1/wc) can help determine the longest line in a file
59
+ * [GNU findutils](https://www.gnu.org/software/findutils/)
60
+ * [stank](https://github.com/mcandre/stank) (e.g. `go get github.com/mcandre/stank/...`)
61
+ * [Python](https://www.python.org) 3+ (for yamllint)
62
+ * [Node.js](https://nodejs.org/en/) (for eclint)
60
63
 
61
64
  # INSTALL
62
65
 
63
66
  Install via [RubyGems](http://rubygems.org/):
64
67
 
65
- ```
68
+ ```console
66
69
  $ gem install cowl
67
70
  ```
68
71
 
@@ -80,7 +83,7 @@ FreeBSD
80
83
 
81
84
  Keep the interface working:
82
85
 
83
- ```
86
+ ```console
84
87
  $ cucumber
85
88
  ```
86
89
 
@@ -88,7 +91,7 @@ $ cucumber
88
91
 
89
92
  Keep the code tidy:
90
93
 
91
- ```
94
+ ```console
92
95
  $ rake lint
93
96
  ```
94
97
 
data/bin/cowl CHANGED
@@ -6,75 +6,80 @@ require 'optparse'
6
6
  require 'dotsmack'
7
7
  require 'yaml'
8
8
  require 'cowl'
9
+ require 'json'
9
10
 
10
11
  def main
11
- ignores = DEFAULT_IGNORES
12
+ ignores = DEFAULT_IGNORES
12
13
 
13
- configuration_flags = {}
14
+ configuration_flags = {}
14
15
 
15
- option = OptionParser.new do |option|
16
- option.banner = "Usage: cowl [options] [<files>|-]"
16
+ option = OptionParser.new do |option|
17
+ option.banner = "Usage: cowl [options] [<files>|-]"
17
18
 
18
- option.on('-i', '--ignore pattern', 'Ignore file patterns (fnmatch)') do |pattern|
19
- ignores << pattern
20
- end
19
+ option.on('-i', '--ignore pattern', 'Ignore file patterns (fnmatch)') do |pattern|
20
+ ignores << pattern
21
+ end
21
22
 
22
- option.on('-w=', '--max-width', "Maximum column width, either an integer or \"unlimited\". Default: 80") do |max_width|
23
- configuration_flags['max_width'] = max_width
24
- end
23
+ option.on('-w=', '--max-width', "Maximum column width, either an integer or \"unlimited\". Default: 80") do |max_width|
24
+ configuration_flags['max_width'] = max_width
25
+ end
25
26
 
26
- option.on('-h', '--help', 'Print usage info') do
27
- puts option
28
- exit
29
- end
27
+ option.on('-s', '--stat', 'Output in STAT') do
28
+ configuration_flags['is_stat'] = true
29
+ end
30
30
 
31
- option.on('-v', '--version', 'Print version info') do
32
- puts "cowl #{Cowl::VERSION}"
33
- exit
31
+ option.on('-h', '--help', 'Print usage info') do
32
+ puts option
33
+ exit
34
+ end
35
+
36
+ option.on('-v', '--version', 'Print version info') do
37
+ puts "cowl #{Cowl::VERSION}"
38
+ exit
39
+ end
34
40
  end
35
- end
36
41
 
37
- option.parse!
42
+ option.parse!
38
43
 
39
- filenames =
44
+ filenames =
40
45
  if ARGV == []
41
- ['-']
46
+ ['-']
42
47
  else
43
- ARGV
48
+ ARGV
44
49
  end
45
50
 
46
- dotsmack = Dotsmack::Smacker.new(
47
- dotignore = '.cowlignore',
48
- additional_ignores = ignores,
49
- dotconfig = '.cowlrc.yml'
50
- )
51
-
52
- dotsmack.enumerate(filenames).each do |filename, config|
53
- config =
54
- if config.nil?
55
- configuration_flags
56
- else
57
- YAML.load(config).merge(configuration_flags)
58
- end
51
+ dotsmack = Dotsmack::Smacker.new(
52
+ dotignore = '.cowlignore',
53
+ additional_ignores = ignores,
54
+ dotconfig = '.cowlrc.yml'
55
+ )
56
+ findings = []
57
+ dotsmack.enumerate(filenames).each do |filename, config|
58
+ config =
59
+ if config.nil?
60
+ configuration_flags
61
+ else
62
+ YAML.load(config).merge(configuration_flags)
63
+ end
59
64
 
60
- if filename == '-'
61
- check_stdin(config)
62
- else
63
- check(filename, config)
65
+ if filename == '-'
66
+ check_stdin(config)
67
+ else
68
+ check(filename, config)
69
+ end
64
70
  end
65
- end
66
71
  end
67
72
 
68
73
  begin
69
- main
70
- # User may quit before completion.
74
+ main
75
+ # User may quit before completion.
71
76
  rescue Interrupt
72
- nil
73
- # Bad regex
77
+ nil
78
+ # Bad regex
74
79
  rescue RegexpError => e
75
- puts e
76
- # This program may be piped to another program (e.g. `less`),
77
- # which is quit before this program completes.
80
+ puts e
81
+ # This program may be piped to another program (e.g. `less`),
82
+ # which is quit before this program completes.
78
83
  rescue Errno::EPIPE, Errno::EMFILE
79
- nil
84
+ nil
80
85
  end
@@ -4,49 +4,49 @@ require 'tempfile'
4
4
  require_relative 'version'
5
5
 
6
6
  DEFAULT_IGNORES = %w(
7
- tmp
8
- .hg
9
- .svn
10
- .git
11
- .gitignore
12
- node_modules
13
- bower_components
14
- target
15
- dist
16
- .vagrant
17
- Gemfile.lock
18
- *.exe
19
- *.bin
20
- *.apk
21
- *.ap_
22
- res
23
- *.dmg
24
- *.pkg
25
- *.app
26
- *.xcodeproj
27
- *.lproj
28
- *.xcassets
29
- *.pmdoc
30
- *.dSYM
31
- *.class
32
- *.zip
33
- *.jar
34
- *.war
35
- *.xpi
36
- *.jad
37
- *.cmo
38
- *.cmi
39
- *.png
40
- *.gif
41
- *.jpg
42
- *.jpeg
43
- *.tiff
44
- *.ico
45
- *.svg
46
- *.dot
47
- *.wav
48
- *.mp3
49
- *[.-]min.*
7
+ tmp
8
+ .hg
9
+ .svn
10
+ .git
11
+ .gitignore
12
+ node_modules
13
+ bower_components
14
+ target
15
+ dist
16
+ .vagrant
17
+ Gemfile.lock
18
+ *.exe
19
+ *.bin
20
+ *.apk
21
+ *.ap_
22
+ res
23
+ *.dmg
24
+ *.pkg
25
+ *.app
26
+ *.xcodeproj
27
+ *.lproj
28
+ *.xcassets
29
+ *.pmdoc
30
+ *.dSYM
31
+ *.class
32
+ *.zip
33
+ *.jar
34
+ *.war
35
+ *.xpi
36
+ *.jad
37
+ *.cmo
38
+ *.cmi
39
+ *.png
40
+ *.gif
41
+ *.jpg
42
+ *.jpeg
43
+ *.tiff
44
+ *.ico
45
+ *.svg
46
+ *.dot
47
+ *.wav
48
+ *.mp3
49
+ *[.-]min.*
50
50
  )
51
51
 
52
52
  DEFAULT_MAX_WIDTH = 80
@@ -54,81 +54,88 @@ DEFAULT_MAX_WIDTH = 80
54
54
  UNLIMITED = 'unlimited'
55
55
 
56
56
  DEFAULT_CONFIGURATION = {
57
- 'max_width' => DEFAULT_MAX_WIDTH
57
+ 'max_width' => DEFAULT_MAX_WIDTH
58
58
  }
59
59
 
60
60
  #
61
61
  # Parse, model, and print a line too wide for its own good
62
62
  #
63
63
  class Widening
64
- attr_accessor :filename, :line_number, :line
64
+ attr_accessor :filename, :line_number, :line
65
65
 
66
- def self.parse(filename, grep_line)
67
- match = grep_line.match(/^(.+)\:(.+)$/)
66
+ def self.parse(filename, grep_line)
67
+ match = grep_line.match(/^(.+)\:(.+)$/)
68
68
 
69
- line_number = match[1]
70
- line = match[2]
69
+ line_number = match[1]
70
+ line = match[2]
71
71
 
72
- Widening.new(filename, line_number, line)
73
- end
72
+ Widening.new(filename, line_number, line)
73
+ end
74
74
 
75
- def initialize(filename, line_number, line)
76
- @filename = filename
77
- @line_number = line_number
78
- @line = line
79
- end
75
+ def initialize(filename, line_number, line)
76
+ @filename = filename
77
+ @line_number = line_number
78
+ @line = line
79
+ end
80
80
 
81
- def to_s
82
- "#{filename}:#{line_number}:#{line}"
83
- end
81
+ def to_s
82
+ "#{filename}:#{line_number}:#{line}"
83
+ end
84
84
  end
85
85
 
86
86
  def self.check_stdin(configuration = nil)
87
- configuration =
87
+ configuration =
88
88
  if configuration.nil?
89
- DEFAULT_CONFIGURATION
89
+ DEFAULT_CONFIGURATION
90
90
  else
91
- configuration
91
+ configuration
92
92
  end
93
93
 
94
- max_width = configuration['max_width']
94
+ max_width = configuration['max_width']
95
+ is_stat = configuration['is_stat']
95
96
 
96
- contents = $stdin.read
97
+ contents = $stdin.read
97
98
 
98
- t = Tempfile.new('cowl')
99
- t.write(contents)
100
- t.close
99
+ t = Tempfile.new('cowl')
100
+ t.write(contents)
101
+ t.close
101
102
 
102
- filename = t.path
103
+ filename = t.path
103
104
 
104
- if max_width != UNLIMITED
105
- output = `grep -n \'^.\\{#{max_width.to_i + 1},\\}$\' \"#{filename}\"`
105
+ if max_width != UNLIMITED
106
+ output = `grep -n \'^.\\{#{max_width.to_i + 1},\\}$\' \"#{filename}\"`
106
107
 
107
- lines = output.split("\n").reject { |line| line =~ /^Binary file/ }
108
+ lines = output.split("\n").reject { |line| line =~ /^Binary file/ }
108
109
 
109
- widenings = lines.map { |line| Widening.parse('stdin', line) }
110
+ widenings = lines.map { |line| Widening.parse('stdin', line) }
110
111
 
111
- widenings.each { |m| puts m }
112
- end
112
+ if is_stat
113
+ widenings.each { |finding|
114
+ yield finding.to_finding
115
+ }
116
+ else
117
+ widenings.each { |m| puts m }
118
+ end
119
+ end
113
120
  end
114
121
 
115
122
  def self.check(filename, configuration = nil)
116
- configuration =
123
+ configuration =
117
124
  if configuration.nil?
118
- DEFAULT_CONFIGURATION
125
+ DEFAULT_CONFIGURATION
119
126
  else
120
- configuration
127
+ configuration
121
128
  end
122
129
 
123
- max_width = configuration['max_width']
124
-
125
- if max_width != UNLIMITED
126
- output = `grep -n \'^.\\{#{max_width.to_i + 1},\\}$\' \"#{filename}\"`
130
+ max_width = configuration['max_width']
131
+ is_stat = configuration['is_stat']
132
+ if max_width != UNLIMITED
133
+ output = `grep -n \'^.\\{#{max_width.to_i + 1},\\}$\' \"#{filename}\"`
127
134
 
128
- lines = output.split("\n").reject { |line| line =~ /^Binary file/ }
135
+ lines = output.split("\n").reject { |line| line =~ /^Binary file/ }
129
136
 
130
- widenings = lines.map { |line| Widening.parse(filename, line) }
137
+ widenings = lines.map { |line| Widening.parse(filename, line) }
131
138
 
132
- widenings.each { |m| puts m }
133
- end
139
+ widenings.each { |m| puts m }
140
+ end
134
141
  end
@@ -2,5 +2,5 @@
2
2
  # Cowl
3
3
  #
4
4
  module Cowl
5
- VERSION = '0.6'
5
+ VERSION = '0.7'
6
6
  end
metadata CHANGED
@@ -1,237 +1,209 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cowl
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.6'
4
+ version: '0.7'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Pennebaker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-18 00:00:00.000000000 Z
11
+ date: 2019-01-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ptools
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: dotsmack
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0.3'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '10.3'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '10.3'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: reek
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.3'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.3'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: flay
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '2.5'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '2.5'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: flog
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ~>
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: '4.3'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ~>
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '4.3'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: roodi
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ~>
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: '4.0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ~>
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '4.0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: churn
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ~>
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
117
  version: '1.0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ~>
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '1.0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: cane
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ~>
129
+ - - "~>"
130
130
  - !ruby/object:Gem::Version
131
131
  version: '2.6'
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ~>
136
+ - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: '2.6'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: excellent
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ~>
143
+ - - "~>"
144
144
  - !ruby/object:Gem::Version
145
145
  version: '2.1'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ~>
150
+ - - "~>"
151
151
  - !ruby/object:Gem::Version
152
152
  version: '2.1'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: rubocop
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ~>
157
+ - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: '0.24'
159
+ version: '0.49'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ~>
164
+ - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: '0.24'
166
+ version: '0.49'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: tailor
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - ~>
171
+ - - "~>"
172
172
  - !ruby/object:Gem::Version
173
173
  version: '1.4'
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - ~>
178
+ - - "~>"
179
179
  - !ruby/object:Gem::Version
180
180
  version: '1.4'
181
- - !ruby/object:Gem::Dependency
182
- name: guard
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - ~>
186
- - !ruby/object:Gem::Version
187
- version: '2.6'
188
- type: :development
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - ~>
193
- - !ruby/object:Gem::Version
194
- version: '2.6'
195
- - !ruby/object:Gem::Dependency
196
- name: guard-shell
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - ~>
200
- - !ruby/object:Gem::Version
201
- version: '0.6'
202
- type: :development
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - ~>
207
- - !ruby/object:Gem::Version
208
- version: '0.6'
209
181
  - !ruby/object:Gem::Dependency
210
182
  name: rspec
211
183
  requirement: !ruby/object:Gem::Requirement
212
184
  requirements:
213
- - - ~>
185
+ - - "~>"
214
186
  - !ruby/object:Gem::Version
215
187
  version: '3.0'
216
188
  type: :development
217
189
  prerelease: false
218
190
  version_requirements: !ruby/object:Gem::Requirement
219
191
  requirements:
220
- - - ~>
192
+ - - "~>"
221
193
  - !ruby/object:Gem::Version
222
194
  version: '3.0'
223
195
  - !ruby/object:Gem::Dependency
224
196
  name: cucumber
225
197
  requirement: !ruby/object:Gem::Requirement
226
198
  requirements:
227
- - - ~>
199
+ - - "~>"
228
200
  - !ruby/object:Gem::Version
229
201
  version: '1.3'
230
202
  type: :development
231
203
  prerelease: false
232
204
  version_requirements: !ruby/object:Gem::Requirement
233
205
  requirements:
234
- - - ~>
206
+ - - "~>"
235
207
  - !ruby/object:Gem::Version
236
208
  version: '1.3'
237
209
  description: See README.md for example usage
@@ -257,17 +229,17 @@ require_paths:
257
229
  - lib
258
230
  required_ruby_version: !ruby/object:Gem::Requirement
259
231
  requirements:
260
- - - '>='
232
+ - - ">="
261
233
  - !ruby/object:Gem::Version
262
- version: '2.0'
234
+ version: '2.3'
263
235
  required_rubygems_version: !ruby/object:Gem::Requirement
264
236
  requirements:
265
- - - '>='
237
+ - - ">="
266
238
  - !ruby/object:Gem::Version
267
239
  version: '0'
268
240
  requirements: []
269
241
  rubyforge_project:
270
- rubygems_version: 2.4.6
242
+ rubygems_version: 2.7.7
271
243
  signing_key:
272
244
  specification_version: 4
273
245
  summary: column width linter