gem-src 0.9.0 → 0.10.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 +5 -5
- data/README.md +14 -8
- data/gem-src.gemspec +1 -1
- data/lib/gem/src/irregular_repositories.rb +81 -0
- data/lib/rubygems_plugin.rb +45 -34
- data/plugins.rb +7 -0
- data/spec/gem-src_spec.rb +71 -0
- data/spec/spec_helper.rb +6 -0
- metadata +12 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 70651b92bbaa9d17a2f084c7e2ff97adf2b40a2ebe4ec00deae616afec1fe995
|
|
4
|
+
data.tar.gz: 5ac36fd408e1b1f96945986c6f4bef28d737b2ef8e0d8b9e66a913c16a76dede
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1ac67aa2d4b6f7ac57ffebb80e1ebed510477117dc9e3ce3573d51d9b9b146ab2152dbdf6ad3928220e7ac6d6353808687d1548f6e310a0730def45826ba24e1
|
|
7
|
+
data.tar.gz: 9e2818b0389ab44f3cf537ecfcf85c00adb77d9d59edad7010ca7471aabf411403aeedb97fc4426651e372bcb788b741239f7fb9122603953544397c500ee531
|
data/README.md
CHANGED
|
@@ -5,7 +5,7 @@ Plus, gem-src runs `git init` on each installed gem, and links it to the cloned
|
|
|
5
5
|
|
|
6
6
|
***TL;DR***
|
|
7
7
|
|
|
8
|
-
% git clone https://github.com/amatsuda/gem-src.git
|
|
8
|
+
% git clone https://github.com/amatsuda/gem-src.git "$(rbenv root)/plugins/gem-src"
|
|
9
9
|
% mkdir ~/src
|
|
10
10
|
% echo "gemsrc_clone_root: ~/src" >> ~/.gemrc
|
|
11
11
|
|
|
@@ -14,20 +14,26 @@ Then you're all set!
|
|
|
14
14
|
|
|
15
15
|
## Installation
|
|
16
16
|
|
|
17
|
-
### As a Rubygem
|
|
18
|
-
|
|
19
|
-
gem-src is a gem plugin that can be installed via gem install command:
|
|
20
|
-
|
|
21
|
-
% gem install gem-src
|
|
22
|
-
|
|
23
17
|
### :star2: As an rbenv plugin (recommended)
|
|
24
18
|
|
|
25
19
|
Alternatively, if you're using rbenv, you can install gem-src as an rbenv plugin:
|
|
26
20
|
|
|
27
|
-
% git clone https://github.com/amatsuda/gem-src.git
|
|
21
|
+
% git clone https://github.com/amatsuda/gem-src.git "$(rbenv root)/plugins/gem-src"
|
|
28
22
|
|
|
29
23
|
then you get gem-src enabled for all `gem` and `bundle` commands invoked through rbenv.
|
|
30
24
|
|
|
25
|
+
### :star2: As a Bundler plugin (experimental, but also recommended)
|
|
26
|
+
|
|
27
|
+
gem-src is a bundler plugin that can be installed via bundler plugin install command:
|
|
28
|
+
|
|
29
|
+
% bundler plugin install gem-src
|
|
30
|
+
|
|
31
|
+
### As a Rubygem
|
|
32
|
+
|
|
33
|
+
gem-src is a gem plugin that can be installed via gem install command:
|
|
34
|
+
|
|
35
|
+
% gem install gem-src
|
|
36
|
+
|
|
31
37
|
## Configuration
|
|
32
38
|
|
|
33
39
|
### By default
|
data/gem-src.gemspec
CHANGED
|
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
|
4
4
|
|
|
5
5
|
Gem::Specification.new do |gem|
|
|
6
6
|
gem.name = "gem-src"
|
|
7
|
-
gem.version = '0.
|
|
7
|
+
gem.version = '0.10.0'
|
|
8
8
|
gem.authors = ["Akira Matsuda"]
|
|
9
9
|
gem.email = ["ronnie@dio.jp"]
|
|
10
10
|
gem.description = 'Gem.post_install { `git clone gem_source src` }'
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
module Gem
|
|
2
|
+
class Src
|
|
3
|
+
IRREGULAR_REPOSITORIES = {
|
|
4
|
+
'activesupport' => nil,
|
|
5
|
+
'actionview' => nil,
|
|
6
|
+
'actionpack' => nil,
|
|
7
|
+
'activemodel' => nil,
|
|
8
|
+
'activerecord' => nil,
|
|
9
|
+
'activerecord-jdbcmysql-adapter' => 'https://github.com/jruby/activerecord-jdbc-adapter',
|
|
10
|
+
'activerecord-jdbcpostgresql-adapter' => 'https://github.com/jruby/activerecord-jdbc-adapter',
|
|
11
|
+
'activerecord-jdbcsqlite3-adapter' => 'https://github.com/jruby/activerecord-jdbc-adapter',
|
|
12
|
+
'activejob' => nil,
|
|
13
|
+
'actionmailbox' => nil,
|
|
14
|
+
'actionmailer' => nil,
|
|
15
|
+
'actioncable' => nil,
|
|
16
|
+
'actiontext' => nil,
|
|
17
|
+
'activestorage' => nil,
|
|
18
|
+
'railties' => nil,
|
|
19
|
+
'activeresource' => 'https://github.com/rails/activeresource.git',
|
|
20
|
+
'autoparse' => 'https://github.com/google/autoparse.git',
|
|
21
|
+
'aws-sdk-rails' => 'https://github.com/aws/aws-sdk-rails.git',
|
|
22
|
+
'breadcrumbs_on_rails' => 'https://github.com/weppos/breadcrumbs_on_rails',
|
|
23
|
+
'bson' => 'https://github.com/mongodb/bson-ruby.git',
|
|
24
|
+
'coffee-script-source' => 'https://github.com/rails/ruby-coffee-script',
|
|
25
|
+
'compass-core' => 'https://github.com/Compass/compass.git',
|
|
26
|
+
'compass-import-once' => 'https://github.com/Compass/compass.git',
|
|
27
|
+
'concurrent-ruby' => 'https://github.com/ruby-concurrency/concurrent-ruby/',
|
|
28
|
+
'concurrent-ruby-edge' => 'https://github.com/ruby-concurrency/concurrent-ruby/',
|
|
29
|
+
'concurrent-ruby-ext' => 'https://github.com/ruby-concurrency/concurrent-ruby/',
|
|
30
|
+
'cool.io' => 'https://github.com/tarcieri/cool.io.git',
|
|
31
|
+
'cucumber-core' => 'https://github.com/cucumber/cucumber-ruby-core.git',
|
|
32
|
+
'cucumber-wire' => 'https://github.com/cucumber/cucumber-ruby-wire.git',
|
|
33
|
+
'diff-lcs' => 'https://github.com/halostatue/diff-lcs.git',
|
|
34
|
+
'elasticsearch' => 'https://github.com/elastic/elasticsearch-ruby.git',
|
|
35
|
+
'elasticsearch-api' => 'https://github.com/elastic/elasticsearch-ruby.git',
|
|
36
|
+
'elasticsearch-extensions' => 'https://github.com/elastic/elasticsearch-ruby.git',
|
|
37
|
+
'elasticsearch-transport' => 'https://github.com/elastic/elasticsearch-ruby.git',
|
|
38
|
+
'erubis' => 'https://github.com/kwatch/erubis.git',
|
|
39
|
+
'flay' => 'https://github.com/seattlerb/flay',
|
|
40
|
+
'geocoder' => 'https://github.com/alexreisner/geocoder',
|
|
41
|
+
'hirb' => 'https://github.com/cldwalker/hirb',
|
|
42
|
+
'houston' => 'https://github.com/nomad/houston',
|
|
43
|
+
'html2haml' => 'https://github.com/haml/html2haml',
|
|
44
|
+
'io-console' => 'https://github.com/ruby/io-console',
|
|
45
|
+
'kaminari-actionview' => nil,
|
|
46
|
+
'kaminari-activerecord' => nil,
|
|
47
|
+
'kaminari-core' => nil,
|
|
48
|
+
'kwalify' => nil,
|
|
49
|
+
'log4r' => 'https://github.com/colbygk/log4r',
|
|
50
|
+
'meta_request' => 'https://github.com/dejan/rails_panel',
|
|
51
|
+
'method_source' => 'https://github.com/banister/method_source',
|
|
52
|
+
'origin' => 'https://github.com/mongoid/origin',
|
|
53
|
+
'padrino' => 'https://github.com/padrino/padrino-framework',
|
|
54
|
+
'padrino-admin' => nil,
|
|
55
|
+
'padrino-cache' => nil,
|
|
56
|
+
'padrino-core' => nil,
|
|
57
|
+
'padrino-gen' => nil,
|
|
58
|
+
'padrino-helpers' => nil,
|
|
59
|
+
'padrino-mailer' => nil,
|
|
60
|
+
'padrino-performance' => nil,
|
|
61
|
+
'padrino-support' => nil,
|
|
62
|
+
'paranoia' => 'https://github.com/rubysherpas/paranoia',
|
|
63
|
+
'pdf-core' => 'https://github.com/prawnpdf/pdf-core',
|
|
64
|
+
'pg' => nil,
|
|
65
|
+
'rack-mini-profiler' => 'https://github.com/MiniProfiler/rack-mini-profiler',
|
|
66
|
+
'raindrops' => 'https://github.com/tmm1/raindrops',
|
|
67
|
+
'redis-actionpack' => 'https://github.com/redis-store/redis-actionpack',
|
|
68
|
+
'redis-activesupport' => 'https://github.com/redis-store/redis-activesupport',
|
|
69
|
+
'redis-rack' => 'https://github.com/redis-store/redis-rack',
|
|
70
|
+
'redis-rails' => 'https://github.com/redis-store/redis-rails',
|
|
71
|
+
'rom-mapper' => 'https://github.com/rom-rb/rom-mapper',
|
|
72
|
+
'rom-repository' => 'https://github.com/rom-rb/rom-repository',
|
|
73
|
+
'rom-sql' => 'https://github.com/rom-rb/rom-sql',
|
|
74
|
+
'rouge' => 'https://github.com/jneen/rouge',
|
|
75
|
+
'rubygems-update' => nil,
|
|
76
|
+
'spreadsheet' => 'https://github.com/zdavatz/spreadsheet',
|
|
77
|
+
'thin' => 'https://github.com/macournoyer/thin',
|
|
78
|
+
'uniform_notifier' => 'https://github.com/flyerhzm/uniform_notifier'
|
|
79
|
+
}.freeze unless defined? IRREGULAR_REPOSITORIES
|
|
80
|
+
end
|
|
81
|
+
end
|
data/lib/rubygems_plugin.rb
CHANGED
|
@@ -5,35 +5,46 @@ require 'net/https'
|
|
|
5
5
|
|
|
6
6
|
module Gem
|
|
7
7
|
class Src
|
|
8
|
-
|
|
8
|
+
class << self
|
|
9
|
+
def post_install_hook(installer)
|
|
10
|
+
return true if installer.class.name == 'Bundler::Source::Path::Installer'
|
|
11
|
+
return true if !!ENV['GEMSRC_SKIP']
|
|
9
12
|
|
|
10
|
-
|
|
13
|
+
gem_src = Gem::Src.new installer
|
|
14
|
+
gem_src.git_clone_homepage_or_source_code_uri_or_homepage_uri_or_github_organization_uri
|
|
15
|
+
|
|
16
|
+
gem_src.repositorize_installed_gem
|
|
17
|
+
|
|
18
|
+
gem_src.remote_add_src_and_origin
|
|
19
|
+
true
|
|
20
|
+
end
|
|
21
|
+
end
|
|
11
22
|
|
|
12
23
|
def initialize(installer)
|
|
13
|
-
@installer, @tested_repositories = installer, []
|
|
24
|
+
@installer, @spec, @tested_repositories = installer, installer.spec, []
|
|
14
25
|
end
|
|
15
26
|
|
|
16
27
|
# Guess the git repo from the gemspec and perform git clone
|
|
17
28
|
def git_clone_homepage_or_source_code_uri_or_homepage_uri_or_github_organization_uri
|
|
18
|
-
return false if skip_clone?
|
|
19
29
|
return false if File.exist? clone_dir
|
|
20
30
|
|
|
21
31
|
now = Time.now
|
|
22
32
|
|
|
23
|
-
if IRREGULAR_REPOSITORIES.key?
|
|
24
|
-
return git_clone IRREGULAR_REPOSITORIES[
|
|
33
|
+
if IRREGULAR_REPOSITORIES.key? @spec.name
|
|
34
|
+
return git_clone IRREGULAR_REPOSITORIES[@spec.name]
|
|
25
35
|
end
|
|
26
36
|
|
|
27
|
-
result = git_clone(
|
|
28
|
-
git_clone(
|
|
37
|
+
result = git_clone(source_code_uri_from_metadata) ||
|
|
38
|
+
git_clone(@spec.homepage) ||
|
|
39
|
+
git_clone(github_url(@spec.homepage)) ||
|
|
29
40
|
git_clone(source_code_uri) ||
|
|
30
41
|
git_clone(homepage_uri) ||
|
|
31
42
|
git_clone(github_url(homepage_uri)) ||
|
|
32
|
-
git_clone(github_organization_uri(
|
|
43
|
+
git_clone(github_organization_uri(@spec.name))
|
|
33
44
|
|
|
34
45
|
if verbose?
|
|
35
|
-
puts "gem-src: #{
|
|
36
|
-
puts "gem-src: #{
|
|
46
|
+
puts "gem-src: #{@spec.name} - !!! Failed to find a repo." if result.nil?
|
|
47
|
+
puts "gem-src: #{@spec.name} - #{Time.now - now}s"
|
|
37
48
|
end
|
|
38
49
|
result
|
|
39
50
|
end
|
|
@@ -41,7 +52,7 @@ module Gem
|
|
|
41
52
|
# git init the installed gem so that we can directly edit the files there
|
|
42
53
|
def repositorize_installed_gem
|
|
43
54
|
if File.directory? gem_dir
|
|
44
|
-
puts "gem-src: #{
|
|
55
|
+
puts "gem-src: #{@spec.name} - repositorizing..." if verbose?
|
|
45
56
|
`cd #{gem_dir} && ! git rev-parse --is-inside-work-tree 2> /dev/null && git init && git checkout -qb gem-src_init && git add -A && git commit -m 'Initial commit by gem-src'`
|
|
46
57
|
end
|
|
47
58
|
end
|
|
@@ -49,10 +60,10 @@ module Gem
|
|
|
49
60
|
# git remote add from the installed gem to the cloned repo so that we can easily transfer patches
|
|
50
61
|
def remote_add_src_and_origin
|
|
51
62
|
if File.directory?(clone_dir) && File.directory?(gem_dir)
|
|
52
|
-
puts "gem-src: #{
|
|
63
|
+
puts "gem-src: #{@spec.name} - adding remotes..." if verbose?
|
|
53
64
|
`cd #{gem_dir} && git remote add src #{clone_dir}`
|
|
54
65
|
origin = `cd #{clone_dir} && git remote get-url origin`.chomp
|
|
55
|
-
`cd #{gem_dir} && git remote
|
|
66
|
+
`cd #{gem_dir} && git config remote.origin.url #{origin}` if origin
|
|
56
67
|
end
|
|
57
68
|
end
|
|
58
69
|
|
|
@@ -60,17 +71,22 @@ module Gem
|
|
|
60
71
|
|
|
61
72
|
def clone_dir
|
|
62
73
|
@clone_dir ||= if ENV['GEMSRC_CLONE_ROOT']
|
|
63
|
-
File.expand_path
|
|
74
|
+
File.expand_path @spec.name, ENV['GEMSRC_CLONE_ROOT']
|
|
64
75
|
elsif Gem.configuration[:gemsrc_clone_root]
|
|
65
|
-
File.expand_path
|
|
76
|
+
File.expand_path @spec.name, Gem.configuration[:gemsrc_clone_root]
|
|
66
77
|
else
|
|
67
|
-
gem_dir = installer.respond_to?(:gem_dir) ? installer.gem_dir : File.expand_path(File.join(installer.gem_home, 'gems', installer.spec.full_name))
|
|
68
78
|
File.join gem_dir, 'src'
|
|
69
79
|
end
|
|
70
80
|
end
|
|
71
81
|
|
|
72
82
|
def gem_dir
|
|
73
|
-
installer.respond_to?(:gem_dir)
|
|
83
|
+
if @installer.respond_to?(:gem_dir)
|
|
84
|
+
@installer.gem_dir
|
|
85
|
+
elsif @installer.respond_to?(:gem_home) # old rubygems
|
|
86
|
+
File.expand_path(File.join(@installer.gem_home, 'gems', @spec.full_name))
|
|
87
|
+
else # bundler
|
|
88
|
+
File.expand_path(File.join(Gem.dir, 'gems', @spec.full_name))
|
|
89
|
+
end
|
|
74
90
|
end
|
|
75
91
|
|
|
76
92
|
def github_url(url)
|
|
@@ -99,9 +115,13 @@ module Gem
|
|
|
99
115
|
Net::HTTP.new('github.com', 443).tap {|h| h.use_ssl = true }.request_head(url).code != '404'
|
|
100
116
|
end
|
|
101
117
|
|
|
118
|
+
def source_code_uri_from_metadata
|
|
119
|
+
@spec.metadata['source_code_uri']
|
|
120
|
+
end
|
|
121
|
+
|
|
102
122
|
def api
|
|
103
123
|
require 'open-uri'
|
|
104
|
-
@api ||=
|
|
124
|
+
@api ||= OpenURI.open_uri("https://rubygems.org/api/v1/gems/#{@spec.name}.yaml", &:read)
|
|
105
125
|
rescue OpenURI::HTTPError
|
|
106
126
|
""
|
|
107
127
|
end
|
|
@@ -120,11 +140,12 @@ module Gem
|
|
|
120
140
|
|
|
121
141
|
def git_clone(repository)
|
|
122
142
|
return if repository.nil? || repository.empty?
|
|
143
|
+
return if repository.include? 'rubyforge.org'
|
|
123
144
|
return if @tested_repositories.include? repository
|
|
124
145
|
@tested_repositories << repository
|
|
125
146
|
return if github?(repository) && !github_page_exists?(repository)
|
|
126
147
|
|
|
127
|
-
puts "gem-src: #{
|
|
148
|
+
puts "gem-src: #{@spec.name} - Cloning from #{repository}..." if verbose?
|
|
128
149
|
|
|
129
150
|
if use_ghq?
|
|
130
151
|
system 'ghq', 'get', repository
|
|
@@ -142,25 +163,15 @@ module Gem
|
|
|
142
163
|
uri =~ /\A(?:https?|git):\/\// ? uri : nil
|
|
143
164
|
end
|
|
144
165
|
|
|
145
|
-
def skip_clone?
|
|
146
|
-
!!ENV['GEMSRC_SKIP']
|
|
147
|
-
end
|
|
148
|
-
|
|
149
166
|
def verbose?
|
|
150
167
|
!!ENV['GEMSRC_VERBOSE'] || Gem.configuration[:gemsrc_verbose]
|
|
151
168
|
end
|
|
152
|
-
end
|
|
169
|
+
end unless defined?(Src) # for rubygems test suite.
|
|
153
170
|
end
|
|
154
171
|
|
|
172
|
+
require 'gem/src/irregular_repositories'
|
|
155
173
|
|
|
156
|
-
Gem.post_install do |installer|
|
|
157
|
-
next true if installer.class.name == 'Bundler::Source::Path::Installer'
|
|
158
|
-
|
|
159
|
-
gem_src = Gem::Src.new installer
|
|
160
|
-
gem_src.git_clone_homepage_or_source_code_uri_or_homepage_uri_or_github_organization_uri
|
|
161
|
-
|
|
162
|
-
gem_src.repositorize_installed_gem
|
|
163
174
|
|
|
164
|
-
|
|
165
|
-
|
|
175
|
+
Gem.post_install do |installer|
|
|
176
|
+
Gem::Src.post_install_hook installer
|
|
166
177
|
end
|
data/plugins.rb
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe Gem::Src do
|
|
4
|
+
def quick_gem(name, version='2')
|
|
5
|
+
require 'rubygems/specification'
|
|
6
|
+
|
|
7
|
+
spec = Gem::Specification.new do |s|
|
|
8
|
+
s.platform = Gem::Platform::RUBY
|
|
9
|
+
s.name = name
|
|
10
|
+
s.version = version
|
|
11
|
+
s.author = 'A User'
|
|
12
|
+
s.email = 'example@example.com'
|
|
13
|
+
s.homepage = 'http://example.com'
|
|
14
|
+
s.summary = "this is a summary"
|
|
15
|
+
s.description = "This is a test description"
|
|
16
|
+
|
|
17
|
+
yield(s) if block_given?
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
Gem::Specification.map # HACK: force specs to (re-)load before we write
|
|
21
|
+
|
|
22
|
+
written_path = write_file spec.spec_file do |io|
|
|
23
|
+
io.write spec.to_ruby_for_cache
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
spec.loaded_from = spec.loaded_from = written_path
|
|
27
|
+
|
|
28
|
+
Gem::Specification.add_spec spec.for_cache
|
|
29
|
+
|
|
30
|
+
spec
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
describe '#clone_dir' do
|
|
34
|
+
subject do
|
|
35
|
+
gem = quick_gem 'my_awesome_gem'
|
|
36
|
+
installer = Gem::Installer.new gem
|
|
37
|
+
installer.stub(:gem_dir, '~/g/my_awesome_gem')
|
|
38
|
+
Gem::Src.new installer
|
|
39
|
+
end
|
|
40
|
+
context "with ENV['GEMSRC_CLONE_ROOT']" do
|
|
41
|
+
around do |example|
|
|
42
|
+
e, g = ENV['GEMSRC_CLONE_ROOT'], Gem.configuration[:gemsrc_clone_root]
|
|
43
|
+
ENV['GEMSRC_CLONE_ROOT'], Gem.configuration[:gemsrc_clone_root] = '~/foo', nil
|
|
44
|
+
example.run
|
|
45
|
+
ENV['GEMSRC_CLONE_ROOT'], Gem.configuration[:gemsrc_clone_root] = e, g
|
|
46
|
+
end
|
|
47
|
+
its(:clone_dir) { should == '~/foo/my_awesome_gem' }
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
context "with Gem.configuration[:gemsrc_clone_root]" do
|
|
51
|
+
around do |example|
|
|
52
|
+
e, g = ENV['GEMSRC_CLONE_ROOT'], Gem.configuration[:gemsrc_clone_root]
|
|
53
|
+
ENV['GEMSRC_CLONE_ROOT'], Gem.configuration[:gemsrc_clone_root] = nil, '~/bar'
|
|
54
|
+
example.run
|
|
55
|
+
ENV['GEMSRC_CLONE_ROOT'], Gem.configuration[:gemsrc_clone_root] = e, g
|
|
56
|
+
end
|
|
57
|
+
its(:clone_dir) { should == '~/bar/my_awesome_gem' }
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
context "without clone_root configuration" do
|
|
61
|
+
around do |example|
|
|
62
|
+
e, g = ENV['GEMSRC_CLONE_ROOT'], Gem.configuration[:gemsrc_clone_root]
|
|
63
|
+
ENV['GEMSRC_CLONE_ROOT'], Gem.configuration[:gemsrc_clone_root] = nil, nil
|
|
64
|
+
example.run
|
|
65
|
+
ENV['GEMSRC_CLONE_ROOT'], Gem.configuration[:gemsrc_clone_root] = e, g
|
|
66
|
+
end
|
|
67
|
+
its(:clone_dir) { should == '~/aho/my_awesome_gem/src' }
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
end
|
|
71
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gem-src
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.10.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Akira Matsuda
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2020-10-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rspec
|
|
@@ -38,7 +38,11 @@ files:
|
|
|
38
38
|
- Rakefile
|
|
39
39
|
- etc/rbenv.d/exec/~gem-src.bash
|
|
40
40
|
- gem-src.gemspec
|
|
41
|
+
- lib/gem/src/irregular_repositories.rb
|
|
41
42
|
- lib/rubygems_plugin.rb
|
|
43
|
+
- plugins.rb
|
|
44
|
+
- spec/gem-src_spec.rb
|
|
45
|
+
- spec/spec_helper.rb
|
|
42
46
|
homepage: https://github.com/amatsuda/gem-src
|
|
43
47
|
licenses: []
|
|
44
48
|
metadata: {}
|
|
@@ -64,9 +68,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
64
68
|
- !ruby/object:Gem::Version
|
|
65
69
|
version: '0'
|
|
66
70
|
requirements: []
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
signing_key:
|
|
71
|
+
rubygems_version: 3.2.0.rc.1
|
|
72
|
+
signing_key:
|
|
70
73
|
specification_version: 4
|
|
71
74
|
summary: Gem.post_install { `git clone gem_source src` }
|
|
72
|
-
test_files:
|
|
75
|
+
test_files:
|
|
76
|
+
- spec/gem-src_spec.rb
|
|
77
|
+
- spec/spec_helper.rb
|