gemfile_interpreter 0.0.1 → 0.0.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 +4 -4
- data/bin/gemfile_interpreter +3 -3
- data/lib/gemfile_interpreter/own_bundler.rb +34 -10
- data/lib/gemfile_interpreter/parser.rb +1 -3
- data/lib/gemfile_interpreter/version.rb +2 -2
- data/lib/gemfile_interpreter.rb +19 -30
- metadata +15 -2
- data/Gemfile +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a1ec92c7aed9ce960fce0752bd945a950a42643
|
4
|
+
data.tar.gz: c25e44c72280d905376313aa437246ff6223dfb0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1d666827fcf47541dd4996504c323b7faae91b88e8aca05fcae50ebed8c6197c0abdf685ec97b03f0faf42d6530693863eedb77af580b00a754a939778ba2458
|
7
|
+
data.tar.gz: eb2c00b405afaa7b144558a2bf134058c4bd5660d0099da6f6414b9e687ab60d28de560c18988e5384fac8bfdb4a2f31d6a800bc2f06b9ec4b10e24d84b0a625
|
data/bin/gemfile_interpreter
CHANGED
@@ -12,11 +12,11 @@ if [nil, '--help', '-h'].include? gemfile
|
|
12
12
|
print_help
|
13
13
|
else
|
14
14
|
type = ARGV[1]
|
15
|
-
GemfileInterpreter.
|
15
|
+
interpreter = GemfileInterpreter.new gemfile
|
16
16
|
if type == '--yaml'
|
17
|
-
puts
|
17
|
+
puts interpreter.to_yaml
|
18
18
|
elsif type.nil? || type == '--json'
|
19
|
-
puts
|
19
|
+
puts interpreter.to_json
|
20
20
|
else
|
21
21
|
print_help
|
22
22
|
end
|
@@ -1,18 +1,42 @@
|
|
1
1
|
require 'bundler'
|
2
2
|
|
3
|
-
|
3
|
+
class GemfileInterpreter
|
4
|
+
OwnBundler = Bundler.dup
|
4
5
|
|
5
|
-
|
6
|
-
class
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
class GemfileMissingError < IOError; end
|
7
|
+
class GemfileLockMissingError < IOError; end
|
8
|
+
|
9
|
+
module OwnBundler
|
10
|
+
class << self
|
11
|
+
def load_gemfile gemfile
|
12
|
+
raise ArgumentError, 'The parameter gemfile may not be empty' if gemfile.nil? || gemfile.empty?
|
13
|
+
reset!
|
14
|
+
@default_gemfile = Pathname.new gemfile
|
15
|
+
ensure_file_exists! default_gemfile, GemfileMissingError
|
16
|
+
ensure_file_exists! default_lockfile, GemfileLockMissingError
|
17
|
+
load
|
18
|
+
end
|
19
|
+
|
20
|
+
def default_gemfile
|
21
|
+
@default_gemfile || raise("First call #setup")
|
22
|
+
end
|
23
|
+
|
24
|
+
def default_lockfile
|
25
|
+
case default_gemfile.basename.to_s
|
26
|
+
when "gems.rb" then Pathname.new(default_gemfile.sub(/.rb$/, ".locked"))
|
27
|
+
else Pathname.new("#{default_gemfile}.lock")
|
28
|
+
end.untaint
|
29
|
+
end
|
30
|
+
|
31
|
+
def default_bundle_dir
|
32
|
+
raise NotImplementedError, 'The default_bundle_dir is not implemented and should not be evaluated'
|
33
|
+
end
|
10
34
|
|
11
|
-
|
35
|
+
private
|
12
36
|
|
13
|
-
|
14
|
-
|
37
|
+
def ensure_file_exists! filename, error_class = IOError
|
38
|
+
raise error_class, "File #{filename.inspect} not found" unless File.exists? filename
|
39
|
+
end
|
15
40
|
end
|
16
41
|
end
|
17
|
-
reset!
|
18
42
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'bundler'
|
2
2
|
|
3
|
-
|
3
|
+
class GemfileInterpreter
|
4
4
|
module Parser
|
5
5
|
class << self
|
6
6
|
def parse gems
|
@@ -22,10 +22,8 @@ module GemfileInterpreter
|
|
22
22
|
|
23
23
|
def parse_source source
|
24
24
|
source_type = if source.is_a? Bundler::Source::Rubygems
|
25
|
-
# normal rubygems.org
|
26
25
|
'rubygems'
|
27
26
|
elsif source.is_a? Bundler::Source::Git
|
28
|
-
# git
|
29
27
|
'git'
|
30
28
|
elsif source.is_a? Bundler::Source::Path
|
31
29
|
raise NotImplementedError, "A gem from a local path is currently not supported"
|
@@ -1,3 +1,3 @@
|
|
1
|
-
|
2
|
-
VERSION = '0.0.
|
1
|
+
class GemfileInterpreter
|
2
|
+
VERSION = '0.0.3'
|
3
3
|
end
|
data/lib/gemfile_interpreter.rb
CHANGED
@@ -4,40 +4,29 @@ require 'gemfile_interpreter/own_bundler'
|
|
4
4
|
require 'json'
|
5
5
|
require 'yaml'
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
@parsed = nil
|
15
|
-
OwnBundler.setup @gemfile
|
16
|
-
@bundler_runtime = OwnBundler.load
|
17
|
-
true
|
18
|
-
end
|
19
|
-
|
20
|
-
def bundler_runtime
|
21
|
-
raise "first use #load before #bundler_runtime" unless @bundler_runtime
|
22
|
-
@bundler_runtime
|
23
|
-
end
|
7
|
+
class GemfileInterpreter
|
8
|
+
def initialize gemfile
|
9
|
+
@gemfile = gemfile
|
10
|
+
@parsed = nil
|
11
|
+
@bundler_runtime = OwnBundler.load_gemfile @gemfile
|
12
|
+
true
|
13
|
+
end
|
24
14
|
|
25
|
-
|
26
|
-
@parsed = Parser.parse bundler_runtime.gems
|
27
|
-
end
|
15
|
+
attr_reader :bundler_runtime
|
28
16
|
|
29
|
-
|
30
|
-
|
31
|
-
|
17
|
+
def gems
|
18
|
+
bundler_runtime.gems
|
19
|
+
end
|
32
20
|
|
33
|
-
|
34
|
-
|
35
|
-
|
21
|
+
def parsed
|
22
|
+
@parsed = Parser.parse gems
|
23
|
+
end
|
36
24
|
|
37
|
-
|
25
|
+
def to_json
|
26
|
+
parsed.to_json
|
27
|
+
end
|
38
28
|
|
39
|
-
|
40
|
-
|
41
|
-
end
|
29
|
+
def to_yaml
|
30
|
+
parsed.to_yaml
|
42
31
|
end
|
43
32
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemfile_interpreter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicolas Ganz
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '3.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '3.0'
|
27
41
|
description: A tool to interpret the Gemfile without installing it
|
28
42
|
email: nicolas@kelte.ch
|
29
43
|
executables:
|
@@ -31,7 +45,6 @@ executables:
|
|
31
45
|
extensions: []
|
32
46
|
extra_rdoc_files: []
|
33
47
|
files:
|
34
|
-
- Gemfile
|
35
48
|
- bin/gemfile_interpreter
|
36
49
|
- lib/gemfile_interpreter.rb
|
37
50
|
- lib/gemfile_interpreter/own_bundler.rb
|
data/Gemfile
DELETED