grub 0.0.4 → 0.0.5

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