smolt 0.3.3 → 0.4.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 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