danger-rubocop 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1515e5372954585820a9828937bbe1e1a8ca0470
4
- data.tar.gz: 6f22b296591432eb9c56b6b051b79a562be4be14
3
+ metadata.gz: 4913ce170fed65fbffcc48b48f612d1ee1c1614a
4
+ data.tar.gz: 307c2ba9850cd9e1e4977d19cb7b108e6ab8adb5
5
5
  SHA512:
6
- metadata.gz: 4de4b1c3f7c5a1c9251f0df992510fceecfbe7aba0488ba47d8b4a714ca7bf9b58a4f97ec83f7b283619dada7975ba8ec2939cdea5e6d4b8c3d91a51198d6e87
7
- data.tar.gz: 9d3bd307bbefd545498b37b8cacae97427b55a6b7e90e09d8d46c451bebc4fd813cca090e8682e4adbcb8cfca5157357f99c5b674c3eafea98a80cff0eb9570a
6
+ metadata.gz: dcde2c3010d6942fd8524fa87e14968ff20538b1cdfe1a3b893a1930e107682eca77d2de052d19e3e22b9a24338423c1d2c396aff02a78734cefef342be41a21
7
+ data.tar.gz: 7bc56b94ecd9224783c29ca91462878f083d6ade4aadf179a7f9007443271920baeced5febe784c76c3652ad31814e6d9384fbb459ba84f260116bf64351c3ff
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- ruby '2.2.5'
3
+ ruby '>= 2.0'
4
4
 
5
5
  gemspec
6
6
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- danger-rubocop (0.0.1)
4
+ danger-rubocop (0.1.0)
5
5
  danger
6
6
  rubocop
7
7
 
@@ -12,15 +12,21 @@ GEM
12
12
  ast (2.3.0)
13
13
  bacon (1.2.0)
14
14
  claide (1.0.0)
15
+ claide-plugins (0.9.0)
16
+ cork (~> 0)
17
+ nap (~> 1.0)
18
+ open4 (~> 1.3)
15
19
  coderay (1.1.1)
16
20
  colored (1.2)
17
21
  cork (0.1.0)
18
22
  colored (~> 1.2)
19
- danger (0.8.3)
23
+ danger (0.10.1)
20
24
  claide (~> 1.0)
25
+ claide-plugins (~> 0.9)
21
26
  colored (~> 1.2)
22
27
  cork (~> 0.1)
23
28
  faraday (~> 0)
29
+ faraday-http-cache (~> 1.0)
24
30
  git (~> 1)
25
31
  octokit (~> 4.2)
26
32
  redcarpet (~> 3.3)
@@ -28,6 +34,8 @@ GEM
28
34
  diff-lcs (1.2.5)
29
35
  faraday (0.9.2)
30
36
  multipart-post (>= 1.2, < 3)
37
+ faraday-http-cache (1.3.0)
38
+ faraday (~> 0.8)
31
39
  ffi (1.9.10)
32
40
  formatador (0.2.5)
33
41
  git (1.3.0)
@@ -56,12 +64,14 @@ GEM
56
64
  mocha-on-bacon (0.2.2)
57
65
  mocha (>= 0.13.0)
58
66
  multipart-post (2.0.0)
67
+ nap (1.1.0)
59
68
  nenv (0.3.0)
60
69
  notiffany (0.1.0)
61
70
  nenv (~> 0.1)
62
71
  shellany (~> 0.0)
63
72
  octokit (4.3.0)
64
73
  sawyer (~> 0.7.0, >= 0.5.3)
74
+ open4 (1.3.4)
65
75
  parser (2.3.1.2)
66
76
  ast (~> 2.2)
67
77
  powerpack (0.1.1)
@@ -90,7 +100,7 @@ GEM
90
100
  diff-lcs (>= 1.2.0, < 2.0)
91
101
  rspec-support (~> 3.4.0)
92
102
  rspec-support (3.4.1)
93
- rubocop (0.41.1)
103
+ rubocop (0.41.2)
94
104
  parser (>= 2.3.1.1, < 3.0)
95
105
  powerpack (~> 0.1)
96
106
  rainbow (>= 1.99.1, < 3.0)
@@ -105,6 +115,7 @@ GEM
105
115
  terminal-table (1.6.0)
106
116
  thor (0.19.1)
107
117
  unicode-display_width (1.1.0)
118
+ yard (0.9.5)
108
119
 
109
120
  PLATFORMS
110
121
  ruby
@@ -122,6 +133,10 @@ DEPENDENCIES
122
133
  pry
123
134
  rake (~> 10.0)
124
135
  rspec (~> 3.4)
136
+ yard
137
+
138
+ RUBY VERSION
139
+ ruby 2.3.1p112
125
140
 
126
141
  BUNDLED WITH
127
142
  1.12.5
data/Guardfile CHANGED
@@ -3,8 +3,8 @@
3
3
 
4
4
  # To run, use `bundle exec guard`.
5
5
 
6
- guard :rspec, cmd: "bundle exec rspec" do
7
- require "guard/rspec/dsl"
6
+ guard :rspec, cmd: 'bundle exec rspec' do
7
+ require 'guard/rspec/dsl'
8
8
  dsl = Guard::RSpec::Dsl.new(self)
9
9
 
10
10
  # Feel free to open issues for suggestions and improvements
data/README.md CHANGED
@@ -17,7 +17,7 @@ gem 'danger-rubocop'
17
17
  The easiest way to use is just add this to your Dangerfile:
18
18
 
19
19
  ```rb
20
- rubocop.run
20
+ rubocop.lint
21
21
  ```
22
22
 
23
23
  That will lint any changed or added Ruby files in the PR.
@@ -25,7 +25,7 @@ That will lint any changed or added Ruby files in the PR.
25
25
  You can also provide a list of files manually:
26
26
 
27
27
  ```rb
28
- # Look through all changed Markdown files
28
+ # Look through all changed ruby files
29
29
  rb_files = (modified_files + added_files).select { |f| f.end_with?(".rb") }
30
30
 
31
31
  rubocop.run rb_files
@@ -33,4 +33,4 @@ rubocop.run rb_files
33
33
 
34
34
  ## License
35
35
 
36
- MIT
36
+ MIT
data/Rakefile CHANGED
@@ -1,13 +1,6 @@
1
1
  require 'bundler/gem_tasks'
2
- require "rspec/core/rake_task"
2
+ require 'rspec/core/rake_task'
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
6
  task default: :spec
7
-
8
- task :spec do
9
- Rake::Task['specs'].invoke
10
- end
11
-
12
- task :default => :spec
13
-
data/circle.yml ADDED
@@ -0,0 +1,3 @@
1
+ machine:
2
+ ruby:
3
+ version: "2.2.5"
@@ -6,14 +6,14 @@ require 'version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'danger-rubocop'
8
8
  spec.version = DangerRubocop::VERSION
9
- spec.authors = ['Ash Furrow']
10
- spec.email = ['ash@ashfurrow.com']
11
- spec.description = %q{A Danger plugin for running Ruby files through Rubocop.}
12
- spec.summary = %q{A Danger plugin for running Ruby files through Rubocop.}
9
+ spec.author = 'Ash Furrow'
10
+ spec.email = 'ash@ashfurrow.com'
11
+ spec.description = 'A Danger plugin for running Ruby files through Rubocop.'
12
+ spec.summary = 'A Danger plugin for running Ruby files through Rubocop.'
13
13
  spec.homepage = 'https://github.com/ashfurrow/danger-rubocop'
14
14
  spec.license = 'MIT'
15
15
 
16
- spec.files = `git ls-files`.split($/)
16
+ spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
17
17
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
18
  spec.require_paths = ['lib']
19
19
 
@@ -24,20 +24,22 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency 'bundler', '~> 1.3'
25
25
  spec.add_development_dependency 'rake', '~> 10.0'
26
26
 
27
+ # For validating the plugin lints
28
+ spec.add_development_dependency 'yard'
29
+
27
30
  # Testing support
28
- spec.add_development_dependency "rspec", '~> 3.4'
31
+ spec.add_development_dependency 'rspec', '~> 3.4'
29
32
 
30
33
  # Makes testing easy via `bundle exec guard`
31
- spec.add_development_dependency "guard", '~> 2.14'
32
- spec.add_development_dependency "guard-rspec", '~> 4.7'
33
-
34
+ spec.add_development_dependency 'guard', '~> 2.14'
35
+ spec.add_development_dependency 'guard-rspec', '~> 4.7'
36
+
34
37
  # If you want to work on older builds of ruby
35
- spec.add_development_dependency "listen", '3.0.7'
38
+ spec.add_development_dependency 'listen', '3.0.7'
36
39
 
37
40
  # This gives you the chance to run a REPL inside your test
38
- # via
41
+ # via
39
42
  # binding.pry
40
43
  # This will stop test execution and let you inspect the results
41
- spec.add_development_dependency "pry"
42
-
44
+ spec.add_development_dependency 'pry'
43
45
  end
data/lib/danger_plugin.rb CHANGED
@@ -1,44 +1,61 @@
1
1
  module Danger
2
-
3
2
  # Run Ruby files through Rubocop.
4
3
  # Results are passed out as a table in markdown.
5
4
  #
6
5
  # @example Specifying custom config file.
7
6
  #
8
- # rubocop.run
7
+ # rubocop.lint
8
+ #
9
+ # @example Lint specific files in a folder, when they change
10
+ #
11
+ # public_files = (modified_files + added_files).select { |path| path.include?("/public/") }
12
+ # rubocop.lint public_files
13
+ #
9
14
  #
10
15
  # @see Moya/Aeryn
11
16
  # @tags ruby, rubocop, linter
12
17
  #
13
18
  class DangerRubocop < Plugin
14
-
15
- # Runs Ruby files through Rubocop. Generates a `markdown` list of warnings.
19
+ # Runs Ruby files through Rubocop. Generates a `markdown` list of warnings.
16
20
  #
17
21
  # @param [String] files
18
- # A globbed string which should return the files that you want to
19
- # run through, defaults to nil. If nil, modified and added files
22
+ # A globbed string which should return the files that you want to
23
+ # run through, defaults to nil. If nil, modified and added files
20
24
  # from the diff will be used.
21
25
  # @return [void]
22
26
  #
23
- def run(files=nil)
24
- files_to_lint = files ? Dir.glob(files) : (modified_files + added_files)
27
+ def lint(files = nil)
28
+ files_to_lint = files ? Dir.glob(files) : (git.modified_files + git.added_files)
25
29
  files_to_lint.select! { |f| f.end_with? 'rb' }
26
- rubocop_results = files_to_lint.map { |f| JSON.parse(`bundle exec rubocop -f json #{f}`)['files'] }.flatten
27
- offending_files = rubocop_results.select { |f| f['offenses'].count > 0 }
28
30
 
31
+ offending_files = rubocop(files_to_lint)
29
32
  return if offending_files.empty?
30
33
 
31
- message = '### Rubocop violations'
32
- message << 'File | Line | Reason |\n'
33
- message << '| --- | ----- | ----- |\n'
34
+ markdown offenses_message(offending_files)
35
+ end
34
36
 
35
- offending_files.each do |f|
36
- f['offenses'].each do |o|
37
- message << "#{f['path']} | #{o['location']['line']} | #{o['message']} \n"
38
- end
37
+ private
38
+
39
+ def rubocop(files_to_lint)
40
+ rubocop_results = files_to_lint.flat_map do |f|
41
+ prefix = File.exist?('Gemfile') ? 'bundle exec' : ''
42
+ JSON.parse(`#{prefix} rubocop -f json #{f}`)['files']
39
43
  end
44
+ rubocop_results.select { |f| f['offenses'].count > 0 }
45
+ end
40
46
 
41
- markdown message
47
+ def offenses_message(offending_files)
48
+ require 'terminal-table'
49
+
50
+ message = "### Rubocop violations\n\n"
51
+ message + Terminal::Table.new(
52
+ headings: %w(File Line Reason),
53
+ rows: offending_files.flat_map do |file|
54
+ file['offenses'].map do |offense|
55
+ [file['path'], offense['location']['line'], offense['message']]
56
+ end
57
+ end
58
+ ).to_s
42
59
  end
43
60
  end
44
61
  end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module DangerRubocop
2
- VERSION = "0.1.0".freeze
2
+ VERSION = '0.2.0'.freeze
3
3
  end
@@ -5,7 +5,7 @@ module Danger
5
5
  it 'is a plugin' do
6
6
  expect(Danger::DangerRubocop < Danger::Plugin).to be_truthy
7
7
  end
8
-
8
+
9
9
  describe 'with Dangerfile' do
10
10
  before do
11
11
  @dangerfile = testing_dangerfile
@@ -16,13 +16,13 @@ module Danger
16
16
  before do
17
17
  # Set up our stubbed JSON response
18
18
  response = {
19
- "files" => [
19
+ 'files' => [
20
20
  {
21
- "path": "ruby_file.rb",
22
- "offenses" => [
21
+ 'path' => 'ruby_file.rb',
22
+ 'offenses' => [
23
23
  {
24
- "message" => "Don't do that!",
25
- "location" => {"line": 13}
24
+ 'message' => "Don't do that!",
25
+ 'location' => { 'line' => 13 }
26
26
  }
27
27
  ]
28
28
  }
@@ -32,27 +32,32 @@ module Danger
32
32
  end
33
33
 
34
34
  it 'handles a known rubocop report' do
35
- allow(@rubocop).to receive(:`).with('bundle exec rubocop -f json spec/fixtures/ruby_file.rb').and_return(@rubocop_response)
35
+ allow(@rubocop).to receive(:`)
36
+ .with('bundle exec rubocop -f json spec/fixtures/ruby_file.rb')
37
+ .and_return(@rubocop_response)
36
38
 
37
39
  # Do it
38
- @rubocop.run("spec/fixtures/*.rb")
40
+ @rubocop.lint('spec/fixtures/*.rb')
39
41
 
40
42
  output = @rubocop.status_report[:markdowns].first
41
43
 
42
44
  expect(output).to_not be_empty
43
45
 
44
46
  # A title
45
- expect(output).to include("Rubocop violations")
47
+ expect(output).to include('Rubocop violations')
46
48
  # A warning
47
- expect(output).to include("ruby_file.rb | 13 | Don't do that!")
49
+ expect(output).to include("ruby_file.rb | 13 | Don't do that!")
48
50
  end
49
51
 
50
52
  it 'handles no files' do
51
- allow(@rubocop).to receive(:modified_files).and_return(['spec/fixtures/ruby_file.rb'])
52
- allow(@rubocop).to receive(:added_files).and_return([])
53
- allow(@rubocop).to receive(:`).with('bundle exec rubocop -f json spec/fixtures/ruby_file.rb').and_return(@rubocop_response)
53
+ allow(@rubocop.git).to receive(:modified_files)
54
+ .and_return(['spec/fixtures/ruby_file.rb'])
55
+ allow(@rubocop.git).to receive(:added_files).and_return([])
56
+ allow(@rubocop).to receive(:`)
57
+ .with('bundle exec rubocop -f json spec/fixtures/ruby_file.rb')
58
+ .and_return(@rubocop_response)
54
59
 
55
- @rubocop.run
60
+ @rubocop.lint
56
61
 
57
62
  expect(@rubocop.status_report[:markdowns].first).to_not be_empty
58
63
  end
data/spec/spec_helper.rb CHANGED
@@ -1,11 +1,11 @@
1
1
  require 'pathname'
2
2
 
3
3
  ROOT = Pathname.new(File.expand_path('../../', __FILE__))
4
- $:.unshift((ROOT + 'lib').to_s)
5
- $:.unshift((ROOT + 'spec').to_s)
4
+ $LOAD_PATH.unshift((ROOT + 'lib').to_s)
5
+ $LOAD_PATH.unshift((ROOT + 'spec').to_s)
6
6
 
7
7
  RSpec.configure do |config|
8
- # Use color in STDOUT
8
+ # Use color in STDOUT
9
9
  config.color = true
10
10
  end
11
11
 
@@ -29,11 +29,11 @@ end
29
29
  # running a PR on TravisCI
30
30
  def testing_env
31
31
  {
32
- "HAS_JOSH_K_SEAL_OF_APPROVAL" => "true",
33
- "TRAVIS_PULL_REQUEST" => "800",
34
- "TRAVIS_REPO_SLUG" => "artsy/eigen",
35
- "TRAVIS_COMMIT_RANGE" => "759adcbd0d8f...13c4dc8bb61d",
36
- "DANGER_GITHUB_API_TOKEN" => "123sbdq54erfsd3422gdfio"
32
+ 'HAS_JOSH_K_SEAL_OF_APPROVAL' => 'true',
33
+ 'TRAVIS_PULL_REQUEST' => '800',
34
+ 'TRAVIS_REPO_SLUG' => 'artsy/eigen',
35
+ 'TRAVIS_COMMIT_RANGE' => '759adcbd0d8f...13c4dc8bb61d',
36
+ 'DANGER_GITHUB_API_TOKEN' => '123sbdq54erfsd3422gdfio'
37
37
  }
38
38
  end
39
39
 
@@ -41,4 +41,4 @@ end
41
41
  def testing_dangerfile
42
42
  env = Danger::EnvironmentManager.new(testing_env)
43
43
  Danger::Dangerfile.new(env, testing_ui)
44
- end
44
+ end
metadata CHANGED
@@ -1,111 +1,125 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: danger-rubocop
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ash Furrow
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-05 00:00:00.000000000 Z
11
+ date: 2016-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: danger
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
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: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rubocop
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
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'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.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: '1.3'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '10.0'
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: '10.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: yard
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rspec
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - "~>"
87
+ - - ~>
74
88
  - !ruby/object:Gem::Version
75
89
  version: '3.4'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - "~>"
94
+ - - ~>
81
95
  - !ruby/object:Gem::Version
82
96
  version: '3.4'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: guard
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - "~>"
101
+ - - ~>
88
102
  - !ruby/object:Gem::Version
89
103
  version: '2.14'
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - "~>"
108
+ - - ~>
95
109
  - !ruby/object:Gem::Version
96
110
  version: '2.14'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: guard-rspec
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - "~>"
115
+ - - ~>
102
116
  - !ruby/object:Gem::Version
103
117
  version: '4.7'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
- - - "~>"
122
+ - - ~>
109
123
  - !ruby/object:Gem::Version
110
124
  version: '4.7'
111
125
  - !ruby/object:Gem::Dependency
@@ -126,30 +140,30 @@ dependencies:
126
140
  name: pry
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
- - - ">="
143
+ - - '>='
130
144
  - !ruby/object:Gem::Version
131
145
  version: '0'
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
- - - ">="
150
+ - - '>='
137
151
  - !ruby/object:Gem::Version
138
152
  version: '0'
139
153
  description: A Danger plugin for running Ruby files through Rubocop.
140
- email:
141
- - ash@ashfurrow.com
154
+ email: ash@ashfurrow.com
142
155
  executables: []
143
156
  extensions: []
144
157
  extra_rdoc_files: []
145
158
  files:
146
- - ".gitignore"
159
+ - .gitignore
147
160
  - Gemfile
148
161
  - Gemfile.lock
149
162
  - Guardfile
150
163
  - LICENSE
151
164
  - README.md
152
165
  - Rakefile
166
+ - circle.yml
153
167
  - danger-rubocop.gemspec
154
168
  - lib/danger_plugin.rb
155
169
  - lib/version.rb
@@ -166,12 +180,12 @@ require_paths:
166
180
  - lib
167
181
  required_ruby_version: !ruby/object:Gem::Requirement
168
182
  requirements:
169
- - - ">="
183
+ - - '>='
170
184
  - !ruby/object:Gem::Version
171
185
  version: '0'
172
186
  required_rubygems_version: !ruby/object:Gem::Requirement
173
187
  requirements:
174
- - - ">="
188
+ - - '>='
175
189
  - !ruby/object:Gem::Version
176
190
  version: '0'
177
191
  requirements: []