libyear-bundler 0.2.0 → 0.3.0

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: 2cd3378215fe47cbc740474dd3a8d5cf32a82aac
4
- data.tar.gz: acc89ac6b9819ca27899a77fea914cd6f6d62496
3
+ metadata.gz: 734b3af6eedfa8bd832666a33e04ccf4d36dbcec
4
+ data.tar.gz: 70d4f09011a3102403bec195b4638d7dbbbc73d8
5
5
  SHA512:
6
- metadata.gz: 90134e10c548ae10330bf66b7405220f6d60750f2a0c27e197011ebfb0369807b4c36b2b5025f8f8777964bb815ac650e26d1d4c6ac6a44599b3e5b0fadd30ca
7
- data.tar.gz: ffe3db93db14c0ad62a1694a5952e252cc0ba1faf90ae0539d6b30432a5b6fd63e9b9b831bb6986b20e7423e5d4b3de06218975d5ae08eefee2868879940bb56
6
+ metadata.gz: cb0e53a70abcd38aba307d8ea2dac3ffbace0192cd26a8f2b2de960a42c36e6aa4fbae86d951dbfa9eab27796dddbd73d10e8fa7fbfb952dc3e3795bcc595e61
7
+ data.tar.gz: 65b896dcdbbbc1feea606390b5a20b54680c95e8feb763989a651d1e646f11c2799d83c0e7c54c9c40ca1d464d67fcec3932eb15c2e058b08ad30384d28d8a31
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ .ruby-version
data/CHANGELOG.md CHANGED
@@ -3,6 +3,35 @@
3
3
  This project follows [semver 2.0.0][1] and the recommendations
4
4
  of [keepachangelog.com][2].
5
5
 
6
+ ## Unreleased
7
+
8
+ Breaking changes:
9
+
10
+ - None
11
+
12
+ Added:
13
+
14
+ - None
15
+
16
+ Fixed:
17
+
18
+ - None
19
+
20
+ ## 0.3.0 (2017-03-24)
21
+
22
+ Breaking changes:
23
+
24
+ - None
25
+
26
+ Added:
27
+
28
+ - [#1](https://github.com/jaredbeck/libyear-bundler/pull/1)
29
+ Add --grand-total option
30
+
31
+ Fixed:
32
+
33
+ - None
34
+
6
35
  ## 0.2.0 (2017-03-10)
7
36
 
8
37
  Breaking changes:
@@ -5,19 +5,75 @@ require "libyear_bundler/query"
5
5
 
6
6
  module LibyearBundler
7
7
  class CLI
8
+ OPTIONS = %w(
9
+ --grand-total
10
+ ).freeze
11
+
12
+ E_BUNDLE_OUTDATED_FAILED = 1
13
+ E_NO_GEMFILE = 2
14
+
8
15
  def initialize(argv)
9
- validate_arguments(argv)
10
- @gemfile_path = argv.first
16
+ @argv = argv
17
+ @gemfile_path = load_gemfile_path
18
+ validate_arguments
11
19
  end
12
20
 
13
21
  def run
14
- print Report.new(Query.new(@gemfile_path).execute).to_s
22
+ if @argv.include?("--grand-total")
23
+ grand_total
24
+ else
25
+ print Report.new(query).to_s
26
+ end
15
27
  end
16
28
 
17
29
  private
18
30
 
19
- def validate_arguments(argv)
20
- # todo
31
+ def first_arg_is_gemfile?
32
+ !@argv.first.nil? && ::File.exist?(@argv.first)
33
+ end
34
+
35
+ def fallback_gemfile_exists?
36
+ # The envvar is set or
37
+ (!ENV["BUNDLE_GEMFILE"].nil? && ::File.exist?(ENV["BUNDLE_GEMFILE"])) ||
38
+ # Default to local Gemfile
39
+ ::File.exist?("Gemfile")
40
+ end
41
+
42
+ def load_gemfile_path
43
+ if first_arg_is_gemfile?
44
+ @argv.first
45
+ elsif fallback_gemfile_exists?
46
+ '' # `bundle outdated` will default to local Gemfile
47
+ else
48
+ $stderr.puts "Gemfile not found"
49
+ exit
50
+ end
51
+ end
52
+
53
+ def query
54
+ Query.new(@gemfile_path).execute
55
+ end
56
+
57
+ def unexpected_options
58
+ @_unexpected_options ||= begin
59
+ options = @argv.select { |arg| arg.start_with?("--") }
60
+ options.each_with_object([]) do |arg, memo|
61
+ memo << arg unless OPTIONS.include?(arg)
62
+ end
63
+ end
64
+ end
65
+
66
+ def validate_arguments
67
+ unless unexpected_options.empty?
68
+ puts "Unexpected args: #{unexpected_options.join(", ")}"
69
+ puts "Allowed args: #{OPTIONS.join(", ")}"
70
+ exit E_NO_GEMFILE
71
+ end
72
+ end
73
+
74
+ def grand_total
75
+ sum_years = query.map { |gem| gem[:libyears] }.inject(0.0, :+)
76
+ puts format("%.1f", sum_years)
21
77
  end
22
78
  end
23
79
  end
@@ -55,7 +55,7 @@ module LibyearBundler
55
55
  $stderr.puts "stderr: #{stderr}"
56
56
  $stderr.puts "stdout: #{stdout}"
57
57
  $stderr.puts "Try running `bundle install`."
58
- Kernel.exit(1)
58
+ Kernel.exit(CLI::E_BUNDLE_OUTDATED_FAILED)
59
59
  end
60
60
  stdout
61
61
  end
@@ -1,3 +1,3 @@
1
1
  module LibyearBundler
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -17,5 +17,6 @@ Gem::Specification.new do |spec|
17
17
  spec.bindir = "bin"
18
18
  spec.executables = ["libyear-bundler"]
19
19
  spec.require_paths = ["lib"]
20
+ spec.required_ruby_version = ">= 2.1"
20
21
  spec.add_dependency "bundler", "~> 1.14"
21
22
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libyear-bundler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jared Beck
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-10 00:00:00.000000000 Z
11
+ date: 2017-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -56,7 +56,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: '0'
59
+ version: '2.1'
60
60
  required_rubygems_version: !ruby/object:Gem::Requirement
61
61
  requirements:
62
62
  - - ">="
@@ -64,7 +64,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
64
64
  version: '0'
65
65
  requirements: []
66
66
  rubyforge_project:
67
- rubygems_version: 2.6.10
67
+ rubygems_version: 2.6.11
68
68
  signing_key:
69
69
  specification_version: 4
70
70
  summary: A simple measure of dependency freshness