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 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