postit 0.1.2 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 592a1ecdc94072403c01456d98a308564ae40249
4
- data.tar.gz: 32ca570e4c8816ee5a9c217c7784a63c2e8df49e
3
+ metadata.gz: 505113b5411183f85e338418dce37277817ada47
4
+ data.tar.gz: 20bf6f84c82093ae1237882c82d8332fdf0a18c6
5
5
  SHA512:
6
- metadata.gz: d6e538e9198db6c4dfa0d93b3feba47bb801e85f575e6bd4d512a566a5138cd6567523a77ee55dd8a415defa282543a413a06a99bcb254b79ede68910eb9c404
7
- data.tar.gz: 68ad6b468c36692cb9f29d1b4e7a2e3b3a4ae90f38151c63263bb1524d353aa30e8bb0fcbd19a1e99e5ba4bc9a978acf01d3ac7ffd6bc148e73138544f4a6412
6
+ metadata.gz: d0c38a6db156f14af331c519385089c79e6594d6f1cbd37e8887afcb61b33dc69f894b99a7848148d0d8af4062c4022c8db61540bb496ae4a477e3f392b7e536
7
+ data.tar.gz: e6d39247851e8f6ae30a56ed5180898ab9f1ed9f3820a84decca966453b14fe49f820dcc2cb124bb76dccd72addf5496aedc5a6ab8f99a28a7df602f6b5aad49
@@ -6,6 +6,7 @@ AllCops:
6
6
  Exclude:
7
7
  - ./spec/fixtures/**/*
8
8
  - ./vendor/bundle/**/*
9
+ - ./tmp/**/*
9
10
 
10
11
  # At the moment not ready to be used
11
12
  # https://github.com/bbatsov/rubocop/issues/947
@@ -10,5 +10,67 @@ rvm:
10
10
  - 2.1.7
11
11
  - 2.2.2
12
12
  - 2.3.0
13
+
14
+ env:
15
+ - RGV=master
16
+ - RGV=v2.6.4
17
+ - RGV=v2.4.8
18
+
19
+ matrix:
20
+ include:
21
+ # Ruby 2.2, Rubygems 2.4.5 and up (included by RGV above)
22
+ # Ruby 2.1, Rubygems 2.2.2 and up
23
+ - rvm: 2.1
24
+ env: RGV=v2.2.5
25
+ # Ruby 2.0.0, Rubygems 2.0.0 and up
26
+ - rvm: 2.0.0
27
+ env: RGV=v2.2.5
28
+ - rvm: 2.0.0
29
+ env: RGV=v2.1.11
30
+ - rvm: 2.0.0
31
+ env: RGV=v2.0.14
32
+ # Ruby 1.9.3, Rubygems 1.5.3 and up
33
+ - rvm: 1.9.3
34
+ env: RGV=v2.2.5
35
+ - rvm: 1.9.3
36
+ env: RGV=v2.1.11
37
+ - rvm: 1.9.3
38
+ env: RGV=v2.0.14
39
+ - rvm: 1.9.3
40
+ env: RGV=v1.8.29
41
+ - rvm: 1.9.3
42
+ env: RGV=v1.7.2
43
+ - rvm: 1.9.3
44
+ env: RGV=v1.6.2
45
+ - rvm: 1.9.3
46
+ env: RGV=v1.5.3
47
+ # Ruby 1.8.7, Rubygems 1.3.6 and up
48
+ - rvm: 1.8.7
49
+ env: RGV=v2.2.5
50
+ - rvm: 1.8.7
51
+ env: RGV=v2.0.14
52
+ - rvm: 1.8.7
53
+ env: RGV=v1.8.29
54
+ - rvm: 1.8.7
55
+ env: RGV=v1.7.2
56
+ - rvm: 1.8.7
57
+ env: RGV=v1.6.2
58
+ - rvm: 1.8.7
59
+ env: RGV=v1.5.3
60
+ - rvm: 1.8.7
61
+ env: RGV=v1.4.2
62
+ - rvm: 1.8.7
63
+ env: RGV=v1.3.7
64
+ - rvm: 1.8.7
65
+ env: RGV=v1.3.6
66
+
67
+ # ALLOWED FAILURES
68
+ # For no apparent reason, this often goes over the Travis limit
69
+ - rvm: 1.8.7
70
+ env: RGV=v2.1.11
71
+ # Ruby-head (we want to know how we're doing, but not fail the build)
72
+ - rvm: ruby-head
73
+ env: RGV=master
74
+
13
75
  before_install: ./bin/setup
14
- script: rake
76
+ script: ./bin/rake
@@ -1,3 +1,15 @@
1
+ ## 0.2.0
2
+
3
+ ##### Enhancements
4
+
5
+ * Support RubyGems back to 1.3.6.
6
+ [Samuel Giddins](https://github.com/segiddins)
7
+
8
+ * Refactor installation so the installer can be used separately from
9
+ `postit/setup`.
10
+ [Samuel Giddins](https://github.com/segiddins)
11
+
12
+
1
13
  ## 0.1.2 (2016-04-25)
2
14
 
3
15
  ##### Enhancements
@@ -6,7 +18,7 @@
6
18
  [Samuel Giddins](https://github.com/segiddins)
7
19
  [#2](https://github.com/bundler/postit/issues/2)
8
20
 
9
- ##### Enhancements
21
+ ##### Bug Fixes
10
22
 
11
23
  * Invoke a pre-release bundler version if no particular requirement is needed,
12
24
  in keeping with recent RubyGems versions.
@@ -1,5 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ load File.expand_path('../with_rubygems', __FILE__) if ENV['RGV']
4
+
3
5
  require 'postit'
4
6
 
5
7
  require 'irb'
data/bin/rake CHANGED
@@ -1,5 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ load File.expand_path('../with_rubygems', __FILE__) if ENV['RGV']
4
+
3
5
  require 'rubygems'
4
6
  gemspec = Gem::Specification.load(
5
7
  File.expand_path('../../postit.gemspec', __FILE__))
data/bin/rspec CHANGED
@@ -1,5 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ load File.expand_path('../with_rubygems', __FILE__) if ENV['RGV']
4
+
3
5
  require 'rubygems'
4
6
  gemspec = Gem::Specification.load(
5
7
  File.expand_path('../../postit.gemspec', __FILE__))
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'pathname'
5
+
6
+ def run(*cmd)
7
+ return if system(*cmd)
8
+ raise "Running `#{cmd.join(' ')}` failed"
9
+ end
10
+
11
+ version = ENV.delete('RGV')
12
+ rubygems_path = Pathname.new(__FILE__).join('../../tmp/rubygems').expand_path
13
+ unless rubygems_path.directory?
14
+ rubygems_path.parent.mkpath unless rubygems_path.directory?
15
+ run('git', 'clone',
16
+ 'https://github.com/rubygems/rubygems.git', rubygems_path.to_s)
17
+ end
18
+ Dir.chdir(rubygems_path) do
19
+ version = "v#{version}" if version =~ /\A\d/
20
+ run('git', 'checkout', version, '--quiet')
21
+ end if version
22
+
23
+ rubygems_lib = rubygems_path + 'lib'
24
+ ENV['RUBYOPT'] = %(-I#{rubygems_lib} #{ENV['RUBYOPT']})
25
+
26
+ if $0 != __FILE__
27
+ ARGV.unshift($0)
28
+ elsif cmd = ARGV.first
29
+ possible_dirs = [
30
+ Pathname.new(__FILE__) + '..',
31
+ Pathname.new(__FILE__) + '../../exe',
32
+ rubygems_path + 'bin',
33
+ ]
34
+ cmd = possible_dirs.map do |dir|
35
+ dir.join(cmd).expand_path
36
+ end.find(&:file?)
37
+ ARGV[0] = cmd.to_s if cmd
38
+ end
39
+
40
+ exec(*ARGV)
@@ -1,6 +1,7 @@
1
- require 'postit/version'
2
1
  require 'postit/environment'
2
+ require 'postit/installer'
3
3
  require 'postit/parser'
4
+ require 'postit/version'
4
5
  require 'rubygems'
5
6
 
6
7
  module PostIt
@@ -0,0 +1,28 @@
1
+ module PostIt
2
+ class Installer
3
+ def initialize(bundler_version)
4
+ @bundler_version = bundler_version
5
+ end
6
+
7
+ def installed?
8
+ if Gem::Specification.respond_to?(:find_by_name)
9
+ !Gem::Specification.find_by_name('bundler', @bundler_version).nil?
10
+ else
11
+ requirement = Gem::Requirement.new(@bundler_version)
12
+ Gem.source_index.gems.values.any? do |s|
13
+ s.name == 'bundler' && requirement.satisfied_by?(s.version)
14
+ end
15
+ end
16
+ rescue LoadError
17
+ false
18
+ end
19
+
20
+ def install!
21
+ return if installed?
22
+ require 'rubygems/dependency_installer'
23
+ installer = Gem::DependencyInstaller.new
24
+ installer.install('bundler', @bundler_version)
25
+ installer.installed_gems
26
+ end
27
+ end
28
+ end
@@ -1,16 +1,12 @@
1
1
  require 'postit/environment'
2
+ require 'postit/installer'
2
3
 
3
4
  environment = PostIt::Environment.new(ARGV)
4
5
  version = environment.bundler_version
5
6
 
6
- loop do
7
- begin
8
- gem 'bundler', version
9
- break
10
- rescue Gem::LoadError
11
- nil
12
- end
13
- Gem.install('bundler', version)
14
- end
7
+ installer = PostIt::Installer.new(version)
8
+ installer.install!
9
+
10
+ gem 'bundler', version
15
11
 
16
12
  require 'bundler/version'
@@ -1,3 +1,3 @@
1
1
  module PostIt
2
- VERSION = '0.1.2'.freeze
2
+ VERSION = '0.2.0'.freeze
3
3
  end
@@ -5,7 +5,7 @@ require 'postit/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = 'postit'
8
- spec.version = PostIt::VERSION
8
+ spec.version = PostIt::VERSION.dup
9
9
  spec.authors = ['Samuel Giddins']
10
10
  spec.email = ['segiddins@segiddins.me']
11
11
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: postit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Giddins
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-26 00:00:00.000000000 Z
11
+ date: 2016-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -87,9 +87,11 @@ files:
87
87
  - bin/rspec
88
88
  - bin/rubocop
89
89
  - bin/setup
90
+ - bin/with_rubygems
90
91
  - exe/postit
91
92
  - lib/postit.rb
92
93
  - lib/postit/environment.rb
94
+ - lib/postit/installer.rb
93
95
  - lib/postit/parser.rb
94
96
  - lib/postit/setup.rb
95
97
  - lib/postit/version.rb
@@ -113,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
115
  version: '0'
114
116
  requirements: []
115
117
  rubyforge_project:
116
- rubygems_version: 2.6.3
118
+ rubygems_version: 2.6.6
117
119
  signing_key:
118
120
  specification_version: 4
119
121
  summary: The Bundler version manager