smolt 0.3.3 → 0.4.0

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: '085840f722b4df85356344cf6368539752013fa51b09bca5c6cffa532ad1901c'
4
- data.tar.gz: 5ef0706d694919115f54dde828d75c656ee4ebaa0094539a2876555b5418966d
3
+ metadata.gz: a6e45c9b9f6d4fbf8a2b5a1bcc4a2bf034d0c60891023c1344d49bd4322b25a3
4
+ data.tar.gz: b196a1bcbc44efed60b57d2540592ae04c86eb9d751b1899d9f864f5f3b21983
5
5
  SHA512:
6
- metadata.gz: 7042a7b921a17b730b8150c3018ee3508331a35f76f373084f9c871d85f931150370d5ca4a71a2bf1c19ce3dbb8a55bf96fdae8a1f6feddfeedb97712c82fb8f
7
- data.tar.gz: aa58f3751b588838fa550069d25845e3d3bc19724ad592917341eb142683eb4665dd2349a5f86598538d006443fac065ea3df3eeaf9c2db6e10a6b99df90138e
6
+ metadata.gz: e6634f2823c2f34c6d439577ef4add70f5165adba6d6f699642c5258bddd43e1786733a0cf9abe38b7421804ac6f984703f35bcdc1d11e8c00461b266520fbe5
7
+ data.tar.gz: 9d9b16f54249e337d7dee2ed45b16152aa8240ae1bdda7008f3c48b6163af7e96334774716e79e0dc4d522d052385fb2ffb2b60c6b4217e923a3c8f4d7dd3a28
data/.gitignore CHANGED
@@ -29,3 +29,6 @@ Gemfile.lock
29
29
 
30
30
  # Session
31
31
  Session.vim
32
+
33
+ # Byebug history
34
+ .byebug_history
data/CHANGELOG.md CHANGED
@@ -31,3 +31,16 @@ usage example
31
31
  usage
32
32
 
33
33
  $ smolt version
34
+
35
+ ## [0.3.3] - 2022-05-19
36
+ ### Fixed
37
+ - Show message like `{berw} is already installed.`
38
+
39
+ ## [0.4.0] - 2022-05-24
40
+ ### Change
41
+ - the word 'brew' to 'formula'
42
+
43
+ ### Removed
44
+ - Show message like `{formula} is already installed.`
45
+ - Pattern like 'the formula is already installed'. Because 'does not require any dependencies covers it'
46
+ - Method `full`. Because you can find out formulas already installed by `brew list` command
data/Gemfile CHANGED
@@ -4,6 +4,7 @@ source "https://rubygems.org"
4
4
 
5
5
  gemspec
6
6
 
7
+ gem "byebug"
7
8
  gem "rake", "~> 13.0"
8
9
  gem "rspec", "~> 3.0"
9
10
  gem "rspec-mocks"
data/README.md CHANGED
@@ -23,15 +23,10 @@ Or install it yourself as:
23
23
  $ gem install smolt
24
24
 
25
25
  ## Usage
26
- $ smolt full {brew package name}
26
+ $ smolt diff {formula}
27
27
 
28
- This shows dependencies of the brew is given as an argument.
29
- If you installed the brew, Smolt return the message like "{brew} is already installed."
30
-
31
- $ smolt diff {brew package name}
32
-
33
- This shows brews brews you need to install the brew is given as an argument.
34
- If you installed the brew, Smolt return the message like "{brew} is already installed."
28
+ This will show any additional dependent packages that need to be installed in order to install the package given in the argument.
29
+ If you don't need any additional packeges, Smolt returns the message like "{formula} does not require any additional dependencies."
35
30
 
36
31
  ## Development
37
32
 
data/lib/smolt/cli.rb CHANGED
@@ -3,6 +3,10 @@
3
3
  require "./lib/smolt"
4
4
  require "./lib/smolt/version"
5
5
  require "thor"
6
+ require "uri"
7
+ require "net/http"
8
+ require "json"
9
+ require "byebug"
6
10
 
7
11
  module Smolt
8
12
  # Smolt's all methods
@@ -12,34 +16,33 @@ module Smolt
12
16
  puts "smolt #{VERSION}"
13
17
  end
14
18
 
15
- desc "full Brew", "show full dependencies"
16
- def full(brew)
17
- brew_params(brew)
18
- @installed_brews.grep(/#{brew}/)
19
- return puts "#{brew} is already installed." unless @installed_brews.grep(/#{brew}/).empty?
20
-
21
- puts @formatted_full
19
+ desc "diff deps", "return differencies of dependencies"
20
+ def diff(formula)
21
+ puts brew_deps(formula)
22
22
  end
23
23
 
24
- desc "diff Brew", "show differencies of dependencies"
25
- def diff(brew)
26
- brew_params(brew)
27
- return puts "#{brew} is already installed." unless @installed_brews.grep(/#{brew}/).empty?
24
+ private
28
25
 
29
- puts @formatted_diff
26
+ def brew_deps(formula)
27
+ installed = brew_list
28
+ deps_array = fetch_deps(formula)
29
+ deps = []
30
+ deps_array.each { |f| deps << f unless installed.include?(f) }
31
+ if deps.empty?
32
+ "#{formula} does not require any additional dependencies."
33
+ else
34
+ ":::Differencies of dependencies:::\n#{deps}"
35
+ end
30
36
  end
31
37
 
32
- private
38
+ def fetch_deps(formula)
39
+ uri = URI("https://formulae.brew.sh/api/formula/#{formula}.json")
40
+ res = Net::HTTP.get_response(uri)
41
+ JSON.parse(res.body)["dependencies"] if res.is_a?(Net::HTTPSuccess)
42
+ end
33
43
 
34
- def brew_params(brew)
35
- @brew = brew
36
- @installed_brews = `brew list`.split("\n")
37
- dependent_brews = `brew deps #{@brew}`.split("\n")
38
- diff_brews = dependent_brews - @installed_brews
39
- divider = "-" * 50
40
- formatted_installed = "#{divider}\nInstalled brews\n#{divider}\n#{@installed_brews}\n"
41
- @formatted_diff = "#{divider}\nAdditional brews\n#{divider}\n#{diff_brews}"
42
- @formatted_full = "#{formatted_installed}\n#{@formatted_diff}"
44
+ def brew_list
45
+ `brew list`.split("\n")
43
46
  end
44
47
  end
45
48
  end
data/lib/smolt/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Smolt
4
- VERSION = "0.3.3"
4
+ VERSION = "0.4.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smolt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Naoyuki Ishida
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-19 00:00:00.000000000 Z
11
+ date: 2022-05-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor