npmdc 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.codeclimate.yml +25 -0
- data/.editorconfig +9 -0
- data/.rubocop.yml +1156 -0
- data/.travis.yml +4 -1
- data/CHANGELOG.md +5 -0
- data/README.md +12 -2
- data/Rakefile +2 -2
- data/bin/console +3 -3
- data/bin/npmdc +2 -2
- data/lib/npmdc/checker.rb +15 -15
- data/lib/npmdc/cli.rb +5 -5
- data/lib/npmdc/railtie.rb +2 -2
- data/lib/npmdc/version.rb +1 -1
- data/npmdc.gemspec +16 -17
- metadata +11 -8
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,16 @@
|
|
1
|
-
|
1
|
+
[![Build Status](https://travis-ci.org/lysyi3m/npmdc.svg?branch=master)](https://travis-ci.org/lysyi3m/npmdc)
|
2
|
+
[![Code Climate](https://codeclimate.com/github/lysyi3m/npmdc/badges/gpa.svg)](https://codeclimate.com/github/lysyi3m/npmdc)
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/npmdc.svg)](https://badge.fury.io/rb/npmdc)
|
4
|
+
|
5
|
+
npmdc
|
6
|
+
=========
|
7
|
+
|
8
|
+
**NPM Dependency Checker** is a simple tool which can check for missed dependencies based on your `package.json` file.
|
9
|
+
|
10
|
+
<a href="https://evilmartians.com/?utm_source=npmdc">
|
11
|
+
<img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg" alt="Sponsored by Evil Martians" width="236" height="54">
|
12
|
+
</a>
|
2
13
|
|
3
|
-
*NPM Dependency Checker* is a simple tool which can check for missed dependencies based on your `package.json` file.
|
4
14
|
|
5
15
|
## Installation
|
6
16
|
|
data/Rakefile
CHANGED
data/bin/console
CHANGED
data/bin/npmdc
CHANGED
data/lib/npmdc/checker.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'json'
|
2
|
+
require 'npmdc/helpers'
|
3
3
|
|
4
4
|
module Npmdc
|
5
5
|
class Checker
|
6
6
|
def initialize(options)
|
7
7
|
@options = {
|
8
|
-
:
|
9
|
-
:
|
8
|
+
path: options[:path] || Dir.pwd,
|
9
|
+
verbose: options[:verbose]
|
10
10
|
}
|
11
11
|
end
|
12
12
|
|
@@ -18,21 +18,21 @@ module Npmdc
|
|
18
18
|
@installed_modules = get_installed_modules
|
19
19
|
end
|
20
20
|
|
21
|
-
if package_json_data
|
22
|
-
dependencies = package_json_data[
|
21
|
+
if package_json_data && package_json_data.key?('dependencies')
|
22
|
+
dependencies = package_json_data['dependencies']
|
23
23
|
check_dependencies(dependencies)
|
24
24
|
end
|
25
25
|
|
26
|
-
if package_json_data
|
27
|
-
dev_dependencies = package_json_data[
|
28
|
-
check_dependencies(dev_dependencies,
|
26
|
+
if package_json_data && package_json_data.key?('devDependencies')
|
27
|
+
dev_dependencies = package_json_data['devDependencies']
|
28
|
+
check_dependencies(dev_dependencies, 'devDependencies')
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
32
|
private
|
33
33
|
|
34
34
|
def get_installed_modules
|
35
|
-
modules_directory = File.join(@options[:path],
|
35
|
+
modules_directory = File.join(@options[:path], 'node_modules')
|
36
36
|
|
37
37
|
if Dir.exists?(modules_directory)
|
38
38
|
modules = {}
|
@@ -47,7 +47,7 @@ module Npmdc
|
|
47
47
|
else
|
48
48
|
message = [
|
49
49
|
"Failed! Can't find `node_modules` folder inside '#{@options[:path]}' directory!",
|
50
|
-
|
50
|
+
'Try running `npm install` first.'
|
51
51
|
].join("\n")
|
52
52
|
|
53
53
|
puts message
|
@@ -56,7 +56,7 @@ module Npmdc
|
|
56
56
|
end
|
57
57
|
|
58
58
|
def get_package_json(directory)
|
59
|
-
file_path = File.join(directory,
|
59
|
+
file_path = File.join(directory, 'package.json')
|
60
60
|
|
61
61
|
if File.file?(file_path)
|
62
62
|
File.read(file_path)
|
@@ -69,11 +69,11 @@ module Npmdc
|
|
69
69
|
begin
|
70
70
|
JSON.parse(json)
|
71
71
|
rescue JSON::ParserError => e
|
72
|
-
raise
|
72
|
+
raise 'Failed to parse package.json file.'
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
|
-
def check_dependencies(deps = {}, type =
|
76
|
+
def check_dependencies(deps = {}, type = 'dependencies')
|
77
77
|
puts "Check #{type}..." if @options[:verbose]
|
78
78
|
|
79
79
|
missed_dependencies = []
|
@@ -82,7 +82,7 @@ module Npmdc
|
|
82
82
|
if @installed_modules.key?(dep)
|
83
83
|
package_json = get_package_json(@installed_modules[dep])
|
84
84
|
package_json_data = parse_package_json(package_json)
|
85
|
-
missed_dependencies.push(dep) unless package_json_data[
|
85
|
+
missed_dependencies.push(dep) unless package_json_data && package_json_data['name'] == dep
|
86
86
|
else
|
87
87
|
missed_dependencies.push(dep)
|
88
88
|
end
|
data/lib/npmdc/cli.rb
CHANGED
@@ -1,19 +1,19 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'thor'
|
2
|
+
require 'npmdc'
|
3
3
|
|
4
4
|
module Npmdc
|
5
5
|
class Cli < Thor
|
6
|
-
class_option
|
6
|
+
class_option 'verbose', type: :boolean, desc: 'Enable verbose output mode', aliases: '-V'
|
7
7
|
default_task :check
|
8
8
|
|
9
|
-
desc
|
9
|
+
desc 'check', 'Run check'
|
10
10
|
option :path
|
11
11
|
def check
|
12
12
|
Npmdc::Checker.new(options).call
|
13
13
|
end
|
14
14
|
|
15
15
|
map %w[--version -v] => :__print_version
|
16
|
-
desc
|
16
|
+
desc '--version, -v', 'Print gem version'
|
17
17
|
def __print_version
|
18
18
|
puts Npmdc::VERSION
|
19
19
|
end
|
data/lib/npmdc/railtie.rb
CHANGED
@@ -6,8 +6,8 @@ module Npmdc
|
|
6
6
|
|
7
7
|
initializer 'npmdc' do |app|
|
8
8
|
options = {
|
9
|
-
:
|
10
|
-
:
|
9
|
+
path: app.config.npmdc[:path] || Rails.root,
|
10
|
+
verbose: app.config.npmdc[:verbose]
|
11
11
|
}
|
12
12
|
|
13
13
|
Npmdc.call(options)
|
data/lib/npmdc/version.rb
CHANGED
data/npmdc.gemspec
CHANGED
@@ -5,23 +5,22 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
require 'npmdc/version'
|
6
6
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
|
-
spec.name =
|
8
|
+
spec.name = 'npmdc'
|
9
9
|
spec.version = Npmdc::VERSION
|
10
10
|
spec.platform = Gem::Platform::RUBY
|
11
|
-
spec.authors = [
|
12
|
-
spec.email = [
|
13
|
-
spec.summary =
|
14
|
-
spec.description =
|
15
|
-
spec.homepage =
|
16
|
-
spec.license =
|
17
|
-
spec.files = `git ls-files -z`.split("\x0").reject
|
18
|
-
|
19
|
-
|
20
|
-
spec.
|
21
|
-
spec.
|
22
|
-
spec.
|
23
|
-
spec.
|
24
|
-
spec.add_development_dependency
|
25
|
-
spec.add_development_dependency
|
26
|
-
spec.add_development_dependency "rspec", "~> 3.0"
|
11
|
+
spec.authors = ['Emil Kashkevich']
|
12
|
+
spec.email = ['emil.kashkevich@gmail.com']
|
13
|
+
spec.summary = 'Check for missed dependencies of NPM packages.'
|
14
|
+
spec.description = 'Check for missed dependencies of NPM packages based on dependency list specified in package.json file.'
|
15
|
+
spec.homepage = 'https://github.com/lysyi3m/npmdc'
|
16
|
+
spec.license = 'MIT'
|
17
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
|
+
spec.bindir = 'bin'
|
19
|
+
spec.executables = ['npmdc']
|
20
|
+
spec.require_paths = ['lib']
|
21
|
+
spec.required_ruby_version = '>= 2.2.0'
|
22
|
+
spec.add_dependency 'thor', '~> 0.19.4'
|
23
|
+
spec.add_development_dependency 'bundler', '~> 1.13'
|
24
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
25
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
27
26
|
end
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: npmdc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Emil Kashkevich
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.19.4
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 0.19.4
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -75,8 +75,11 @@ executables:
|
|
75
75
|
extensions: []
|
76
76
|
extra_rdoc_files: []
|
77
77
|
files:
|
78
|
+
- ".codeclimate.yml"
|
79
|
+
- ".editorconfig"
|
78
80
|
- ".gitignore"
|
79
81
|
- ".rspec"
|
82
|
+
- ".rubocop.yml"
|
80
83
|
- ".travis.yml"
|
81
84
|
- CHANGELOG.md
|
82
85
|
- Gemfile
|
@@ -105,7 +108,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
105
108
|
requirements:
|
106
109
|
- - ">="
|
107
110
|
- !ruby/object:Gem::Version
|
108
|
-
version:
|
111
|
+
version: 2.2.0
|
109
112
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
110
113
|
requirements:
|
111
114
|
- - ">="
|
@@ -113,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
113
116
|
version: '0'
|
114
117
|
requirements: []
|
115
118
|
rubyforge_project:
|
116
|
-
rubygems_version: 2.5.
|
119
|
+
rubygems_version: 2.5.2
|
117
120
|
signing_key:
|
118
121
|
specification_version: 4
|
119
122
|
summary: Check for missed dependencies of NPM packages.
|