gemfile_interpreter 0.0.1 → 0.0.3

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
  SHA1:
3
- metadata.gz: e89680ad78bd316ed6e82011cb0ae0b6bfc611fc
4
- data.tar.gz: 904b2ac93f8f447a870776c0d01042a67779467e
3
+ metadata.gz: 0a1ec92c7aed9ce960fce0752bd945a950a42643
4
+ data.tar.gz: c25e44c72280d905376313aa437246ff6223dfb0
5
5
  SHA512:
6
- metadata.gz: a5a0a2e66e7bc5a924ca1495bdff3525aabfaf5e939e97c690b0cbea4d11577fff3ddaad56cc08e8cb43ffae6dd9d02654c9af8acf2ded2dd3b81fb1a5329e5a
7
- data.tar.gz: 2525a81548c28b85095309913d6ca31a9288ce0603284bc0aed99e867a518ca05fc329fc0a454e9c1aa611edc722963329cdaedd03ce19741b4785c3e21bbcdd
6
+ metadata.gz: 1d666827fcf47541dd4996504c323b7faae91b88e8aca05fcae50ebed8c6197c0abdf685ec97b03f0faf42d6530693863eedb77af580b00a754a939778ba2458
7
+ data.tar.gz: eb2c00b405afaa7b144558a2bf134058c4bd5660d0099da6f6414b9e687ab60d28de560c18988e5384fac8bfdb4a2f31d6a800bc2f06b9ec4b10e24d84b0a625
@@ -12,11 +12,11 @@ if [nil, '--help', '-h'].include? gemfile
12
12
  print_help
13
13
  else
14
14
  type = ARGV[1]
15
- GemfileInterpreter.load gemfile
15
+ interpreter = GemfileInterpreter.new gemfile
16
16
  if type == '--yaml'
17
- puts GemfileInterpreter.to_yaml
17
+ puts interpreter.to_yaml
18
18
  elsif type.nil? || type == '--json'
19
- puts GemfileInterpreter.to_json
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
- OwnBundler = Bundler.dup
3
+ class GemfileInterpreter
4
+ OwnBundler = Bundler.dup
4
5
 
5
- module OwnBundler
6
- class << self
7
- def setup gemfile
8
- @default_gemfile = Pathname.new gemfile
9
- end
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
- attr_reader :default_gemfile
35
+ private
12
36
 
13
- def default_bundle_dir
14
- Pathname.new File.join(default_gemfile.directory, '.bundle')
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
- module GemfileInterpreter
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
- module GemfileInterpreter
2
- VERSION = '0.0.1'
1
+ class GemfileInterpreter
2
+ VERSION = '0.0.3'
3
3
  end
@@ -4,40 +4,29 @@ require 'gemfile_interpreter/own_bundler'
4
4
  require 'json'
5
5
  require 'yaml'
6
6
 
7
- module GemfileInterpreter
8
- class << self
9
- def load gemfile
10
- @gemfile = gemfile
11
- raise 'The parameter gemfile may not be empty' if gemfile.nil? || gemfile.empty?
12
- ensure_file_exists! @gemfile
13
- ensure_file_exists! "#{@gemfile}.lock"
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
- def parsed
26
- @parsed = Parser.parse bundler_runtime.gems
27
- end
15
+ attr_reader :bundler_runtime
28
16
 
29
- def to_json
30
- parsed.to_json
31
- end
17
+ def gems
18
+ bundler_runtime.gems
19
+ end
32
20
 
33
- def to_yaml
34
- parsed.to_yaml
35
- end
21
+ def parsed
22
+ @parsed = Parser.parse gems
23
+ end
36
24
 
37
- private
25
+ def to_json
26
+ parsed.to_json
27
+ end
38
28
 
39
- def ensure_file_exists! filename
40
- raise IOError, "File #{filename.inspect} not found" unless File.exists? filename
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.1
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
@@ -1,4 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- # Specify your gem's dependencies in foundation_rails_helper.gemspec
4
- gemspec