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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f84d79a8f3f95650a7ed79bf9ed3ea0a37a2193d2d4fdaedc7c2249d7a1fd864
4
- data.tar.gz: db22a399f312a2165076ea6479846c2b6a9e8e83867361a53660f69b4dd8ac74
3
+ metadata.gz: b47878669b0c986d6262672cddc561c1e0fd81882a785e8184ece0134069823c
4
+ data.tar.gz: 4c0249c0f2dbfb99fae25e19e6fe0dfef136e21860498423c98711c66337c3a9
5
5
  SHA512:
6
- metadata.gz: d9c4449f50a42d540a7611b126890ffad96d711d6ae07cd8c0352dab5f162241cab3c8e2e417d9e216485eb9443fb66200b8a633b1f8b18eced7963bff23f342
7
- data.tar.gz: cfb333706c875f3fd9211eef0d72ead7f8eb1f72694ff4c3b72dbbf713e9f8d4a2707620359bc694e3e0d9b11b409b5d07cd932193d3fcf4c1b54b0e18c3b9ae
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
@@ -4,11 +4,23 @@ require 'thor'
4
4
 
5
5
  module BundledGem
6
6
  class Cli < Thor
7
- desc "list", "bundle list(without bundle install)"
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
- gemfilelock_content = File.read("./Gemfile.lock")
10
- lockfile = ::Bundler::LockfileParser.new(gemfilelock_content)
11
- lockfile.specs.each { |s| puts "#{s.name}, #{s.version}" }
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BundledGem
4
- VERSION = "0.0.2"
4
+ VERSION = "0.0.3"
5
5
  end
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 Error < StandardError; end
8
- # Your code goes here...
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.2
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-05 00:00:00.000000000 Z
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
data/.travis.yml DELETED
@@ -1,10 +0,0 @@
1
- ---
2
- sudo: false
3
- language: ruby
4
- cache: bundler
5
- rvm:
6
- - 2.6.5
7
- script:
8
- - bundle exec rake
9
- - ./bin/bgem
10
- before_install: gem install bundler