bundled_gems 0.0.2 → 0.0.3
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/ci.yml +23 -0
- data/lib/bundled_gem/cli.rb +16 -4
- data/lib/bundled_gem/version.rb +1 -1
- data/lib/bundled_gems.rb +28 -2
- metadata +3 -3
- data/.travis.yml +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b47878669b0c986d6262672cddc561c1e0fd81882a785e8184ece0134069823c
|
4
|
+
data.tar.gz: 4c0249c0f2dbfb99fae25e19e6fe0dfef136e21860498423c98711c66337c3a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61a7e796201d267e027b20dffee3814d82fcaa7220790c9ac96bce3f55daf2cfddeb4ac5557201279fefc25906aecc5f5d73a079f26eaed5efbfdf30f923ab49
|
7
|
+
data.tar.gz: 1cb8d904126c16ca26498be052b0b97c37fed27fe7d81e51d8067f2d6f75fa3bacecdc4ed779b367b3dfe06d6dce66b4f140f4eac2f9b28392851bbebe832c2d
|
@@ -0,0 +1,23 @@
|
|
1
|
+
name: Ruby Test
|
2
|
+
on: [push]
|
3
|
+
jobs:
|
4
|
+
build:
|
5
|
+
strategy:
|
6
|
+
matrix:
|
7
|
+
ruby: [2.4.x, 2.5.x, 2.6.x]
|
8
|
+
os: [ubuntu-latest, macos-latest]
|
9
|
+
runs-on: ${{ matrix.os }}
|
10
|
+
steps:
|
11
|
+
- uses: actions/checkout@v1
|
12
|
+
- name: Set up Ruby ${{ matrix.ruby }}
|
13
|
+
uses: actions/setup-ruby@v1
|
14
|
+
with:
|
15
|
+
ruby-version: ${{ matrix.ruby }}
|
16
|
+
- name: Build and test with Rake
|
17
|
+
run: |
|
18
|
+
gem install bundler --force --no-document
|
19
|
+
bundle install --jobs 4 --retry 3
|
20
|
+
bundle exec rake
|
21
|
+
- run: ./bin/bgem
|
22
|
+
- run: ./bin/bgem list
|
23
|
+
- run: ./bin/bgem install rake
|
data/lib/bundled_gem/cli.rb
CHANGED
@@ -4,11 +4,23 @@ require 'thor'
|
|
4
4
|
|
5
5
|
module BundledGem
|
6
6
|
class Cli < Thor
|
7
|
-
desc "
|
7
|
+
desc "install [BUNDLED_GEM]", "install [BUNDLED_GEM] from `Gemfile.lock`"
|
8
|
+
def install(bundled_gem)
|
9
|
+
reader = LockfileReader.new
|
10
|
+
if reader.gem_listed?(bundled_gem)
|
11
|
+
version = reader.get_version(bundled_gem)
|
12
|
+
system "gem install #{bundled_gem} --version #{version}"
|
13
|
+
else
|
14
|
+
abort "`#{bundled_gem}` is not listed in Gemfile.lock."
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
desc "list", "bundle list without `bundle install`"
|
8
19
|
def list
|
9
|
-
|
10
|
-
|
11
|
-
|
20
|
+
puts "Gems included in `Gemfile.lock`:"
|
21
|
+
LockfileReader.new.lockfile_specs.each do |s|
|
22
|
+
puts " * #{s.name}, #{s.version}"
|
23
|
+
end
|
12
24
|
end
|
13
25
|
end
|
14
26
|
end
|
data/lib/bundled_gem/version.rb
CHANGED
data/lib/bundled_gems.rb
CHANGED
@@ -4,6 +4,32 @@ require 'bundler'
|
|
4
4
|
require "bundled_gem/version"
|
5
5
|
|
6
6
|
module BundledGem
|
7
|
-
class
|
8
|
-
|
7
|
+
class LockfileReader
|
8
|
+
LOCKFILE = "Gemfile.lock"
|
9
|
+
|
10
|
+
def initialize(lockfile: LOCKFILE)
|
11
|
+
@lockfile_content = File.read(lockfile)
|
12
|
+
end
|
13
|
+
|
14
|
+
# Parse `Gemfile.lock` and Retrieve specs
|
15
|
+
def lockfile_specs
|
16
|
+
lockfile.specs
|
17
|
+
end
|
18
|
+
|
19
|
+
# Get version info from `Gemfile.lock`
|
20
|
+
def get_version(gem)
|
21
|
+
lockfile_specs.find{ |s| s.name == "rake"}.version
|
22
|
+
end
|
23
|
+
|
24
|
+
# Check gem is listed in `Gemfile.lock`
|
25
|
+
def gem_listed?(gem)
|
26
|
+
lockfile_specs.map(&:name).include? gem
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def lockfile
|
32
|
+
@lockfile ||= ::Bundler::LockfileParser.new(@lockfile_content)
|
33
|
+
end
|
34
|
+
end
|
9
35
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bundled_gems
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- toshimaru
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-10-
|
11
|
+
date: 2019-10-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -74,8 +74,8 @@ executables:
|
|
74
74
|
extensions: []
|
75
75
|
extra_rdoc_files: []
|
76
76
|
files:
|
77
|
+
- ".github/workflows/ci.yml"
|
77
78
|
- ".gitignore"
|
78
|
-
- ".travis.yml"
|
79
79
|
- CODE_OF_CONDUCT.md
|
80
80
|
- Gemfile
|
81
81
|
- LICENSE.txt
|