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