depec 1.0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: '09d7e12c703037257dfa1e43846e066dd6cccfb86e5cf2edff637db65fd59b58'
4
+ data.tar.gz: 9ad0579f597c149926f36401e06b9e30cc99cae1eefc30600f482e3673dd14a9
5
+ SHA512:
6
+ metadata.gz: 41e11661859ed564b59644a10c25e967afe07f2387560454b78de29bad31f4f4a2c76a8636e100fae64c97cf7d82ab1cea3e5154f9f0f8a24db7db06daaf3135
7
+ data.tar.gz: 7fe8caf06f16979fb00f38d6e0e2b8ac49cadf04f6a4594eeafe7109c3d8efa93d6a376b8caebc0c91b1e879b3487b38b287970ec2f39cc02672f4c897d7d44e
@@ -0,0 +1,20 @@
1
+ name: Release
2
+ on:
3
+ push:
4
+ tags:
5
+ - 'v*'
6
+ jobs:
7
+ release:
8
+ runs-on: ubuntu-latest
9
+ steps:
10
+ - uses: actions/checkout@v2
11
+ - uses: ruby/setup-ruby@v1
12
+ with:
13
+ ruby-version: 3.0.3
14
+ bundler-cache: true
15
+ - run: |
16
+ git config --global user.email "me@moeki.dev"
17
+ git config --global user.name "moekidev"
18
+ - run: bundle exec rake release
19
+ env:
20
+ GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
data/.gitignore ADDED
@@ -0,0 +1,12 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ /vendor/
10
+
11
+ # rspec failure tracking
12
+ .rspec_status
data/.rspec ADDED
@@ -0,0 +1,4 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
4
+ --require rspec-power_assert
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.0.3
data/Gemfile ADDED
@@ -0,0 +1,14 @@
1
+ source "https://rubygems.org"
2
+
3
+ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
+
5
+ group :development do
6
+ gem "bundler", "~> 2.2"
7
+ gem "rake", "~> 10.0"
8
+ gem "rspec", "~> 3.0"
9
+ gem "rspec-power_assert"
10
+ gem "thor", "~> 1.1"
11
+ gem "tty-prompt", "~> 0.23"
12
+ gem "dry-schema", "~> 1.8"
13
+ gem "yard"
14
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,82 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ concurrent-ruby (1.1.9)
5
+ diff-lcs (1.4.4)
6
+ dry-configurable (0.13.0)
7
+ concurrent-ruby (~> 1.0)
8
+ dry-core (~> 0.6)
9
+ dry-container (0.9.0)
10
+ concurrent-ruby (~> 1.0)
11
+ dry-configurable (~> 0.13, >= 0.13.0)
12
+ dry-core (0.7.1)
13
+ concurrent-ruby (~> 1.0)
14
+ dry-inflector (0.2.1)
15
+ dry-initializer (3.0.4)
16
+ dry-logic (1.2.0)
17
+ concurrent-ruby (~> 1.0)
18
+ dry-core (~> 0.5, >= 0.5)
19
+ dry-schema (1.8.0)
20
+ concurrent-ruby (~> 1.0)
21
+ dry-configurable (~> 0.13, >= 0.13.0)
22
+ dry-core (~> 0.5, >= 0.5)
23
+ dry-initializer (~> 3.0)
24
+ dry-logic (~> 1.0)
25
+ dry-types (~> 1.5)
26
+ dry-types (1.5.1)
27
+ concurrent-ruby (~> 1.0)
28
+ dry-container (~> 0.3)
29
+ dry-core (~> 0.5, >= 0.5)
30
+ dry-inflector (~> 0.1, >= 0.1.2)
31
+ dry-logic (~> 1.0, >= 1.0.2)
32
+ pastel (0.8.0)
33
+ tty-color (~> 0.5)
34
+ power_assert (1.1.7)
35
+ rake (10.5.0)
36
+ rspec (3.10.0)
37
+ rspec-core (~> 3.10.0)
38
+ rspec-expectations (~> 3.10.0)
39
+ rspec-mocks (~> 3.10.0)
40
+ rspec-core (3.10.1)
41
+ rspec-support (~> 3.10.0)
42
+ rspec-expectations (3.10.1)
43
+ diff-lcs (>= 1.2.0, < 2.0)
44
+ rspec-support (~> 3.10.0)
45
+ rspec-mocks (3.10.2)
46
+ diff-lcs (>= 1.2.0, < 2.0)
47
+ rspec-support (~> 3.10.0)
48
+ rspec-power_assert (1.1.0)
49
+ power_assert (~> 1.1.0)
50
+ rspec (>= 2.14)
51
+ rspec-support (3.10.3)
52
+ thor (1.1.0)
53
+ tty-color (0.6.0)
54
+ tty-cursor (0.7.1)
55
+ tty-prompt (0.23.1)
56
+ pastel (~> 0.8)
57
+ tty-reader (~> 0.8)
58
+ tty-reader (0.9.0)
59
+ tty-cursor (~> 0.7)
60
+ tty-screen (~> 0.8)
61
+ wisper (~> 2.0)
62
+ tty-screen (0.8.1)
63
+ webrick (1.7.0)
64
+ wisper (2.0.1)
65
+ yard (0.9.27)
66
+ webrick (~> 1.7.0)
67
+
68
+ PLATFORMS
69
+ ruby
70
+
71
+ DEPENDENCIES
72
+ bundler (~> 2.2)
73
+ dry-schema (~> 1.8)
74
+ rake (~> 10.0)
75
+ rspec (~> 3.0)
76
+ rspec-power_assert
77
+ thor (~> 1.1)
78
+ tty-prompt (~> 0.23)
79
+ yard
80
+
81
+ BUNDLED WITH
82
+ 2.2.32
data/README.md ADDED
@@ -0,0 +1,68 @@
1
+ # Depec
2
+
3
+ Depec analyze project directory's dependency spec.
4
+ It provides CLI to parse files in a project directory and report dependency spec as JSON.
5
+
6
+ ## Installation
7
+
8
+ Add this line to your application's Gemfile:
9
+
10
+ ```ruby
11
+ gem "depec"
12
+ ```
13
+
14
+ And then execute:
15
+
16
+ $ bundle
17
+
18
+ Or:
19
+
20
+ $ gem install depec
21
+
22
+ ## Usage
23
+
24
+ Initialize configuration:
25
+
26
+ ```bash
27
+ depec init
28
+ ? Do you want to know whether Ruby is used?: Yes
29
+ ? Do you want to know Ruby version?: Yes
30
+ ? Do you want to know Bundler version?: Yes
31
+ ? Gem name that do you want to know version: rails, jekyll
32
+ ? Do you want to know whether Node.js is used?: Yes
33
+ ? Do you want to know Node.js version?: Yes
34
+ ? Npm package name that do you want to know version: vue, react
35
+ ? Do you want to know whether CircleCI is used?: Yes
36
+ ? Do you want to know CircleCI images?: Yes
37
+ ? Do you want to know whether GitHub Actions is used?: Yes
38
+ ```
39
+
40
+ Analyze specified directory:
41
+
42
+ ```bash
43
+ depec analyze DIR --config=.depecrc.yml
44
+ {
45
+ "name": DIR_NAME,
46
+ "ruby": true,
47
+ "ruby_version": "2.6.9",
48
+ "bundler_version": "2.2.32",
49
+ "rails_gem": null,
50
+ "jekyll_gem": null,
51
+ "node": true,
52
+ "node_version": "14.15.1",
53
+ "vue_npm": "3.0.7",
54
+ "react_npm": null,
55
+ "circle_ci": true,
56
+ "circle_ci_images": [
57
+ "cimg/ruby:2.6.9-node",
58
+ "cimg/postgres:12.9"
59
+ ],
60
+ "github_actions": false
61
+ }
62
+ ```
63
+
64
+ If you want to output to JSON file,
65
+
66
+ ```bash
67
+ depec analyze DIR --config=.depecrc.yml --output=out.json
68
+ ```
data/Rakefile ADDED
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
4
+ require "rspec/core/rake_task"
5
+ require "yard"
6
+
7
+ RSpec::Core::RakeTask.new(:spec)
8
+
9
+ task :default => :spec
10
+
11
+ YARD::Rake::YardocTask.new do |t|
12
+ t.files = ['lib/**/*.rb']
13
+ end
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "depec"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
data/depec.gemspec ADDED
@@ -0,0 +1,41 @@
1
+
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "depec/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "depec"
8
+ spec.version = Depec::VERSION
9
+ spec.authors = ["moekidev"]
10
+ spec.email = ["me@moeki.dev"]
11
+ spec.license = "MIT"
12
+
13
+ spec.summary = "Depec analyzes project's depencency spec."
14
+ spec.description = <<~EOF
15
+ Depec analyzes project's dependency spec.
16
+ It provides CLI to parse files in a project directory and
17
+ report dependency spec as JSON.
18
+ EOF
19
+ spec.homepage = "https://github.com/modekdev/depec"
20
+
21
+ if spec.respond_to?(:metadata)
22
+
23
+ spec.metadata["homepage_uri"] = spec.homepage
24
+ spec.metadata["source_code_uri"] = "https://github.com/modekdev/depec"
25
+ spec.metadata["changelog_uri"] = "https://github.com/modekdev/depec"
26
+ else
27
+ raise "RubyGems 2.0 or newer is required to protect against " \
28
+ "public gem pushes."
29
+ end
30
+
31
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
32
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
33
+ end
34
+ spec.bindir = "exe"
35
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
36
+ spec.require_paths = ["lib"]
37
+
38
+ spec.add_runtime_dependency "thor", "~> 1.1"
39
+ spec.add_runtime_dependency "tty-prompt", "~> 0.23"
40
+ spec.add_runtime_dependency "dry-schema", "~> 1.8"
41
+ end
data/exe/depec ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "depec"
4
+
5
+ Depec::CLI.start
@@ -0,0 +1,49 @@
1
+ require_relative 'configuration'
2
+ Dir.glob(__dir__ + '/target/*.rb').each {|f| require_relative f }
3
+
4
+ module Depec
5
+ class Analyzer
6
+ #
7
+ # @param [String]
8
+ # @param [Hash]
9
+ #
10
+ def initialize(dir, config)
11
+ @dir = dir
12
+ @name = File.basename(@dir)
13
+ @config = Configuration.call(config).to_h
14
+ end
15
+
16
+ #
17
+ # @return [Hash]
18
+ #
19
+ def analyze
20
+ results = {
21
+ name: @name
22
+ }
23
+
24
+ @config[:targets].each do |target, options|
25
+ klass = Object.const_get("Depec::Target::#{target.to_s.split('_').collect!{ |w| w.capitalize }.join}").new(@dir)
26
+ results[target] = klass.used? if options[:use]
27
+ if [:ruby, :node].include?(target)
28
+ results[:"#{target}_version"] = klass.version if options[:version]
29
+ end
30
+ if target == :circle_ci
31
+ results[:circle_ci_images] = klass.images if options[:images]
32
+ end
33
+ if target == :ruby
34
+ results[:bundler_version] = klass.bundler_version if options[:bundler_version]
35
+ options[:gem_version]&.each do |gem|
36
+ results[:"#{gem}_gem"] = klass.gem_version(gem)
37
+ end
38
+ end
39
+ if target == :node
40
+ options[:npm_version]&.each do |npm|
41
+ results[:"#{npm}_npm"] = klass.npm_version(npm)
42
+ end
43
+ end
44
+ end
45
+
46
+ results
47
+ end
48
+ end
49
+ end
data/lib/depec/cli.rb ADDED
@@ -0,0 +1,54 @@
1
+ require 'json'
2
+ require 'yaml'
3
+ require 'thor'
4
+ require 'tty-prompt'
5
+
6
+ require_relative 'analyzer'
7
+ require_relative 'initializer'
8
+ require_relative 'configuration'
9
+
10
+ module Depec
11
+ class CLI < Thor
12
+ #
13
+ # @param [String] dir
14
+ #
15
+ desc "analyze DIR", "Analyze project dependency spec"
16
+ method_option "config", desc: "config", default: Depec::DEFAULT_CONFIG_FILE
17
+ method_option "output", desc: "output", default: nil
18
+ def analyze(dir)
19
+ result = Depec::Analyzer.new(dir, YAML.load_file(options["config"])).analyze
20
+ if options["output"]
21
+ File.open(options["output"], "w+") do |f|
22
+ f.write(result.to_json)
23
+ end
24
+ else
25
+ puts JSON.pretty_generate(result)
26
+ end
27
+ end
28
+
29
+ desc "init", "Initialize depec configuration"
30
+ def init
31
+ prompt = TTY::Prompt.new
32
+ initializer = Depec::Initializer.new
33
+
34
+ answers = {
35
+ ruby: prompt.yes?("? Do you want to know whether Ruby is used?: "),
36
+ ruby_version: prompt.yes?("? Do you want to know Ruby version?: "),
37
+ bundler_version: prompt.yes?("? Do you want to know Bundler version?: "),
38
+ gem_version: prompt.ask("? Gem name that do you want to know version: ", default: "rails, jekyll", convert: :array),
39
+ node: prompt.yes?("? Do you want to know whether Node.js is used?: "),
40
+ node_version: prompt.yes?("? Do you want to know Node.js version?: "),
41
+ npm_version: prompt.ask("? Npm package name that do you want to know version: ", default: "vue, react", convert: :array),
42
+ circle_ci: prompt.yes?("? Do you want to know whether CircleCI is used?: "),
43
+ circle_ci_images: prompt.yes?("? Do you want to know CircleCI images?: "),
44
+ github_actions: prompt.yes?("? Do you want to know whether GitHub Actions is used?: "),
45
+ }
46
+
47
+ config = initializer.processAnswers(answers)
48
+
49
+ File.open(Depec::DEFAULT_CONFIG_FILE, 'w+') do |f|
50
+ f.write(YAML.dump(config))
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,31 @@
1
+ require 'dry/schema'
2
+
3
+ module Depec
4
+ DEFAULT_CONFIG_FILE = '.depecrc.yml'
5
+ end
6
+
7
+ Depec::Configuration = Dry::Schema.Params do
8
+ required(:targets).hash do
9
+ optional(:ruby).hash do
10
+ optional(:use).filled(:bool)
11
+ optional(:version).filled(:bool)
12
+ optional(:bundler_version).filled(:bool)
13
+ optional(:gem_version).array(:str?)
14
+ end
15
+
16
+ optional(:node).hash do
17
+ optional(:use).filled(:bool)
18
+ optional(:version).filled(:bool)
19
+ optional(:npm_version).array(:str?)
20
+ end
21
+
22
+ optional(:circle_ci).hash do
23
+ optional(:use).filled(:bool)
24
+ optional(:images).filled(:bool)
25
+ end
26
+
27
+ optional(:github_actions).hash do
28
+ optional(:use).filled(:bool)
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,34 @@
1
+ module Depec
2
+ class Initializer
3
+ attr_accessor :config
4
+
5
+ #
6
+ # @param [Hash] answers
7
+ # @return
8
+ #
9
+ def processAnswers(answers)
10
+ Depec::Configuration.call({
11
+ targets: {
12
+ ruby: {
13
+ use: answers[:ruby],
14
+ version: answers[:ruby_version],
15
+ bundler_version: answers[:bundler_version],
16
+ gem_version: answers[:gem_version]
17
+ },
18
+ node: {
19
+ use: answers[:node],
20
+ version: answers[:node_version],
21
+ npm_version: answers[:npm_version]
22
+ },
23
+ circle_ci: {
24
+ use: answers[:circle_ci],
25
+ images: answers[:circle_ci_images]
26
+ },
27
+ github_actions: {
28
+ use: answers[:github_actions]
29
+ }
30
+ }
31
+ }).to_h
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,12 @@
1
+ module Depec
2
+ module Target
3
+ class Base
4
+ #
5
+ # @param [String] dir
6
+ #
7
+ def initialize(dir)
8
+ @dir = dir
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,37 @@
1
+ module Depec
2
+ module Target
3
+ class CircleCi < Base
4
+ #
5
+ # @return [String]
6
+ #
7
+ def config_file
8
+ File.join(@dir, '.circleci', 'config.yml')
9
+ end
10
+
11
+ #
12
+ # @return [Boolean]
13
+ #
14
+ def used?
15
+ File.exists?(config_file)
16
+ end
17
+
18
+ #
19
+ # @return [Array]
20
+ #
21
+ def images
22
+ images = []
23
+ return images unless File.exists?(config_file)
24
+
25
+ File.open(config_file) do |f|
26
+ f.each_line do |line|
27
+ if line.include?(' image:')
28
+ images << line.match(/image: (?<image>.*)/)[:image]
29
+ end
30
+ end
31
+ end
32
+
33
+ images
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,19 @@
1
+ module Depec
2
+ module Target
3
+ class GithubActions < Base
4
+ #
5
+ # @return [String]
6
+ #
7
+ def workflows_dir
8
+ File.join(@dir, '.github', 'workflows')
9
+ end
10
+
11
+ #
12
+ # @return [Boolean]
13
+ #
14
+ def used?
15
+ File.exist?(workflows_dir)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,72 @@
1
+ module Depec
2
+ module Target
3
+ class Node < Base
4
+ #
5
+ # @return [String]
6
+ #
7
+ def node_version_file
8
+ File.join(@dir, '.node-version')
9
+ end
10
+
11
+ #
12
+ # @return [String]
13
+ #
14
+ def package_json
15
+ File.join(@dir, 'package.json')
16
+ end
17
+
18
+ #
19
+ # @return [String]
20
+ #
21
+ def yarn_lock
22
+ File.join(@dir, 'yarn.lock')
23
+ end
24
+
25
+ #
26
+ # @return [Boolean]
27
+ #
28
+ def used?
29
+ File.exists?(package_json)
30
+ end
31
+
32
+ #
33
+ # @return [String]
34
+ #
35
+ def version
36
+ if File.exists?(node_version_file)
37
+ File.open(node_version_file) { |f| return f.gets.strip }
38
+ elsif File.exists?(package_json)
39
+ engine_section = false
40
+ File.open(package_json) do |f|
41
+ f.each_line do |line|
42
+ engine_section = true if line.include?('"engines"')
43
+ if engine_section && line.include?('"node"')
44
+ return line.match(/"node": "(?<version>.*)"/)[:version]
45
+ end
46
+ end
47
+ end
48
+
49
+ return nil
50
+ end
51
+ end
52
+
53
+ #
54
+ # @param [String] npm
55
+ # @return [String]
56
+ #
57
+ def npm_version(npm)
58
+ return unless File.exists?(yarn_lock)
59
+
60
+ version_line = false
61
+ File.open(yarn_lock) do |f|
62
+ f.each_line do |line|
63
+ return line.match(/version \"(?<version>.*)\"/)[:version] if version_line
64
+ version_line = true if line.match?(/^#{npm}@/)
65
+ end
66
+ end
67
+
68
+ return nil
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,76 @@
1
+ module Depec
2
+ module Target
3
+ class Ruby < Base
4
+ #
5
+ # @return [String]
6
+ #
7
+ def ruby_version_file
8
+ File.join(@dir, '.ruby-version')
9
+ end
10
+
11
+ #
12
+ # @return [String]
13
+ #
14
+ def gemfile
15
+ File.join(@dir, 'Gemfile')
16
+ end
17
+
18
+ #
19
+ # @return [String]
20
+ #
21
+ def gemfile_lock
22
+ File.join(@dir, 'Gemfile.lock')
23
+ end
24
+
25
+ #
26
+ # @return [Boolean]
27
+ #
28
+ def used?
29
+ File.exists?(gemfile)
30
+ end
31
+
32
+ #
33
+ # @return [String]
34
+ #
35
+ def version
36
+ return unless File.exists?(ruby_version_file)
37
+ File.open(ruby_version_file) { |f| return f.gets.strip }
38
+ end
39
+
40
+ #
41
+ # @return [String]
42
+ #
43
+ def bundler_version
44
+ return unless File.exists?(gemfile_lock)
45
+
46
+ version_line = false
47
+ File.open(gemfile_lock) do |f|
48
+ f.each_line do |line|
49
+ return line.strip if version_line
50
+ version_line = true if line.include?('BUNDLED WITH')
51
+ end
52
+ end
53
+
54
+ return nil
55
+ end
56
+
57
+ #
58
+ # @param [String] gem
59
+ # @return [String]
60
+ #
61
+ def gem_version(gem)
62
+ return unless File.exists?(gemfile_lock)
63
+
64
+ File.open(gemfile_lock) do |f|
65
+ f.each_line do |line|
66
+ if line.match?(/ #{gem} \([0-9\.]+\)/)
67
+ return line.match(/#{gem} \((?<version>.*)\)/)[:version]
68
+ end
69
+ end
70
+ end
71
+
72
+ return nil
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,3 @@
1
+ module Depec
2
+ VERSION = "1.0.0"
3
+ end
data/lib/depec.rb ADDED
@@ -0,0 +1,2 @@
1
+ require "depec/version"
2
+ require "depec/cli"
metadata ADDED
@@ -0,0 +1,115 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: depec
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - moekidev
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2021-12-31 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: tty-prompt
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.23'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.23'
41
+ - !ruby/object:Gem::Dependency
42
+ name: dry-schema
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.8'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.8'
55
+ description: |
56
+ Depec analyzes project's dependency spec.
57
+ It provides CLI to parse files in a project directory and
58
+ report dependency spec as JSON.
59
+ email:
60
+ - me@moeki.dev
61
+ executables:
62
+ - depec
63
+ extensions: []
64
+ extra_rdoc_files: []
65
+ files:
66
+ - ".github/workflows/release.yml"
67
+ - ".gitignore"
68
+ - ".rspec"
69
+ - ".ruby-version"
70
+ - Gemfile
71
+ - Gemfile.lock
72
+ - README.md
73
+ - Rakefile
74
+ - bin/console
75
+ - bin/setup
76
+ - depec.gemspec
77
+ - exe/depec
78
+ - lib/depec.rb
79
+ - lib/depec/analyzer.rb
80
+ - lib/depec/cli.rb
81
+ - lib/depec/configuration.rb
82
+ - lib/depec/initializer.rb
83
+ - lib/depec/target/base.rb
84
+ - lib/depec/target/circle_ci.rb
85
+ - lib/depec/target/github_actions.rb
86
+ - lib/depec/target/node.rb
87
+ - lib/depec/target/ruby.rb
88
+ - lib/depec/version.rb
89
+ homepage: https://github.com/modekdev/depec
90
+ licenses:
91
+ - MIT
92
+ metadata:
93
+ homepage_uri: https://github.com/modekdev/depec
94
+ source_code_uri: https://github.com/modekdev/depec
95
+ changelog_uri: https://github.com/modekdev/depec
96
+ post_install_message:
97
+ rdoc_options: []
98
+ require_paths:
99
+ - lib
100
+ required_ruby_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ requirements: []
111
+ rubygems_version: 3.2.32
112
+ signing_key:
113
+ specification_version: 4
114
+ summary: Depec analyzes project's depencency spec.
115
+ test_files: []