natives 0.5.2 → 0.5.3
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 +8 -8
- data/Gemfile +1 -0
- data/VERSION +1 -1
- data/lib/natives/gemfile_viewer.rb +5 -27
- data/natives.gemspec +9 -3
- data/spec/fixtures/Gemfile.no_lockfile +5 -0
- data/spec/fixtures/Gemfile.with_lockfile +4 -0
- data/spec/fixtures/Gemfile.with_lockfile.lock +11 -0
- data/spec/natives/gemfile_viewer_spec.rb +9 -2
- metadata +19 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NGJiYWNiZGIzY2JkMjQzNzQyNmY0NDdmYjQ5M2Y0YWNhMjVlNTJjNg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MmExZGFlMGEzNjcxNTlkNDAxNjc1Y2ZkMzk0ZTk0NzFiY2FmOTZjNw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NDJiMTNiZjg0MWRmNWJmMjc0YTkyMWE2ZDdmOTM1YmExYzU0ZGJhMTAzOWM3
|
10
|
+
NjQyYTE1OWRkN2NjZGMxNTU0NWY4MzA1NDQ4MGQ1OTNlYzliNTFmMzAwNjk4
|
11
|
+
MTBjNjcyZjVhZmVjNzI3ZTdkOTE1Yzk3MWM4NWJlNDczNzg5Mzg=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
Nzg0ZjBmYjZmYjJiMzAwODUzNTZmODk1ZWIyN2M4MWI3NmVhODMyM2Y5YjZh
|
14
|
+
NjJhNTBkYjBhNzExMDlkOGMwMzEyNTljZGIzNDIyMTQ0MTQ3ZWI4ZjU0MzVm
|
15
|
+
MWQyZjc5MzY3OWVkMTExMTA2ZTY2Mjc5YjJiYjc1NjU1YzAwMmY=
|
data/Gemfile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.3
|
@@ -1,38 +1,16 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
|
1
3
|
module Natives
|
2
4
|
class GemfileViewer
|
3
5
|
def initialize(gemfile_path)
|
4
6
|
@gemfile_path = gemfile_path
|
7
|
+
@lockfile_path = "#{gemfile_path}.lock"
|
5
8
|
end
|
6
9
|
|
7
10
|
def gem_names
|
8
|
-
|
11
|
+
lockfile = Bundler::LockfileParser.new(Bundler.read_file(@lockfile_path))
|
12
|
+
lockfile.specs.map(&:name)
|
9
13
|
end
|
10
14
|
|
11
|
-
protected
|
12
|
-
|
13
|
-
def bundle_list(gemfile_path)
|
14
|
-
# after trial-and-error, these steps work best:
|
15
|
-
# 1. cd to dir containing the gemfile
|
16
|
-
# 2. bundle list
|
17
|
-
dir = File.expand_path(File.dirname(@gemfile_path))
|
18
|
-
filename = File.basename(@gemfile_path)
|
19
|
-
output = %x{cd '#{dir}' && BUNDLE_GEMFILE=#{filename} bundle list 2>&1}
|
20
|
-
successful_run = ($?.exitstatus == 0)
|
21
|
-
|
22
|
-
unless successful_run
|
23
|
-
raise "Cannot list gems in gemfile #{@gemfile_path.inspect}: #{output}"
|
24
|
-
end
|
25
|
-
|
26
|
-
output
|
27
|
-
end
|
28
|
-
|
29
|
-
def extract_gem_names(output)
|
30
|
-
lines = output.split("\n")
|
31
|
-
lines.shift # remove first line
|
32
|
-
lines.map do |line|
|
33
|
-
_, name, _ = line.split(" ")
|
34
|
-
name
|
35
|
-
end
|
36
|
-
end
|
37
15
|
end
|
38
16
|
end
|
data/natives.gemspec
CHANGED
@@ -2,15 +2,15 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: natives 0.5.
|
5
|
+
# stub: natives 0.5.3 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "natives"
|
9
|
-
s.version = "0.5.
|
9
|
+
s.version = "0.5.3"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.authors = ["Huiming Teo"]
|
13
|
-
s.date = "2013-11-
|
13
|
+
s.date = "2013-11-11"
|
14
14
|
s.description = "Lookup native package dependencies required by gems on your machine."
|
15
15
|
s.email = "teohuiming@gmail.com"
|
16
16
|
s.executables = ["natives"]
|
@@ -53,6 +53,9 @@ Gem::Specification.new do |s|
|
|
53
53
|
"natives.gemspec",
|
54
54
|
"spec/fixtures/Gemfile.empty",
|
55
55
|
"spec/fixtures/Gemfile.empty.lock",
|
56
|
+
"spec/fixtures/Gemfile.no_lockfile",
|
57
|
+
"spec/fixtures/Gemfile.with_lockfile",
|
58
|
+
"spec/fixtures/Gemfile.with_lockfile.lock",
|
56
59
|
"spec/fixtures/dir_with_matching_files/invalid1.yml",
|
57
60
|
"spec/fixtures/dir_with_matching_files/not_matching.json",
|
58
61
|
"spec/fixtures/dir_with_matching_files/valid1.yaml",
|
@@ -83,6 +86,7 @@ Gem::Specification.new do |s|
|
|
83
86
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
84
87
|
s.add_runtime_dependency(%q<ohai>, [">= 0"])
|
85
88
|
s.add_runtime_dependency(%q<thor>, [">= 0"])
|
89
|
+
s.add_runtime_dependency(%q<bundler>, [">= 0"])
|
86
90
|
s.add_development_dependency(%q<rspec>, [">= 0"])
|
87
91
|
s.add_development_dependency(%q<yard>, [">= 0"])
|
88
92
|
s.add_development_dependency(%q<rdoc>, [">= 0"])
|
@@ -93,6 +97,7 @@ Gem::Specification.new do |s|
|
|
93
97
|
else
|
94
98
|
s.add_dependency(%q<ohai>, [">= 0"])
|
95
99
|
s.add_dependency(%q<thor>, [">= 0"])
|
100
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
96
101
|
s.add_dependency(%q<rspec>, [">= 0"])
|
97
102
|
s.add_dependency(%q<yard>, [">= 0"])
|
98
103
|
s.add_dependency(%q<rdoc>, [">= 0"])
|
@@ -104,6 +109,7 @@ Gem::Specification.new do |s|
|
|
104
109
|
else
|
105
110
|
s.add_dependency(%q<ohai>, [">= 0"])
|
106
111
|
s.add_dependency(%q<thor>, [">= 0"])
|
112
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
107
113
|
s.add_dependency(%q<rspec>, [">= 0"])
|
108
114
|
s.add_dependency(%q<yard>, [">= 0"])
|
109
115
|
s.add_dependency(%q<rdoc>, [">= 0"])
|
@@ -4,9 +4,16 @@ require 'natives/gemfile_viewer'
|
|
4
4
|
describe Natives::GemfileViewer do
|
5
5
|
describe "#packages" do
|
6
6
|
it "list all gems specified in gemfile" do
|
7
|
-
gemfile_path = File.join(fixture_path, "Gemfile.
|
7
|
+
gemfile_path = File.join(fixture_path, "Gemfile.with_lockfile")
|
8
8
|
gemfile = Natives::GemfileViewer.new(gemfile_path)
|
9
|
-
expect(gemfile.gem_names).to eq(['
|
9
|
+
expect(gemfile.gem_names).to eq(['curb'])
|
10
|
+
# not sure why 'bundler' gem is always excluded from the list
|
11
|
+
end
|
12
|
+
|
13
|
+
it "raises error when gemfile does not have lockfile" do
|
14
|
+
gemfile_path = File.join(fixture_path, "Gemfile.no_lockfile")
|
15
|
+
gemfile = Natives::GemfileViewer.new(gemfile_path)
|
16
|
+
expect { gemfile.gem_names }.to raise_error
|
10
17
|
end
|
11
18
|
|
12
19
|
it "raises error when failed to list gems in gemfile" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: natives
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Huiming Teo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ohai
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ! '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rspec
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -179,6 +193,9 @@ files:
|
|
179
193
|
- natives.gemspec
|
180
194
|
- spec/fixtures/Gemfile.empty
|
181
195
|
- spec/fixtures/Gemfile.empty.lock
|
196
|
+
- spec/fixtures/Gemfile.no_lockfile
|
197
|
+
- spec/fixtures/Gemfile.with_lockfile
|
198
|
+
- spec/fixtures/Gemfile.with_lockfile.lock
|
182
199
|
- spec/fixtures/dir_with_matching_files/invalid1.yml
|
183
200
|
- spec/fixtures/dir_with_matching_files/not_matching.json
|
184
201
|
- spec/fixtures/dir_with_matching_files/valid1.yaml
|