grub 0.0.4 → 0.0.5

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: 00524e5b1d7addff9a0769ef02f8c9f9064bb2ea
4
- data.tar.gz: dccbd16d58a1f0330028d2ef6ed75a7bd20d6439
3
+ metadata.gz: 365d41ee25f6da66f293e9020e663f0c2d97cea0
4
+ data.tar.gz: fe939a6aa56eb8a0f387a04d7034cc5096183760
5
5
  SHA512:
6
- metadata.gz: 0a2526965f3c2484ff7966f82274636e4b115b51fee52441334abb2cf7b6fa276f934e6675012b43e8876109bf032840782d10bd9ef5200a3e78215f3bd2d241
7
- data.tar.gz: 3e75dc10fc4f6af30e8993670863475905c9b77c0a0a34fec487ced717dac1ccb2286f376bda2fb0e41246929dd31d2b1f7eb0166e3600c5ae172e943526b0a3
6
+ metadata.gz: 1ba83c65303a136313a57e89b6cf3e97ad9ecb8ea4047777ac89f779181a6d252284e8a36972b34267c515208079fdc3f237cd5d0d59719a4959f03367ee9d3a
7
+ data.tar.gz: 6970f79bb4efb37bf974dfaa5b312ae9778cc7754c85b9f002468b6050c563ed71c57284c7b93f0d4b17fc3a34a1820d39c0f92e05f9d35d4889d2454b298856
@@ -16,17 +16,26 @@ module Grub
16
16
  gemfile = Gemfile.new(Bundler.default_gemfile, options)
17
17
  gemfile.parse
18
18
  unless gemfile.gem_lines.empty?
19
- SpecFinder.find_specs_for(gemfile.gem_lines)
19
+ SpecFinder.find_specs_for(gemfile.gem_lines, &self.method(:print_progress))
20
20
  gemfile.write_comments
21
21
  end
22
22
  end
23
23
 
24
24
  def run_for_gem(gem_name, options = {})
25
25
  gem_line = GemLine.new(name: gem_name, options: options)
26
- SpecFinder.find_specs_for(gem_line)
26
+ SpecFinder.find_specs_for(gem_line, &self.method(:print_progress))
27
+
27
28
  info = gem_line.info
28
29
  info = "No information to show" if info.strip.empty?
29
30
  puts info
30
31
  end
32
+
33
+ private
34
+
35
+ def print_progress(completed, total)
36
+ print "Fetching gem metadata..." if completed.zero?
37
+ print "."
38
+ print "\n" if completed == total
39
+ end
31
40
  end
32
41
  end
@@ -2,11 +2,11 @@ module Grub
2
2
  module SpecFinder
3
3
  extend self
4
4
 
5
- def find_specs_for(gem_lines)
5
+ def find_specs_for(gem_lines, &block)
6
6
  gem_lines = Array(gem_lines)
7
7
  find_matching_specs_for(gem_lines)
8
8
  gems_to_fetch = gem_lines.select { |gem_line| gem_line.spec.nil? }
9
- fetch_specs_for(gems_to_fetch) if gems_to_fetch.any?
9
+ fetch_specs_for(gems_to_fetch, &block) if gems_to_fetch.any?
10
10
  end
11
11
 
12
12
  def find_matching_specs_for(gem_lines)
@@ -18,18 +18,20 @@ module Grub
18
18
  end
19
19
 
20
20
  def fetch_specs_for(gem_lines)
21
- print "Fetching gem metadata..."
21
+ total = gem_lines.length
22
+ completed = 0
23
+ yield completed, total if block_given?
22
24
  remote = Bundler::Source::Rubygems::Remote.new(Gem.sources.first.uri)
23
25
  fetcher = Bundler::Fetcher.new(remote)
24
26
  dependency_fetcher = fetcher.fetchers.find {|f| Bundler::Fetcher::Dependency === f }
25
27
  versions, _ = dependency_fetcher.dependency_specs(gem_lines.collect(&:name))
26
28
  gem_lines.each do |gem_line|
27
- print "."
28
29
  gem_versions = versions.select { |v| v.first == gem_line.name }
29
30
  version = find_latest_version(gem_versions)
30
31
  gem_line.spec = fetcher.fetch_spec([gem_line.name, version])
32
+ completed += 1
33
+ yield completed, total if block_given?
31
34
  end
32
- print "\n"
33
35
  end
34
36
 
35
37
  def find_latest_version(versions)
@@ -1,4 +1,4 @@
1
1
  module Grub
2
- VERSION = "0.0.4".freeze
2
+ VERSION = "0.0.5".freeze
3
3
  DESCRIPTION = "Add comments to your Gemfile with each dependency's description.".freeze
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Tse
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-15 00:00:00.000000000 Z
11
+ date: 2016-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler