envandle 0.6.2 → 0.6.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/README.md +9 -1
- data/lib/envandle.rb +1 -0
- data/lib/envandle/gemspec_cache.rb +2 -0
- data/lib/envandle/git_ref_reference.rb +37 -0
- data/lib/envandle/git_util.rb +8 -0
- data/lib/envandle/reference_cache.rb +5 -1
- data/lib/envandle/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d329ce5df2ca681f51283c395f2be9526c66c3e1
|
4
|
+
data.tar.gz: eb443817b65eb96d575792cb395a319b2b865306
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c746e1b72f84fafe984f7a33e88a36f30d3d1c18da38d4d2171e3f826ca0a553d8813eb86a1d5b33f593a464455b831fccacb344ecfca520116647ab4a21fb02
|
7
|
+
data.tar.gz: cce9a7b1dcd22f0f7ec4f9a95c25617a4c0aca9448043cd0f3c9d529f07f99d40dddca494ff2f188b569da09a427a8e8ecce00a806965cd49db6f18931981624
|
data/README.md
CHANGED
@@ -118,9 +118,17 @@ is evaluated as:
|
|
118
118
|
gem "mygem", "~> 1.0"
|
119
119
|
```
|
120
120
|
|
121
|
+
### Setting Git Commit IDs
|
122
|
+
|
123
|
+
You can specify the gem method's `git` and `ref` options by setting the ENVANDLE_GEM_GIT_REF variable.
|
124
|
+
|
125
|
+
```ruby
|
126
|
+
ENV["ENVANDLE_GEM_GIT_REF"] = "mygem:https://github.com/mosop/mygem.git#aed3d9b9965b6938cca7490e98423cf9b5908b09"
|
127
|
+
```
|
128
|
+
|
121
129
|
### Specifying Gemspecs
|
122
130
|
|
123
|
-
|
131
|
+
You can also specify a gemspec not a single gem.
|
124
132
|
|
125
133
|
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",
|
126
134
|
|
data/lib/envandle.rb
CHANGED
@@ -19,6 +19,7 @@ module Envandle
|
|
19
19
|
autoload :GemspecCache, "envandle/gemspec_cache"
|
20
20
|
autoload :Gemspec, "envandle/gemspec"
|
21
21
|
autoload :GitBranchReference, "envandle/git_branch_reference"
|
22
|
+
autoload :GitRefReference, "envandle/git_ref_reference"
|
22
23
|
autoload :GitUtil, "envandle/git_util"
|
23
24
|
autoload :History, "envandle/history"
|
24
25
|
autoload :IllegalElement, "envandle/illegal_element"
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Envandle
|
2
|
+
class GitRefReference
|
3
|
+
extend AsGitReference
|
4
|
+
|
5
|
+
def initialize(context, name, url, ref)
|
6
|
+
@context = context
|
7
|
+
@name = name
|
8
|
+
@url = url
|
9
|
+
@ref = ref
|
10
|
+
end
|
11
|
+
|
12
|
+
def spec
|
13
|
+
@spec ||= begin
|
14
|
+
cache = @context.gemfile.gemspecs
|
15
|
+
cache_url = "#{@url}##{@ref}"
|
16
|
+
dir = cache.find(cache_url) || begin
|
17
|
+
reserve = cache.reserve
|
18
|
+
Envandle::GitUtil.init reserve.path, @url
|
19
|
+
sha = Envandle::GitUtil.pull_sha(reserve.path, @ref, "master")
|
20
|
+
reserve.url = cache_url
|
21
|
+
reserve.save
|
22
|
+
reserve.path
|
23
|
+
end
|
24
|
+
Gemspec.new(File.join(dir, "#{@name}.gemspec"))
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def to_executable_argset(base)
|
29
|
+
args = base.dup
|
30
|
+
args.clear_reference
|
31
|
+
args.args[0] = @name
|
32
|
+
args.options[:git] = @url
|
33
|
+
args.options[:ref] = @ref
|
34
|
+
Argset.new(:gem, *args.args_and_options)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/lib/envandle/git_util.rb
CHANGED
@@ -49,5 +49,13 @@ module Envandle
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
end
|
52
|
+
|
53
|
+
def self.pull_sha(dir, ref, branch)
|
54
|
+
Dir.chdir(dir) do
|
55
|
+
Envandle.sh "#{BIN} checkout -b #{branch}"
|
56
|
+
Envandle.sh "#{BIN} fetch origin"
|
57
|
+
Envandle.sh "#{BIN} reset --hard #{ref}"
|
58
|
+
end
|
59
|
+
end
|
52
60
|
end
|
53
61
|
end
|
@@ -19,8 +19,12 @@ module Envandle
|
|
19
19
|
@git_branches ||= parse(:git, GitBranchReference, "ENVANDLE_GEM_GIT_BRANCH")
|
20
20
|
end
|
21
21
|
|
22
|
+
def git_refs
|
23
|
+
@git_refs ||= parse(:git, GitRefReference, "ENVANDLE_GEM_GIT_REF")
|
24
|
+
end
|
25
|
+
|
22
26
|
def all
|
23
|
-
@all ||= git_branches.merge(paths)
|
27
|
+
@all ||= git_branches.merge(git_refs.merge(paths))
|
24
28
|
end
|
25
29
|
|
26
30
|
def left
|
data/lib/envandle/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: envandle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mosop
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-03-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -93,6 +93,7 @@ files:
|
|
93
93
|
- lib/envandle/gemspec.rb
|
94
94
|
- lib/envandle/gemspec_cache.rb
|
95
95
|
- lib/envandle/git_branch_reference.rb
|
96
|
+
- lib/envandle/git_ref_reference.rb
|
96
97
|
- lib/envandle/git_util.rb
|
97
98
|
- lib/envandle/helper.rb
|
98
99
|
- lib/envandle/history.rb
|