envandle 0.1.0
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 +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/Gemfile +4 -0
- data/README.md +151 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/envandle.gemspec +33 -0
- data/lib/envandle/as_git_reference.rb +10 -0
- data/lib/envandle/as_reference.rb +13 -0
- data/lib/envandle/binding.rb +12 -0
- data/lib/envandle/bundle_dsl.rb +31 -0
- data/lib/envandle/gem.rb +20 -0
- data/lib/envandle/gemfile.rb +48 -0
- data/lib/envandle/gemspec.rb +28 -0
- data/lib/envandle/git.rb +16 -0
- data/lib/envandle/git_branch_reference.rb +22 -0
- data/lib/envandle/group_dsl.rb +14 -0
- data/lib/envandle/lib.rb +14 -0
- data/lib/envandle/path_reference.rb +19 -0
- data/lib/envandle/reference_cache.rb +69 -0
- data/lib/envandle/shell.rb +6 -0
- data/lib/envandle/version.rb +3 -0
- data/lib/envandle.rb +1 -0
- metadata +111 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6ca4f6faadb9b5212f25212d23ab42ab36d9e1c5
|
4
|
+
data.tar.gz: 00da2b9a9de635373d09654e47f52c391b28b6ba
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 98977a5f9a1f7b29e0b1222693cf6f04cb8ea409ab1c31aa3ac67bf7fed328cda2b6818f31c6690ce62395f937c76754ecce5388d0514b1804c851639b4c50ab
|
7
|
+
data.tar.gz: 2f70f6b8b345f854c8fffe4791ba47e56b432d7602136c1f91c4cb523dc9d702db1ffd03be287b8fa67d1f451b5f03f50801389ff7915a7aa9870df2f547bdcf
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,151 @@
|
|
1
|
+
# Envandle
|
2
|
+
|
3
|
+
A rubygem for enabling Gemfiles to specify gem locations from environment variables.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
```sh
|
8
|
+
$ gem install envandle
|
9
|
+
```
|
10
|
+
|
11
|
+
## Usage
|
12
|
+
|
13
|
+
Write a Gemfile.
|
14
|
+
|
15
|
+
```ruby
|
16
|
+
require "envandle"
|
17
|
+
|
18
|
+
source "https://rubygems.org"
|
19
|
+
|
20
|
+
binding.envandle do |bundle|
|
21
|
+
bundle.gem "mygem", "~> 1.0"
|
22
|
+
end
|
23
|
+
```
|
24
|
+
|
25
|
+
Set the environment variables.
|
26
|
+
|
27
|
+
```sh
|
28
|
+
export ENVANDLE_GEM_PATH=mygem:/path/to/mygem
|
29
|
+
```
|
30
|
+
|
31
|
+
And execute Bundler.
|
32
|
+
|
33
|
+
```sh
|
34
|
+
$ bundle
|
35
|
+
```
|
36
|
+
|
37
|
+
## Examples
|
38
|
+
|
39
|
+
### Setting Paths
|
40
|
+
|
41
|
+
You can specify the gem method's `path` option by setting the ENVANDLE_GEM_PATH variable.
|
42
|
+
|
43
|
+
For example,
|
44
|
+
|
45
|
+
```ruby
|
46
|
+
ENV["ENVANDLE_GEM_PATH"] = "mygem:/path/to/mygem"
|
47
|
+
|
48
|
+
binding.envandle do |bundle|
|
49
|
+
bundle.gem "mygem", "~> 1.0"
|
50
|
+
end
|
51
|
+
```
|
52
|
+
|
53
|
+
is evaluated as:
|
54
|
+
|
55
|
+
```ruby
|
56
|
+
gem "mygem", path: "/path/to/mygem"
|
57
|
+
```
|
58
|
+
|
59
|
+
If the variable is not set,
|
60
|
+
|
61
|
+
```ruby
|
62
|
+
ENV["ENVANDLE_GEM_PATH"] = ""
|
63
|
+
|
64
|
+
binding.envandle do |bundle|
|
65
|
+
bundle.gem "mygem", "~> 1.0"
|
66
|
+
end
|
67
|
+
```
|
68
|
+
|
69
|
+
is evaluated as:
|
70
|
+
|
71
|
+
```ruby
|
72
|
+
gem "mygem", "~> 1.0"
|
73
|
+
```
|
74
|
+
|
75
|
+
### Setting Git Branches
|
76
|
+
|
77
|
+
You can specify the gem method's `git` and `branch` options by setting the ENVANDLE_GEM_GIT_BRANCH variable.
|
78
|
+
|
79
|
+
For example,
|
80
|
+
|
81
|
+
```ruby
|
82
|
+
ENV["ENVANDLE_GEM_GIT_BRANCH"] = "mygem:https://github.com/mosop/mygem.git#edge"
|
83
|
+
|
84
|
+
binding.envandle do |bundle|
|
85
|
+
bundle.gem "mygem", "~> 1.0"
|
86
|
+
end
|
87
|
+
```
|
88
|
+
|
89
|
+
is evaluated as:
|
90
|
+
|
91
|
+
```ruby
|
92
|
+
gem "mygem", git: "https://github.com/mosop/mygem.git", branch: "edge"
|
93
|
+
```
|
94
|
+
|
95
|
+
If the variable is not set,
|
96
|
+
|
97
|
+
```ruby
|
98
|
+
ENV["ENVANDLE_GEM_GIT_BRANCH"] = ""
|
99
|
+
|
100
|
+
binding.envandle do |bundle|
|
101
|
+
bundle.gem "mygem", "~> 1.0"
|
102
|
+
end
|
103
|
+
```
|
104
|
+
|
105
|
+
is evaluated as:
|
106
|
+
|
107
|
+
```ruby
|
108
|
+
gem "mygem", "~> 1.0"
|
109
|
+
```
|
110
|
+
|
111
|
+
### Specifying Gemspecs
|
112
|
+
|
113
|
+
As well as the regular Gemfile, you can also specify a gemspec not a single gem.
|
114
|
+
|
115
|
+
For example, if your gem's name is "mygem", the gemspec refers the a, b and c gems and the c's version requirement is "~> 1.0",
|
116
|
+
|
117
|
+
```ruby
|
118
|
+
ENV["ENVANDLE_GEM_PATH"] = "a:/path/to/a;b:/path/to/b"
|
119
|
+
|
120
|
+
binding.envandle do |bundle|
|
121
|
+
bundle.gemspec
|
122
|
+
end
|
123
|
+
```
|
124
|
+
|
125
|
+
is evaluated as:
|
126
|
+
|
127
|
+
```ruby
|
128
|
+
gem "mygem", path: "."
|
129
|
+
gem "a", path: "/path/to/a"
|
130
|
+
gem "b", path: "/path/to/b"
|
131
|
+
gem "c", "~> 1.0"
|
132
|
+
```
|
133
|
+
|
134
|
+
### Resolving Multilevel Dependencies
|
135
|
+
|
136
|
+
For example, if a Gemfile refers the gem a that depends on the gem b, Envandle also tries to resolve the b's reference by the environment variables.
|
137
|
+
|
138
|
+
```ruby
|
139
|
+
ENV["ENVANDLE_GEM_PATH"] = "a:/path/to/a;b:/path/to/b"
|
140
|
+
|
141
|
+
binding.envandle do |bundle|
|
142
|
+
bundle.gem "a", "~> 1.0"
|
143
|
+
end
|
144
|
+
```
|
145
|
+
|
146
|
+
is evaluated as:
|
147
|
+
|
148
|
+
```ruby
|
149
|
+
gem "a", path: "/path/to/a"
|
150
|
+
gem "b", path: "/path/to/b"
|
151
|
+
```
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "envandle"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start
|
data/bin/setup
ADDED
data/envandle.gemspec
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'envandle/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "envandle"
|
8
|
+
spec.version = Envandle::VERSION
|
9
|
+
spec.authors = ["mosop"]
|
10
|
+
|
11
|
+
spec.summary = %q{A library for enabling Gemfiles to specify gem locations from environment variables.}
|
12
|
+
spec.homepage = "https://github.com/mosop/envandle"
|
13
|
+
|
14
|
+
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
15
|
+
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
16
|
+
if spec.respond_to?(:metadata)
|
17
|
+
spec.metadata['allowed_push_host'] = "https://rubygems.org"
|
18
|
+
else
|
19
|
+
raise "RubyGems 2.0 or newer is required to protect against " \
|
20
|
+
"public gem pushes."
|
21
|
+
end
|
22
|
+
|
23
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
24
|
+
f.match(%r{^(test|spec|features)/})
|
25
|
+
end
|
26
|
+
spec.bindir = "exe"
|
27
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
28
|
+
spec.require_paths = ["lib"]
|
29
|
+
|
30
|
+
spec.add_development_dependency "bundler", "~> 1.13"
|
31
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
32
|
+
spec.add_development_dependency "rspec", "~> 3.5"
|
33
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module Envandle
|
2
|
+
class BundleDsl
|
3
|
+
def initialize(gemfile)
|
4
|
+
@gemfile = gemfile
|
5
|
+
end
|
6
|
+
|
7
|
+
def gem(*args)
|
8
|
+
@gemfile.gem nil, *args
|
9
|
+
end
|
10
|
+
|
11
|
+
def group(name)
|
12
|
+
yield GroupDsl.new(@gemfile, name)
|
13
|
+
end
|
14
|
+
|
15
|
+
def gemspec(development_group: "development", path: nil, name: nil)
|
16
|
+
development_group = development_group.to_s.strip
|
17
|
+
raise "No gemspec's development group." if development_group.empty?
|
18
|
+
name = name.to_s.strip if name
|
19
|
+
raise "No gemspec's name." if name && name.empty
|
20
|
+
path ||= Gemspec.find_file(@gemfile.dir, name: name)
|
21
|
+
path = path.to_s.strip
|
22
|
+
raise "No gemspec's path." if path.empty?
|
23
|
+
spec = Gemspec.new(path)
|
24
|
+
@gemfile.gem nil, spec.name, path: "."
|
25
|
+
spec.dependencies.each do |i|
|
26
|
+
group = i.type == :development ? development_group : nil
|
27
|
+
@gemfile.gem group, i.name, *i.requirements_list
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/envandle/gem.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
module Envandle
|
2
|
+
class Gem
|
3
|
+
def initialize(group, name, args, options)
|
4
|
+
@group = group
|
5
|
+
@name = name
|
6
|
+
@args = args
|
7
|
+
@options = options
|
8
|
+
end
|
9
|
+
|
10
|
+
def args
|
11
|
+
h = @group ? {group: @group} : {}
|
12
|
+
h.merge! @options
|
13
|
+
if h.empty?
|
14
|
+
[@name, *@args]
|
15
|
+
else
|
16
|
+
[@name, *@args, h]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Envandle
|
2
|
+
class Gemfile
|
3
|
+
def initialize(path, binding)
|
4
|
+
@path = path
|
5
|
+
@binding = binding
|
6
|
+
end
|
7
|
+
|
8
|
+
def dir
|
9
|
+
@dir ||= File.dirname(@path)
|
10
|
+
end
|
11
|
+
|
12
|
+
def gems
|
13
|
+
@gems ||= {}
|
14
|
+
end
|
15
|
+
|
16
|
+
def references
|
17
|
+
@references ||= ReferenceCache.new
|
18
|
+
end
|
19
|
+
|
20
|
+
def append(group, name, args, options)
|
21
|
+
key = ReferenceCache.key(group, name)
|
22
|
+
gems[key] || begin
|
23
|
+
if ref = references.find(key, name)
|
24
|
+
gem = ref.to_gem(args, options)
|
25
|
+
gems[key] = gem
|
26
|
+
ref.spec.runtime_dependencies.each do |i|
|
27
|
+
append nil, i.name, [], {}
|
28
|
+
end
|
29
|
+
@binding.gem *gem.args
|
30
|
+
else
|
31
|
+
gems[key] = gem = Gem.new(group, name, args, options)
|
32
|
+
@binding.gem *gem.args
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def gem(group, *args)
|
38
|
+
h = args.last.is_a?(Hash) ? args.pop : {}
|
39
|
+
options = {}
|
40
|
+
h.each do |k, v|
|
41
|
+
options[k.to_s.to_sym] = v
|
42
|
+
end
|
43
|
+
name = args.shift.to_s.strip
|
44
|
+
raise "No gem name." if name.empty?
|
45
|
+
append group, name, args, options
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Envandle
|
2
|
+
class Gemspec
|
3
|
+
def initialize(path)
|
4
|
+
@path = path
|
5
|
+
@native = ::Gem::Specification.load(path)
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.find_file(dir, name:)
|
9
|
+
name ||= "*"
|
10
|
+
Dir.glob(File.join(dir, "#{name}.gemspec")) do |f|
|
11
|
+
return f
|
12
|
+
end
|
13
|
+
nil
|
14
|
+
end
|
15
|
+
|
16
|
+
def name
|
17
|
+
@native.name
|
18
|
+
end
|
19
|
+
|
20
|
+
def dependencies
|
21
|
+
@native.dependencies
|
22
|
+
end
|
23
|
+
|
24
|
+
def runtime_dependencies
|
25
|
+
@native.runtime_dependencies
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/envandle/git.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
module Envandle
|
2
|
+
GIT = `which git`.chomp
|
3
|
+
|
4
|
+
def self.git_pull(url, ref, branch)
|
5
|
+
raise "No git installed." if GIT.empty?
|
6
|
+
Dir.mktmpdir do |tmp|
|
7
|
+
Dir.chdir(tmp) do
|
8
|
+
sh "#{GIT} init"
|
9
|
+
sh "#{GIT} remote add origin #{url}"
|
10
|
+
sh "#{GIT} checkout -b #{branch}"
|
11
|
+
sh "#{GIT} pull origin #{ref}:#{branch}"
|
12
|
+
yield tmp
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Envandle
|
2
|
+
class GitBranchReference
|
3
|
+
extend AsGitReference
|
4
|
+
|
5
|
+
def initialize(group, name, url, ref)
|
6
|
+
@group = group
|
7
|
+
@name = name
|
8
|
+
@url = url
|
9
|
+
@ref = ref
|
10
|
+
end
|
11
|
+
|
12
|
+
def to_gem(args, options)
|
13
|
+
Gem.new(@group, @name, [], {git: @url, branch: @ref})
|
14
|
+
end
|
15
|
+
|
16
|
+
def spec
|
17
|
+
Envandle.git_pull(@url, @ref, @ref) do |dir|
|
18
|
+
Gemspec.new(File.join(dir, "#{@name}.gemspec"))
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/envandle/lib.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require "tmpdir"
|
2
|
+
require "envandle/version"
|
3
|
+
require "envandle/as_reference"
|
4
|
+
require "envandle/as_git_reference"
|
5
|
+
require "envandle/bundle_dsl"
|
6
|
+
require "envandle/gem"
|
7
|
+
require "envandle/gemfile"
|
8
|
+
require "envandle/gemspec"
|
9
|
+
require "envandle/git"
|
10
|
+
require "envandle/git_branch_reference"
|
11
|
+
require "envandle/group_dsl"
|
12
|
+
require "envandle/path_reference"
|
13
|
+
require "envandle/shell"
|
14
|
+
require "envandle/reference_cache"
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Envandle
|
2
|
+
class PathReference
|
3
|
+
extend AsReference
|
4
|
+
|
5
|
+
def initialize(group, name, path)
|
6
|
+
@group = group
|
7
|
+
@name = name
|
8
|
+
@path = path
|
9
|
+
end
|
10
|
+
|
11
|
+
def to_gem(args, options)
|
12
|
+
Gem.new(@group, @name, [], {path: @path})
|
13
|
+
end
|
14
|
+
|
15
|
+
def spec
|
16
|
+
@spec ||= Gemspec.new(Gemspec.find_file(@path, name: @name))
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
module Envandle
|
2
|
+
class ReferenceCache
|
3
|
+
def self.key(group, name)
|
4
|
+
if group
|
5
|
+
"#{name}@#{group}"
|
6
|
+
else
|
7
|
+
name
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def find(key, name)
|
12
|
+
paths[key] ||
|
13
|
+
git_branches[key] ||
|
14
|
+
paths[name] ||
|
15
|
+
git_branches[name]
|
16
|
+
end
|
17
|
+
|
18
|
+
def paths
|
19
|
+
@paths ||= parse(:path, PathReference, "ENVANDLE_GEM_PATH")
|
20
|
+
end
|
21
|
+
|
22
|
+
def git_branches
|
23
|
+
@git_branches ||= parse(:git, GitBranchReference, "ENVANDLE_GEM_GIT_BRANCH")
|
24
|
+
end
|
25
|
+
|
26
|
+
def parse(key, klass, env)
|
27
|
+
{}.tap do |h|
|
28
|
+
(ENV[env].to_s).split(";").each do |i|
|
29
|
+
if v = __send__("parse_#{key}", klass, env, i)
|
30
|
+
h[v.key] = v if v
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def parse_group_and_name(env, v)
|
37
|
+
name, group = v.to_s.strip.split("@")
|
38
|
+
name = name.to_s.strip
|
39
|
+
group = group.to_s.strip if group
|
40
|
+
raise "No gem name (#{env}): #{ENV[env]}" if name.empty?
|
41
|
+
raise "No group name (#{env}): #{ENV[env]}" if group && group.empty?
|
42
|
+
[group, name]
|
43
|
+
end
|
44
|
+
|
45
|
+
def parse_path(klass, env, v)
|
46
|
+
v = v.to_s.strip
|
47
|
+
return if v.empty?
|
48
|
+
a = v.split(":")
|
49
|
+
name = a[0].to_s.strip
|
50
|
+
path = a[1..-1].join(":").to_s.strip
|
51
|
+
raise "No gem path (#{env}): #{ENV[env]}" if path.empty?
|
52
|
+
klass.new(*parse_group_and_name(env, name), path)
|
53
|
+
end
|
54
|
+
|
55
|
+
def parse_git(klass, env, v)
|
56
|
+
v = v.to_s.strip
|
57
|
+
return if v.empty?
|
58
|
+
a = v.split(":")
|
59
|
+
name = a[0].to_s.strip
|
60
|
+
path = a[1..-1].join(":").to_s.strip
|
61
|
+
url_and_ref = path.split('#')
|
62
|
+
url = url_and_ref[0].to_s.strip
|
63
|
+
ref = url_and_ref[1].to_s.strip
|
64
|
+
raise "No gem git url (#{env}): #{ENV[env]}" if url.empty?
|
65
|
+
raise "No gem git ref/branch/tag (#{env}): #{ENV[env]}" if ref.empty?
|
66
|
+
klass.new(*parse_group_and_name(env, name), url, ref)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
data/lib/envandle.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "envandle/binding"
|
metadata
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: envandle
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- mosop
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-01-14 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.13'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.13'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.5'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.5'
|
55
|
+
description:
|
56
|
+
email:
|
57
|
+
executables: []
|
58
|
+
extensions: []
|
59
|
+
extra_rdoc_files: []
|
60
|
+
files:
|
61
|
+
- ".gitignore"
|
62
|
+
- ".rspec"
|
63
|
+
- ".travis.yml"
|
64
|
+
- Gemfile
|
65
|
+
- README.md
|
66
|
+
- Rakefile
|
67
|
+
- bin/console
|
68
|
+
- bin/setup
|
69
|
+
- envandle.gemspec
|
70
|
+
- lib/envandle.rb
|
71
|
+
- lib/envandle/as_git_reference.rb
|
72
|
+
- lib/envandle/as_reference.rb
|
73
|
+
- lib/envandle/binding.rb
|
74
|
+
- lib/envandle/bundle_dsl.rb
|
75
|
+
- lib/envandle/gem.rb
|
76
|
+
- lib/envandle/gemfile.rb
|
77
|
+
- lib/envandle/gemspec.rb
|
78
|
+
- lib/envandle/git.rb
|
79
|
+
- lib/envandle/git_branch_reference.rb
|
80
|
+
- lib/envandle/group_dsl.rb
|
81
|
+
- lib/envandle/lib.rb
|
82
|
+
- lib/envandle/path_reference.rb
|
83
|
+
- lib/envandle/reference_cache.rb
|
84
|
+
- lib/envandle/shell.rb
|
85
|
+
- lib/envandle/version.rb
|
86
|
+
homepage: https://github.com/mosop/envandle
|
87
|
+
licenses: []
|
88
|
+
metadata:
|
89
|
+
allowed_push_host: https://rubygems.org
|
90
|
+
post_install_message:
|
91
|
+
rdoc_options: []
|
92
|
+
require_paths:
|
93
|
+
- lib
|
94
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
requirements: []
|
105
|
+
rubyforge_project:
|
106
|
+
rubygems_version: 2.5.1
|
107
|
+
signing_key:
|
108
|
+
specification_version: 4
|
109
|
+
summary: A library for enabling Gemfiles to specify gem locations from environment
|
110
|
+
variables.
|
111
|
+
test_files: []
|