smolt 0.3.2 → 0.4.1

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