envandle 0.6.2 → 0.6.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: 1bb2aa848fd91ea33e9faa83759f13952ff3550f
4
- data.tar.gz: 31d4cdcd8e59edba4f8d573561544b8f2f81ad2c
3
+ metadata.gz: d329ce5df2ca681f51283c395f2be9526c66c3e1
4
+ data.tar.gz: eb443817b65eb96d575792cb395a319b2b865306
5
5
  SHA512:
6
- metadata.gz: 704299adeb30ec58b93e7cedcb1c7b37fd4188136cf803b2d551dafc4faeb60777dad760f4fffbf1749ba031f2e6536cee090c9be593cddf64052c2fe437f2f5
7
- data.tar.gz: 68800f876f4fda6588fd5a8b0d13ab940ee4b161f404ed189a5b3ba1e70bb88aee7e874c0c9daed91a3fd43c20c5dc83f27778d64eaba4c9819b155465af22f1
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
- As well as the regular Gemfile, you can also specify a gemspec not a single gem.
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
 
@@ -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"
@@ -7,6 +7,8 @@ module Envandle
7
7
  FileUtils.mkdir_p @path
8
8
  end
9
9
 
10
+ attr_reader :path
11
+
10
12
  def with_file
11
13
  path = File.join(@path, "list")
12
14
  @@mutex.synchronize do
@@ -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
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Envandle
2
- VERSION = "0.6.2"
2
+ VERSION = "0.6.3"
3
3
  end
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.2
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-01-25 00:00:00.000000000 Z
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