bundler_date 0.1.0 → 0.2.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 +4 -4
- data/.github/workflows/main.yml +9 -4
- data/.gitmodules +9 -0
- data/.rubocop.yml +2 -0
- data/CHANGELOG.md +7 -0
- data/Gemfile.lock +46 -0
- data/README.md +33 -15
- data/bin/test +4 -0
- data/bundler_date.gemspec +1 -4
- data/lib/bundler_date/spec.rb +31 -0
- data/lib/bundler_date/spec_list.rb +22 -0
- data/lib/bundler_date/ui/ui_row.rb +2 -0
- data/lib/bundler_date/version.rb +1 -1
- data/lib/bundler_date.rb +10 -14
- metadata +11 -48
- data/bin/console +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e45a0add0849e68a32088d21db56e62e36dda33a0a194f96207d3d4c275ccab5
|
4
|
+
data.tar.gz: cf10b6c2b6afb0c101bccd62c91c2b8b1a4571575406ad9e18c7c4beb46a274e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cad886b8b7c5294472206e7479969c56ec071f5b891a6f349c8bc7b924350b1d591e85dd69d86b883f7b553d613a7f295c84583b7d044bc8e49a3c4603a8838d
|
7
|
+
data.tar.gz: 42ef1f151f4da2b0ea29bf6d223aa90aab8f4594d3432e2a1473a17db7cfb79314f6cff354833e70e652675db3614a39405ffe3b18310a2d3b0f35f743d450ce
|
data/.github/workflows/main.yml
CHANGED
@@ -3,7 +3,7 @@ name: Ruby
|
|
3
3
|
on: [push,pull_request]
|
4
4
|
|
5
5
|
jobs:
|
6
|
-
|
6
|
+
test:
|
7
7
|
runs-on: ubuntu-latest
|
8
8
|
steps:
|
9
9
|
- uses: actions/checkout@v2
|
@@ -11,8 +11,13 @@ jobs:
|
|
11
11
|
uses: ruby/setup-ruby@v1
|
12
12
|
with:
|
13
13
|
ruby-version: 2.7.1
|
14
|
-
- name:
|
14
|
+
- name: build
|
15
15
|
run: |
|
16
|
-
gem install bundler
|
16
|
+
gem install bundler
|
17
17
|
bundle install
|
18
|
-
|
18
|
+
- name: lint
|
19
|
+
run: bundle exec rubocop
|
20
|
+
- name: test
|
21
|
+
run: |
|
22
|
+
git submodule update --init
|
23
|
+
bin/test
|
data/.gitmodules
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
[submodule "test/bats"]
|
2
|
+
path = test/bats
|
3
|
+
url = https://github.com/bats-core/bats-core.git
|
4
|
+
[submodule "test/test_helper/bats-support"]
|
5
|
+
path = test/test_helper/bats-support
|
6
|
+
url = https://github.com/bats-core/bats-support.git
|
7
|
+
[submodule "test/test_helper/bats-assert"]
|
8
|
+
path = test/test_helper/bats-assert
|
9
|
+
url = https://github.com/bats-core/bats-assert.git
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
bundler_date (0.1.0)
|
5
|
+
bundler (>= 2.3)
|
6
|
+
terminal-table
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
ast (2.4.1)
|
12
|
+
parallel (1.20.1)
|
13
|
+
parser (3.0.0.0)
|
14
|
+
ast (~> 2.4.1)
|
15
|
+
rainbow (3.0.0)
|
16
|
+
rake (13.0.6)
|
17
|
+
regexp_parser (2.2.1)
|
18
|
+
rexml (3.2.5)
|
19
|
+
rubocop (1.8.1)
|
20
|
+
parallel (~> 1.10)
|
21
|
+
parser (>= 3.0.0.0)
|
22
|
+
rainbow (>= 2.2.2, < 4.0)
|
23
|
+
regexp_parser (>= 1.8, < 3.0)
|
24
|
+
rexml
|
25
|
+
rubocop-ast (>= 1.2.0, < 2.0)
|
26
|
+
ruby-progressbar (~> 1.7)
|
27
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
28
|
+
rubocop-ast (1.4.0)
|
29
|
+
parser (>= 2.7.1.5)
|
30
|
+
rubocop-rake (0.5.1)
|
31
|
+
rubocop
|
32
|
+
ruby-progressbar (1.11.0)
|
33
|
+
terminal-table (1.6.0)
|
34
|
+
unicode-display_width (2.0.0)
|
35
|
+
|
36
|
+
PLATFORMS
|
37
|
+
x86_64-linux
|
38
|
+
|
39
|
+
DEPENDENCIES
|
40
|
+
bundler_date!
|
41
|
+
rake (~> 13.0)
|
42
|
+
rubocop (~> 1.7)
|
43
|
+
rubocop-rake
|
44
|
+
|
45
|
+
BUNDLED WITH
|
46
|
+
2.3.9
|
data/README.md
CHANGED
@@ -1,5 +1,38 @@
|
|
1
1
|
# BundlerDate
|
2
2
|
|
3
|
+
[](https://badge.fury.io/rb/bundler_date)
|
4
|
+
|
5
|
+
## What?
|
6
|
+
|
7
|
+
Bundle has great command `bundle outdated` to compare installed gems with newer versions available.
|
8
|
+
It does its job but there is one problem.
|
9
|
+
|
10
|
+
Let's try it:
|
11
|
+
|
12
|
+
```bash
|
13
|
+
$ bundle outdated
|
14
|
+
|
15
|
+
Gem Current Latest Requested Groups
|
16
|
+
loofah 2.14.0 2.15.0 = 2.14.0 default
|
17
|
+
sinatra 2.1.0 2.2.0 = 2.1.0 default
|
18
|
+
```
|
19
|
+
Okay, we see that we have almost edge versions of each gem. The difference is one minor version for both.
|
20
|
+
Is it a big difference? We can't say definitely.
|
21
|
+
|
22
|
+
But at least we can check when these versions were released. What will we see?
|
23
|
+
* `loofash 2.14.0` was released in February 2022, `2.15.0` in March 2022
|
24
|
+
* `sinatra 2.1.0` was released in 2020(!), `2.2.0` was released in 2022.
|
25
|
+
|
26
|
+
See the difference? `bundle date` try to show it more explicit.
|
27
|
+
|
28
|
+
```bash
|
29
|
+
$ bundle date
|
30
|
+
Gem Current Current Date Latest Latest Date Days between
|
31
|
+
|
32
|
+
loofah 2.14.0 2022-02-11 2.15.0 2022-03-14 31
|
33
|
+
sinatra 2.1.0 2020-09-04 2.2.0 2022-03-19 561
|
34
|
+
```
|
35
|
+
|
3
36
|
## Installation
|
4
37
|
|
5
38
|
Specify the plugin in your Gemfile:
|
@@ -19,18 +52,3 @@ Or install it yourself as:
|
|
19
52
|
## Usage
|
20
53
|
|
21
54
|
$ bundle date
|
22
|
-
|
23
|
-
## Example
|
24
|
-
|
25
|
-
```bash
|
26
|
-
$ bundle date
|
27
|
-
Fetching gem metadata from https://gems.contribsys.com/.
|
28
|
-
|
29
|
-
Gem Current Current Date Latest Latest Date Days between
|
30
|
-
|
31
|
-
actioncable 5.2.5 2021-03-26 6.1.3.1 2021-04-09 14
|
32
|
-
actionmailer 5.2.5 2021-03-26 6.1.3.1 2021-04-09 14
|
33
|
-
actionpack 5.2.5 2021-03-26 6.1.3.1 2021-04-09 14
|
34
|
-
actionview 5.2.5 2021-03-26 6.1.3.1 2021-04-09 14
|
35
|
-
active_model_serializers 0.10.7 2017-11-15 0.10.12 2021-04-09 1241
|
36
|
-
```
|
data/bin/test
ADDED
data/bundler_date.gemspec
CHANGED
@@ -26,13 +26,10 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
27
27
|
spec.require_paths = ["lib"]
|
28
28
|
|
29
|
-
spec.add_dependency "bundler", "
|
30
|
-
spec.add_dependency "gems"
|
29
|
+
spec.add_dependency "bundler", ">= 2.3"
|
31
30
|
spec.add_dependency "terminal-table"
|
32
31
|
|
33
32
|
spec.add_development_dependency "rake", "~> 13.0"
|
34
|
-
spec.add_development_dependency "rspec", "~> 3.0"
|
35
33
|
spec.add_development_dependency "rubocop", "~> 1.7"
|
36
34
|
spec.add_development_dependency "rubocop-rake"
|
37
|
-
spec.add_development_dependency "rubocop-rspec"
|
38
35
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BundlerDate
|
4
|
+
class Spec
|
5
|
+
attr_reader :spec
|
6
|
+
|
7
|
+
def initialize(spec)
|
8
|
+
@spec = spec
|
9
|
+
end
|
10
|
+
|
11
|
+
def active_spec_list
|
12
|
+
@active_spec_list ||=
|
13
|
+
spec.source.specs
|
14
|
+
.search(spec.name)
|
15
|
+
.select { |s| s.match_platform(spec.platform) }
|
16
|
+
.sort_by(&:version)
|
17
|
+
end
|
18
|
+
|
19
|
+
def method_missing(method_name, *args)
|
20
|
+
if @spec.respond_to?(method_name)
|
21
|
+
@spec.send(method_name, *args)
|
22
|
+
else
|
23
|
+
super
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def respond_to_missing?(method_name, *args)
|
28
|
+
@spec.respond_to?(method_name) or super
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BundlerDate
|
4
|
+
class SpecList
|
5
|
+
attr_reader :definition
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
@definition = Bundler.definition
|
9
|
+
Bundler.ui.silence { definition.resolve }
|
10
|
+
Bundler.ui.silence { definition.resolve_remotely! }
|
11
|
+
@specs = definition.specs
|
12
|
+
end
|
13
|
+
|
14
|
+
def all
|
15
|
+
specs.sort_by(&:name)
|
16
|
+
end
|
17
|
+
|
18
|
+
def specs
|
19
|
+
@specs.map { |s| Spec.new(s) }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/bundler_date/version.rb
CHANGED
data/lib/bundler_date.rb
CHANGED
@@ -1,37 +1,33 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "gems"
|
4
3
|
require "terminal-table"
|
5
4
|
|
5
|
+
require_relative "bundler_date/spec"
|
6
|
+
require_relative "bundler_date/spec_list"
|
6
7
|
require_relative "bundler_date/ui"
|
7
8
|
require_relative "bundler_date/version"
|
8
9
|
|
9
10
|
module BundlerDate
|
10
11
|
class Command
|
11
12
|
def exec(_command_name, _args)
|
12
|
-
resolve_specs!
|
13
13
|
UI.show(ui_rows)
|
14
14
|
end
|
15
15
|
|
16
16
|
private
|
17
17
|
|
18
18
|
def ui_rows
|
19
|
-
|
19
|
+
spec_list = SpecList.new
|
20
|
+
spec_list.all.map do |spec|
|
20
21
|
UI::Row.new(
|
21
|
-
spec.name,
|
22
|
-
|
23
|
-
|
22
|
+
spec.name,
|
23
|
+
spec.version,
|
24
|
+
spec.date,
|
25
|
+
spec.active_spec_list.last.version,
|
26
|
+
spec.active_spec_list.last.date
|
24
27
|
)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def resolve_specs!
|
29
|
-
@definition = Bundler.definition
|
30
|
-
@specs = Bundler.ui.silence { @definition.resolve }
|
31
|
-
Bundler.ui.silence { @definition.resolve_remotely! }
|
28
|
+
end.compact
|
32
29
|
end
|
33
30
|
end
|
34
31
|
|
35
|
-
# Register this class as a handler for the `date` command
|
36
32
|
Bundler::Plugin::API.command("date", Command)
|
37
33
|
end
|
metadata
CHANGED
@@ -1,43 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bundler_date
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Kozlov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-03-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '2.0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '2.0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: gems
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
30
16
|
requirements:
|
31
17
|
- - ">="
|
32
18
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
19
|
+
version: '2.3'
|
34
20
|
type: :runtime
|
35
21
|
prerelease: false
|
36
22
|
version_requirements: !ruby/object:Gem::Requirement
|
37
23
|
requirements:
|
38
24
|
- - ">="
|
39
25
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
26
|
+
version: '2.3'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: terminal-table
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,20 +52,6 @@ dependencies:
|
|
66
52
|
- - "~>"
|
67
53
|
- !ruby/object:Gem::Version
|
68
54
|
version: '13.0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rspec
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '3.0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '3.0'
|
83
55
|
- !ruby/object:Gem::Dependency
|
84
56
|
name: rubocop
|
85
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,20 +80,6 @@ dependencies:
|
|
108
80
|
- - ">="
|
109
81
|
- !ruby/object:Gem::Version
|
110
82
|
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: rubocop-rspec
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ">="
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
83
|
description: Bundler plugin to show the release dates of gems.
|
126
84
|
email:
|
127
85
|
- loadkpi@gmail.com
|
@@ -131,16 +89,21 @@ extra_rdoc_files: []
|
|
131
89
|
files:
|
132
90
|
- ".github/workflows/main.yml"
|
133
91
|
- ".gitignore"
|
92
|
+
- ".gitmodules"
|
134
93
|
- ".rspec"
|
135
94
|
- ".rubocop.yml"
|
95
|
+
- CHANGELOG.md
|
136
96
|
- Gemfile
|
97
|
+
- Gemfile.lock
|
137
98
|
- LICENSE.md
|
138
99
|
- README.md
|
139
100
|
- Rakefile
|
140
|
-
- bin/console
|
141
101
|
- bin/setup
|
102
|
+
- bin/test
|
142
103
|
- bundler_date.gemspec
|
143
104
|
- lib/bundler_date.rb
|
105
|
+
- lib/bundler_date/spec.rb
|
106
|
+
- lib/bundler_date/spec_list.rb
|
144
107
|
- lib/bundler_date/ui.rb
|
145
108
|
- lib/bundler_date/ui/terminal_table.rb
|
146
109
|
- lib/bundler_date/ui/ui_row.rb
|
@@ -167,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
167
130
|
- !ruby/object:Gem::Version
|
168
131
|
version: '0'
|
169
132
|
requirements: []
|
170
|
-
rubygems_version: 3.
|
133
|
+
rubygems_version: 3.2.22
|
171
134
|
signing_key:
|
172
135
|
specification_version: 4
|
173
136
|
summary: Bundler plugin to show the release dates of gems.
|
data/bin/console
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# frozen_string_literal: true
|
3
|
-
|
4
|
-
require "bundler/setup"
|
5
|
-
require "bundler_date"
|
6
|
-
|
7
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
8
|
-
# with your gem easier. You can also use a different console, if you like.
|
9
|
-
|
10
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
11
|
-
# require "pry"
|
12
|
-
# Pry.start
|
13
|
-
|
14
|
-
require "irb"
|
15
|
-
IRB.start(__FILE__)
|