pumper 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 824a291e503892ccb1b29dcaf6c2f442d4ba31eb
4
+ data.tar.gz: def9eb660157e7120b8cc01e33d9c2cf92158fd8
5
+ SHA512:
6
+ metadata.gz: a9b691666cbc33b2fa6fe034c13da198e32989f9eeed323ba26d22d83b6a6cb8f90d92d8edf9efdd1c2f4d469a1b052645b6ed6a47b57689e8969cb67cdc8d52
7
+ data.tar.gz: 5654dda987711919bafc163e3651ee2955c04286f1f38df6e48170b7428fadc1363cee7601969fa1d3575b541450f2545a8aaa25b1570c60fd04d784d71d1ebd
data/.gitignore ADDED
@@ -0,0 +1,7 @@
1
+ coverage/*
2
+ .bundle
3
+ .idea
4
+ .DS_Store
5
+ pkg
6
+ log
7
+ Gemfile.lock
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --require spec_helper
2
+ --colour
3
+ --format documentation
data/.travis.yml ADDED
@@ -0,0 +1,9 @@
1
+ language: ruby
2
+
3
+ rvm:
4
+ - 2.0.0
5
+ - 2.1
6
+ - 2.2
7
+
8
+ script:
9
+ - bundle exec rspec
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
@@ -0,0 +1,53 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ pumper (0.0.1)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ activesupport (4.2.0)
10
+ i18n (~> 0.7)
11
+ json (~> 1.7, >= 1.7.7)
12
+ minitest (~> 5.1)
13
+ thread_safe (~> 0.3, >= 0.3.4)
14
+ tzinfo (~> 1.1)
15
+ coderay (1.1.0)
16
+ diff-lcs (1.2.5)
17
+ i18n (0.7.0)
18
+ json (1.8.1)
19
+ method_source (0.8.2)
20
+ minitest (5.5.0)
21
+ pry (0.10.1)
22
+ coderay (~> 1.1.0)
23
+ method_source (~> 0.8.1)
24
+ slop (~> 3.4)
25
+ rspec (3.1.0)
26
+ rspec-core (~> 3.1.0)
27
+ rspec-expectations (~> 3.1.0)
28
+ rspec-mocks (~> 3.1.0)
29
+ rspec-core (3.1.7)
30
+ rspec-support (~> 3.1.0)
31
+ rspec-expectations (3.1.2)
32
+ diff-lcs (>= 1.2.0, < 2.0)
33
+ rspec-support (~> 3.1.0)
34
+ rspec-its (1.1.0)
35
+ rspec-core (>= 3.0.0)
36
+ rspec-expectations (>= 3.0.0)
37
+ rspec-mocks (3.1.3)
38
+ rspec-support (~> 3.1.0)
39
+ rspec-support (3.1.2)
40
+ slop (3.6.0)
41
+ thread_safe (0.3.4)
42
+ tzinfo (1.2.2)
43
+ thread_safe (~> 0.1)
44
+
45
+ PLATFORMS
46
+ ruby
47
+
48
+ DEPENDENCIES
49
+ activesupport (~> 4.2)
50
+ pry
51
+ pumper!
52
+ rspec (~> 3.1)
53
+ rspec-its (~> 1.1)
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014 Sverchkov Nikolay
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
data/README.md ADDED
@@ -0,0 +1,2 @@
1
+ [![Build Status](https://travis-ci.org/ssnikolay/pumper.svg?branch=master)](https://travis-ci.org/ssnikolay/pumper)
2
+
data/Rakefile ADDED
@@ -0,0 +1,3 @@
1
+ require 'bundler'
2
+
3
+ Bundler::GemHelper.install_tasks
data/bin/pumper ADDED
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env ruby
2
+ require 'optparse'
3
+ require 'pumper'
4
+
5
+ options = Hash.new
6
+
7
+ opts = OptionParser.new do |opts|
8
+ opts.banner = %q[Bumper]
9
+
10
+ opts.on('-p', '--project PROJECT_PATH', 'Set path to gem bump project') do |project|
11
+ options[:project] = project
12
+ end
13
+
14
+ # Default find in current folder file *.gemspec
15
+ opts.on('-s', '--gemspec GEMSPEC_PATH', 'Set path to gemspec') do |gemspec|
16
+ options[:gemspec] = gemspec
17
+ end
18
+
19
+ opts.on('-g', '--gemset GEMSET', 'Set path to gemspec') do |gemset|
20
+ options[:gemset] = gemset
21
+ end
22
+
23
+ opts.on('-a', '--absolute_path', 'If project absolute path') do
24
+ options[:absolute_path] = true
25
+ end
26
+
27
+ opts.on('-e', '--vendor', 'If need add to vendor path') do
28
+ options[:vendor] = true
29
+ end
30
+ end
31
+
32
+ opts.parse!
33
+
34
+ Pumper::Pump.new(Pumper::Configuration.configure!(options)).perform
@@ -0,0 +1,30 @@
1
+ module Command
2
+ class ExecuteError < StandardError; end
3
+
4
+ class BaseCommand
5
+ attr_reader :rvm_prefix, :options
6
+
7
+ def initialize(rvm_prefix = nil, options = {})
8
+ @rvm_prefix = rvm_prefix
9
+ @options = options
10
+ end
11
+
12
+ def execute
13
+ system(name) or raise Command::ExecuteError
14
+ end
15
+
16
+ def cancel
17
+ raise NotImplementedError
18
+ end
19
+
20
+ def name
21
+ raise NotImplementedError
22
+ end
23
+
24
+ private
25
+
26
+ def clean(cmd)
27
+ cmd.gsub(/\s+/, ' ').strip
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,11 @@
1
+ module Command
2
+ class GemInstallCommand < BaseCommand
3
+ def cancel
4
+ Command::GemUninstallCommand.new(rvm_prefix, { gem_name: options[:gem_name] }).execute
5
+ end
6
+
7
+ def name
8
+ clean "#{ rvm_prefix } gem install ./pkg/#{ options[:gem_file_name] } && cd #{ options[:project_path] } && #{ rvm_prefix } bundle install"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module Command
2
+ class GemInstallToVendorCommand < BaseCommand
3
+ def cancel
4
+ Command::GemUninstallCommand.new(rvm_prefix, { gem_name: options[:gem_name] }).execute
5
+ end
6
+
7
+ def name
8
+ clean "cp pkg/* #{ options[:project_path] }/vendor/cache && cd #{ options[:project_path] } && #{ rvm_prefix } bundle install --local"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module Command
2
+ class GemRebuildCommand < BaseCommand
3
+ def cancel
4
+ system('rm -rf pkg')
5
+ end
6
+
7
+ def name
8
+ 'rm -rf pkg && bundle exec rake build'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module Command
2
+ class GemUninstallCommand < BaseCommand
3
+ def cancel
4
+ puts "WARNING: You must reinstall gem #{ options[:gem_name] }"
5
+ end
6
+
7
+ def name
8
+ clean "#{ rvm_prefix } gem uninstall #{ options[:gem_name] } --all -x"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,57 @@
1
+ module Command
2
+ class Repository
3
+ attr_reader :options
4
+
5
+ def initialize(options)
6
+ @options = options
7
+ @cmds = []
8
+ end
9
+
10
+ def add(cmd, options = {})
11
+ @cmds << cmd.new(rvm_prefix, options)
12
+ end
13
+
14
+ def execute
15
+ with_transaction do |trash|
16
+ while @cmds.any?
17
+ command = @cmds.shift
18
+ puts(command.name.brown)
19
+
20
+ command.execute
21
+ trash.unshift(command)
22
+ end
23
+ end
24
+
25
+ puts 'Success bump current gem'.green
26
+ end
27
+
28
+ private
29
+
30
+ def rvm_prefix
31
+ if options[:gemset]
32
+ "rvm #{ options[:gemset] } exec "
33
+ end
34
+ end
35
+
36
+ def with_transaction
37
+ trash = []
38
+ wrapper = Command::StashGemfileLockCommand.new
39
+ begin
40
+ wrapper.execute
41
+ yield(trash)
42
+ rescue Exception => e
43
+ trash.each(&:cancel)
44
+ puts 'Fail bump current gem'.red
45
+ raise Command::ExecuteError
46
+ ensure
47
+ wrapper.cancel
48
+ end
49
+ end
50
+ end
51
+ end
52
+
53
+ class String
54
+ def red; "\033[31m#{self}\033[0m" end
55
+ def green; "\033[32m#{self}\033[0m" end
56
+ def brown; "\033[33m#{self}\033[0m" end
57
+ end
@@ -0,0 +1,11 @@
1
+ module Command
2
+ class StashGemfileLockCommand < BaseCommand
3
+ def cancel
4
+ system('mv ./Gemfile.lock.stash ./Gemfile.lock')
5
+ end
6
+
7
+ def name
8
+ 'mv ./Gemfile.lock ./Gemfile.lock.stash'
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,19 @@
1
+ module Pumper
2
+ class Configuration
3
+ class ProjectNotSet < StandardError; end
4
+
5
+ class << self
6
+ def configure!(options)
7
+ validate(options)
8
+
9
+ options
10
+ end
11
+
12
+ private
13
+
14
+ def validate(options)
15
+ raise ProjectNotSet if options[:project].nil?
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,39 @@
1
+ module Pumper
2
+ class Pump
3
+ def initialize(options)
4
+ @options = options
5
+ end
6
+
7
+ def perform
8
+ project = UpdatingProject.new(options[:project], options[:absolute_path])
9
+ commands = Command::Repository.new(options)
10
+
11
+ commands.add(Command::GemRebuildCommand)
12
+ commands.add(Command::GemUninstallCommand, { gem_name: specification.name })
13
+
14
+ if options[:vendor]
15
+ commands.add(Command::GemInstallToVendorCommand, { project_path: project.path, gem_name: specification.name })
16
+ else
17
+ commands.add(
18
+ Command::GemInstallCommand,
19
+ {
20
+ gem_name: specification.name,
21
+ gem_file_name: specification.gem_file_name,
22
+ project_path: project.path
23
+ }
24
+ )
25
+ end
26
+
27
+ project.bump_version!(specification)
28
+ commands.execute
29
+ end
30
+
31
+ private
32
+
33
+ attr_reader :options
34
+
35
+ def specification
36
+ @specification ||= Specification.new(options[:gemspec])
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,27 @@
1
+ require 'delegate'
2
+ module Pumper
3
+ class Specification < SimpleDelegator
4
+ def initialize(gemspec)
5
+ specification = File.read(gemspec_file(gemspec))
6
+ super(eval(specification))
7
+ end
8
+
9
+ def for_gemfile
10
+ "gem '#{ name }', '~> #{ version }'"
11
+ end
12
+
13
+ def gem_file_name
14
+ "#{ name }-#{ version }.gem"
15
+ end
16
+
17
+ def version
18
+ super.to_s
19
+ end
20
+
21
+ private
22
+
23
+ def gemspec_file(gemspec)
24
+ gemspec || File.join(Dir.pwd, Dir.glob('*.gemspec'))
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,44 @@
1
+ module Pumper
2
+ class UpdatingProject
3
+ class UndefinedGem < StandardError; end
4
+
5
+ attr_reader :project
6
+
7
+ def initialize(project, is_absolute_path)
8
+ @project = project
9
+ @is_absolute_path = is_absolute_path
10
+ @gemfile = gemfile_path
11
+ end
12
+
13
+ def bump_version!(specification)
14
+ text = File.read(@gemfile)
15
+ if gem_defined?(text, specification.name)
16
+ File.open(@gemfile, 'w') do |file|
17
+ file.puts(text.gsub(/#{ gem_name(specification.name) }.*/, specification.for_gemfile))
18
+ end
19
+ else
20
+ raise UpdatingProject::UndefinedGem
21
+ end
22
+ end
23
+
24
+ def path
25
+ @is_absolute_path ?
26
+ @project :
27
+ File.join(Dir.pwd, "../#{ @project }")
28
+ end
29
+
30
+ private
31
+
32
+ def gemfile_path
33
+ "#{ path }/Gemfile"
34
+ end
35
+
36
+ def gem_defined?(gemfile_text, gem)
37
+ gemfile_text.include?(gem_name(gem))
38
+ end
39
+
40
+ def gem_name(gem)
41
+ "gem '#{ gem }'"
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,3 @@
1
+ module Pumper
2
+ VERSION = '0.0.1'.freeze
3
+ end
data/lib/pumper.rb ADDED
@@ -0,0 +1,17 @@
1
+ module Command
2
+ autoload :BaseCommand, 'command/base_command'
3
+ autoload :GemUninstallCommand, 'command/gem_uninstall_command'
4
+ autoload :GemRebuildCommand, 'command/gem_rebuild_command'
5
+ autoload :GemInstallCommand, 'command/gem_install_command'
6
+ autoload :GemInstallToVendorCommand, 'command/gem_install_to_vendor_command'
7
+ autoload :StashGemfileLockCommand, 'command/stash_gemfile_lock_command'
8
+ autoload :Repository, 'command/repository'
9
+ end
10
+
11
+ module Pumper
12
+ autoload :Configuration, 'pumper/configuration'
13
+ autoload :Specification, 'pumper/specification'
14
+ autoload :UpdatingProject, 'pumper/updating_project'
15
+ autoload :Pump, 'pumper/pump'
16
+ end
17
+
data/pumper.gemspec ADDED
@@ -0,0 +1,26 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path('../lib', __FILE__)
3
+ require 'pumper/version'
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = 'pumper'
7
+ s.version = Pumper::VERSION.dup
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ['Nikolay Sverchkov']
10
+ s.email = ['ssnikolay@gmail.com']
11
+ s.homepage = 'https://github.com/ssnikolay/bumper'
12
+ s.summary = 'Gem for move another gems to dependent projects'
13
+ s.description = 'Gem for move another gems to dependent projects'
14
+
15
+ s.rubyforge_project = 'pumper'
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {spec}/*`.split("\n")
19
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
+ s.require_paths = ['lib']
21
+
22
+ s.add_development_dependency 'rspec', '~> 3.1'
23
+ s.add_development_dependency 'rspec-its', '~> 1.1'
24
+ s.add_development_dependency 'pry'
25
+ s.add_development_dependency 'activesupport', '~> 4.2'
26
+ end
File without changes
@@ -0,0 +1,7 @@
1
+ # -*- encoding: utf-8 -*-
2
+ Gem::Specification.new do |s|
3
+ s.name = 'simple_gem'
4
+ s.version = '1.2.3'
5
+ s.platform = Gem::Platform::RUBY
6
+ s.rubyforge_project = 'simple_gem'
7
+ end
@@ -0,0 +1,15 @@
1
+ describe Pumper::Configuration do
2
+ let(:options) { Hash.new }
3
+
4
+ subject { described_class.configure!(options) }
5
+
6
+ context 'when raise error ProjectNotSet' do
7
+ it { expect { subject }.to raise_error(Pumper::Configuration::ProjectNotSet) }
8
+ end
9
+
10
+ context 'when valid project' do
11
+ let(:options) { { project: 'cashier' } }
12
+
13
+ it { is_expected.to eq(options) }
14
+ end
15
+ end
@@ -0,0 +1,96 @@
1
+ require 'ostruct'
2
+ describe Pumper::Pump, stub_system: true do
3
+ let(:options) { Hash.new }
4
+ let(:default_options) { { project: 'simple_project' } }
5
+
6
+ let(:pumper) { described_class.new(options.merge(default_options)) }
7
+ let(:specification) do
8
+ OpenStruct.new(
9
+ name: 'simple_gem',
10
+ version: '1.0',
11
+ gem_file_name: 'simple_gem-1.0.gem'
12
+ )
13
+ end
14
+ before do
15
+ allow_any_instance_of(Pumper::Pump).to receive(:specification).and_return(specification)
16
+ allow_any_instance_of(Pumper::UpdatingProject).to receive(:bump_version!)
17
+ end
18
+
19
+ describe '.perform' do
20
+ subject do
21
+ pumper.perform
22
+ $OUTPUT.join("\n")
23
+ end
24
+
25
+ context 'when simple options' do
26
+ it 'should print base commands' do
27
+ should eq(
28
+ <<-output.strip_heredoc.strip
29
+ mv ./Gemfile.lock ./Gemfile.lock.stash
30
+ rm -rf pkg && bundle exec rake build
31
+ gem uninstall simple_gem --all -x
32
+ gem install ./pkg/simple_gem-1.0.gem && cd #{ Dir.pwd }/../simple_project && bundle install
33
+ mv ./Gemfile.lock.stash ./Gemfile.lock
34
+ output
35
+ )
36
+ end
37
+ end
38
+
39
+ context 'when vendor options' do
40
+ let(:options) { { vendor: true } }
41
+
42
+ it 'should print vendor commands' do
43
+ should eq(
44
+ <<-OUTPUT.strip_heredoc.strip
45
+ mv ./Gemfile.lock ./Gemfile.lock.stash
46
+ rm -rf pkg && bundle exec rake build
47
+ gem uninstall simple_gem --all -x
48
+ cp pkg/* #{ Dir.pwd }/../simple_project/vendor/cache && cd #{ Dir.pwd }/../simple_project && bundle install --local
49
+ mv ./Gemfile.lock.stash ./Gemfile.lock
50
+ OUTPUT
51
+ )
52
+ end
53
+ end
54
+
55
+ context 'when gemset options' do
56
+ let(:options) { { gemset: '1.9.3@simple_project' } }
57
+
58
+ it 'should print gemset commands' do
59
+ should eq(
60
+ <<-output.strip_heredoc.strip
61
+ mv ./Gemfile.lock ./Gemfile.lock.stash
62
+ rm -rf pkg && bundle exec rake build
63
+ rvm 1.9.3@simple_project exec gem uninstall simple_gem --all -x
64
+ rvm 1.9.3@simple_project exec gem install ./pkg/simple_gem-1.0.gem && cd #{ Dir.pwd }/../simple_project && rvm 1.9.3@simple_project exec bundle install
65
+ mv ./Gemfile.lock.stash ./Gemfile.lock
66
+ output
67
+ )
68
+ end
69
+ end
70
+
71
+ context 'when gem install failed' do
72
+ before { allow_any_instance_of(Command::GemInstallCommand).to receive(:system).and_return(false) }
73
+
74
+ it { expect{ subject }.to raise_error(Command::ExecuteError) }
75
+
76
+ describe 'canceled commands' do
77
+ subject do
78
+ pumper.perform rescue nil
79
+ $OUTPUT.join("\n")
80
+ end
81
+
82
+ it 'should brake on install and run cancel commands' do
83
+ should eq(
84
+ <<-output.strip_heredoc.strip
85
+ mv ./Gemfile.lock ./Gemfile.lock.stash
86
+ rm -rf pkg && bundle exec rake build
87
+ gem uninstall simple_gem --all -x
88
+ rm -rf pkg
89
+ mv ./Gemfile.lock.stash ./Gemfile.lock
90
+ output
91
+ )
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,10 @@
1
+ describe Pumper::Specification do
2
+ let(:gemspec) { File.expand_path('../../../fixtures/simple_gem.gemspec', __FILE__) }
3
+
4
+ subject { described_class.new(gemspec) }
5
+
6
+ its(:name) { is_expected.to eq('simple_gem') }
7
+ its(:version) { is_expected.to eq('1.2.3') }
8
+ its(:for_gemfile) { is_expected.to eq("gem 'simple_gem', '~> 1.2.3'") }
9
+ its(:gem_file_name) { is_expected.to eq('simple_gem-1.2.3.gem') }
10
+ end
@@ -0,0 +1,38 @@
1
+ require 'ostruct'
2
+ describe Pumper::UpdatingProject do
3
+ let(:project) { File.expand_path('../../../fixtures', __FILE__) }
4
+ let(:is_absolute_path) { true }
5
+ let(:project_gemfile) { described_class.new(project, is_absolute_path) }
6
+
7
+ before do
8
+ File.open(project_gemfile.send(:gemfile_path), 'w') { |f| f.write("gem 'simple_gem'") }
9
+ end
10
+
11
+ describe 'bump_version!' do
12
+ subject { File.read("#{ project }/Gemfile") }
13
+
14
+ let(:specification) do
15
+ OpenStruct.new(
16
+ name: 'simple_gem',
17
+ for_gemfile: "gem 'simple_gem', '~> 1.1.0'"
18
+ )
19
+ end
20
+ let(:bump_version) { project_gemfile.bump_version!(specification) }
21
+
22
+ it { should_not be_include(specification.for_gemfile) }
23
+
24
+ context 'when everything is good :)' do
25
+ before { bump_version }
26
+
27
+ it { should be_include(specification.for_gemfile) }
28
+ end
29
+
30
+ context 'when Gemfile have not bumped gem' do
31
+ before do
32
+ File.open(project_gemfile.send(:gemfile_path), 'w') { |f| f.write('') }
33
+ end
34
+
35
+ it { expect { bump_version }.to raise_error(Pumper::UpdatingProject::UndefinedGem) }
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,25 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'pry'
3
+ require 'rspec'
4
+ require 'pumper'
5
+ require 'rspec/its'
6
+ require 'active_support/all'
7
+
8
+ Dir['spec/support/**/*.rb'].each do |file|
9
+ require File.join(File.dirname(__FILE__), '..', file)
10
+ end
11
+
12
+ RSpec.configure do |config|
13
+ config.before(:each, stub_system: true) do
14
+ $OUTPUT = []
15
+ module Kernel
16
+ def system(cmd)
17
+ $OUTPUT << cmd
18
+ end
19
+ end
20
+ end
21
+
22
+ config.after(:each, stub_system: true) do
23
+ $OUTPUT = []
24
+ end
25
+ end
metadata ADDED
@@ -0,0 +1,130 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pumper
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Nikolay Sverchkov
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-01-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.1'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec-its
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.1'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: pry
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: activesupport
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '4.2'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '4.2'
69
+ description: Gem for move another gems to dependent projects
70
+ email:
71
+ - ssnikolay@gmail.com
72
+ executables:
73
+ - pumper
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - ".gitignore"
78
+ - ".rspec"
79
+ - ".travis.yml"
80
+ - Gemfile
81
+ - Gemfile.lock.stash
82
+ - LICENSE
83
+ - README.md
84
+ - Rakefile
85
+ - bin/pumper
86
+ - lib/command/base_command.rb
87
+ - lib/command/gem_install_command.rb
88
+ - lib/command/gem_install_to_vendor_command.rb
89
+ - lib/command/gem_rebuild_command.rb
90
+ - lib/command/gem_uninstall_command.rb
91
+ - lib/command/repository.rb
92
+ - lib/command/stash_gemfile_lock_command.rb
93
+ - lib/pumper.rb
94
+ - lib/pumper/configuration.rb
95
+ - lib/pumper/pump.rb
96
+ - lib/pumper/specification.rb
97
+ - lib/pumper/updating_project.rb
98
+ - lib/pumper/version.rb
99
+ - pumper.gemspec
100
+ - spec/fixtures/Gemfile
101
+ - spec/fixtures/simple_gem.gemspec
102
+ - spec/lib/pumper/configuration_spec.rb
103
+ - spec/lib/pumper/pump_spec.rb
104
+ - spec/lib/pumper/specification_spec.rb
105
+ - spec/lib/pumper/updating_project_spec.rb
106
+ - spec/spec_helper.rb
107
+ homepage: https://github.com/ssnikolay/bumper
108
+ licenses: []
109
+ metadata: {}
110
+ post_install_message:
111
+ rdoc_options: []
112
+ require_paths:
113
+ - lib
114
+ required_ruby_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ required_rubygems_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ requirements: []
125
+ rubyforge_project: pumper
126
+ rubygems_version: 2.2.2
127
+ signing_key:
128
+ specification_version: 4
129
+ summary: Gem for move another gems to dependent projects
130
+ test_files: []