smolt 0.3.1 → 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: 4c4c3efd8dda20bc9545cd8feaa4db39336d18fd8b8ec4c0386df85a0a0ad4b2
4
- data.tar.gz: 927613a0c256a6beae94c7757dc97e66d6a1e056d5222281c8373d6acff266d2
3
+ metadata.gz: a6e45c9b9f6d4fbf8a2b5a1bcc4a2bf034d0c60891023c1344d49bd4322b25a3
4
+ data.tar.gz: b196a1bcbc44efed60b57d2540592ae04c86eb9d751b1899d9f864f5f3b21983
5
5
  SHA512:
6
- metadata.gz: 810ce4d2f40c4329047ebb019bcaddc5c52096c27c13c12d05e6ae4954aadf39eea2438dab6e31b656b7dfbac9bca82a436d00b4249a6cc8b024bcc4677dc6ed
7
- data.tar.gz: 5d1398f76518a06cd2895b21cef80c934ad98d31592d8f15bf82c91c5fba4c8768cee2d96c345762be5db90c14e255f5154ac953918135439e46fcb8e1d91a6c
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
@@ -1,5 +1,46 @@
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
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_relative "../lib/smolt"
5
+ require "./lib/smolt"
6
6
 
7
7
  Smolt::CLI.start
data/lib/smolt/cli.rb CHANGED
@@ -1,39 +1,48 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "../smolt"
3
+ require "./lib/smolt"
4
+ require "./lib/smolt/version"
4
5
  require "thor"
6
+ require "uri"
7
+ require "net/http"
8
+ require "json"
9
+ require "byebug"
5
10
 
6
11
  module Smolt
7
12
  # Smolt's all methods
8
13
  class CLI < Thor
9
- desc "full Brew", "show full dependencies"
10
- def full(brew)
11
- brew_params(brew)
12
- @installed_brews.grep(/#{brew}/)
13
- return "#{brew} is already installed." unless @installed_brews.grep(/#{brew}/).empty?
14
+ desc "version", "show smolt version"
15
+ def version
16
+ puts "smolt #{VERSION}"
17
+ end
14
18
 
15
- puts @formatted_full
19
+ desc "diff deps", "return differencies of dependencies"
20
+ def diff(formula)
21
+ puts brew_deps(formula)
16
22
  end
17
23
 
18
- desc "diff Brew", "show differencies of dependencies"
19
- def diff(brew)
20
- brew_params(brew)
21
- return "#{brew} is already installed." unless @installed_brews.grep(/#{brew}/).empty?
24
+ private
22
25
 
23
- 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
24
36
  end
25
37
 
26
- 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
27
43
 
28
- def brew_params(brew)
29
- @brew = brew
30
- @installed_brews = `brew list`.split("\n")
31
- dependent_brews = `brew deps #{@brew}`.split("\n")
32
- diff_brews = dependent_brews - @installed_brews
33
- divider = "-" * 50
34
- formatted_installed = "#{divider}\nInstalled brews\n#{divider}\n#{@installed_brews}\n"
35
- @formatted_diff = "#{divider}\nAdditional brews\n#{divider}\n#{diff_brews}"
36
- @formatted_full = "#{formatted_installed}\n#{@formatted_diff}"
44
+ def brew_list
45
+ `brew list`.split("\n")
37
46
  end
38
47
  end
39
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.1"
4
+ VERSION = "0.4.0"
5
5
  end
data/lib/smolt.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "smolt/version"
4
- require_relative "smolt/cli"
3
+ require "./lib/smolt/version"
4
+ require "./lib/smolt/cli"
5
5
 
6
6
  # Service to check the dependencies from the formula you want to install by homebrew
7
7
  module Smolt
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.1
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