bundled_gems 0.0.2 → 0.0.3

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