smolt 0.3.2 → 0.4.1

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: 5e74cd72ed609464f409a8160ccca924f60d0cad0aea19e8759069025ce134bd
4
- data.tar.gz: 697d6b920661062c75c89fe32374aff570760b95f4ab861abe02cea2bc697f2d
3
+ metadata.gz: 2da25ad8b4de2934443748a1d17bcd6b3abdf360d684cca4eabb84b39d41232b
4
+ data.tar.gz: b66b44fe684746f77e8bc59e9d7df9a3b867bc74d94be736bb0f7952740fede6
5
5
  SHA512:
6
- metadata.gz: e928f596f4cff26e52f47dcb56c959c15a0f620febe084493d31032a03f4c915fe4041b88167e0d65b0f2af43029e1b7726de952de6f1cd62d1670302a207c6b
7
- data.tar.gz: 1f26499f146df3e6c3ac5d7ec2f1f4044209eb22cf39a69813532876d45ba82a2fcc4d0d576dfc22e2ebafa62bc77efd7873711e26e1b471515927d34c801aeb
6
+ metadata.gz: 918e2726fb20c2f0debb6eb82a5c11340c3e349b0c40eb427b9aadebc885c36ec4ad0a2552e291330ffe91f0efbaf9aae2aff7aab9bf42c41ae03a6f81c8924d
7
+ data.tar.gz: cddeece3782487d82c5c2594af06acc333b9a12fab428b4f745f97f93074a84a13dd67c163aae068ebcff08fb192b128ecac211ec48824472cb467f5b7f8a27c
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
@@ -1,5 +1,50 @@
1
1
  ## [Unreleased]
2
2
 
3
3
  ## [0.1.0] - 2021-12-31
4
-
5
4
  - Initial release
5
+
6
+ ## [0.2.0] - 2022-01-03
7
+ - Fixed many bugs
8
+
9
+ ## [0.3.0] - 2022-05-18
10
+ ### Changed
11
+ - `full(brew)` method updated
12
+
13
+ usage example
14
+
15
+ $ smolt full ffmpeg
16
+
17
+ - `diff(brew)` method updated
18
+
19
+ usage example
20
+
21
+ $ smolt diff ffmpeg
22
+
23
+ ## [0.3.1] - 2022-05-19
24
+ ### Changed
25
+ - Fixed some codes accoding to rubocop
26
+
27
+ ## [0.3.2] - 2022-05-19
28
+ ### Added
29
+ - `version` command
30
+
31
+ usage
32
+
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
47
+
48
+ ## [0.4.1] - 2022-05-26
49
+ ### Change
50
+ - path for `require` in exe/smolt
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
@@ -4,6 +4,10 @@ Smolt shows dependencies for homebrew.
4
4
 
5
5
  ## Installation
6
6
 
7
+ ### Using gem command
8
+ $ gem install smolt
9
+
10
+ ### Using Bundler
7
11
  Add this line to your application's Gemfile:
8
12
 
9
13
  ```ruby
@@ -19,21 +23,10 @@ Or install it yourself as:
19
23
  $ gem install smolt
20
24
 
21
25
  ## Usage
22
- ```ruby
23
- require 'smolt'
24
- Smolt.full('openssl')
25
- ```
26
-
27
- This shows brews installed already and brews you need to install.
28
- If you installed the brew, Smolt return the message like "{brew} is already installed."
29
-
30
- ```ruby
31
- require "smolt"
32
- Smolt.diff('openssl')
33
- ```
26
+ $ smolt diff {formula}
34
27
 
35
- This shows only brews you need to install.
36
- 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."
37
30
 
38
31
  ## Development
39
32
 
data/exe/smolt CHANGED
@@ -2,6 +2,6 @@
2
2
 
3
3
  # frozen_string_literal: true
4
4
 
5
- require "./lib/smolt"
5
+ require "smolt"
6
6
 
7
7
  Smolt::CLI.start
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 "#{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 "#{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.2"
4
+ VERSION = "0.4.1"
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.2
4
+ version: 0.4.1
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-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor