smolt 0.3.1 → 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: 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