cowl 0.6 → 0.7

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.
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