right_popen 1.1.3 → 3.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.
@@ -1,58 +1,84 @@
1
- $:.push File.expand_path("../lib", __FILE__)
2
- require "right_popen/version"
3
-
4
- spec = Gem::Specification.new do |spec|
5
- is_windows = RUBY_PLATFORM =~ /mswin/
1
+ spec = ::Gem::Specification.new do |spec|
2
+ platforms = [:linux, :mswin, :mingw]
3
+ case RUBY_PLATFORM
4
+ when /mswin/
5
+ platform = :mswin
6
+ when /mingw/
7
+ if RUBY_VERSION =~ /^1\.9\.\d$/
8
+ platform = :mingw
9
+ else
10
+ fail 'This gem is for use with ruby 1.9 mingw only.'
11
+ end
12
+ else
13
+ platform = :linux
14
+ end
6
15
 
7
16
  spec.name = 'right_popen'
8
- spec.version = RightScale::RightPopen::VERSION
9
- spec.authors = ['Scott Messier', 'Raphael Simon', 'Graham Hughes']
10
- spec.email = 'scott@rightscale.com'
17
+ spec.version = '3.0.1'
18
+ spec.authors = ['Scott Messier', 'Raphael Simon', 'Tony Spataro']
19
+ spec.email = 'support@rightscale.com'
11
20
  spec.homepage = 'https://github.com/rightscale/right_popen'
12
- if is_windows
21
+ case platform
22
+ when :mswin
13
23
  spec.platform = 'x86-mswin32-60'
24
+ when :mingw
25
+ spec.platform = 'x86-mingw32'
14
26
  else
15
27
  spec.platform = Gem::Platform::RUBY
16
28
  end
17
- spec.summary = 'Provides a platform-independent popen implementation'
29
+ spec.summary = 'Provides a platform-independent popen implementation'
18
30
  spec.has_rdoc = true
19
31
  spec.rdoc_options = ["--main", "README.rdoc", "--title", "RightPopen"]
20
32
  spec.extra_rdoc_files = ["README.rdoc"]
21
- spec.required_ruby_version = '>= 1.8.6'
33
+ spec.required_ruby_version = '>= 1.9.3'
22
34
  spec.rubyforge_project = %q{right_popen}
23
35
 
24
36
  spec.description = <<-EOF
25
37
  RightPopen allows running external processes aynchronously while still
26
- capturing their standard and error outputs. It relies on EventMachine for most
27
- of its internal mechanisms. The Linux implementation is valid for any Linux
28
- platform but there is also a native implementation for Windows platforms.
38
+ capturing their standard and error outputs. It relies on EventMachine for the
39
+ asynchronous popen call but EM is not required for synchronous popen.
40
+ The Linux implementation is valid for any Linux platform but there is also a
41
+ native implementation for Windows platforms.
29
42
  EOF
30
43
 
31
- if is_windows
32
- extension_dir = "ext,"
44
+ case platform
45
+ when :mswin
46
+ extension_dir = 'ext,'
33
47
  else
34
- extension_dir = ""
48
+ extension_dir = ''
35
49
  end
36
- candidates = Dir.glob("{#{extension_dir}lib,spec}/**/*") +
37
- ["LICENSE", "README.rdoc", "Rakefile", "right_popen.gemspec"]
50
+ candidates = ::Dir.glob("{#{extension_dir}lib}/**/*") +
51
+ %w(LICENSE README.rdoc right_popen.gemspec)
52
+ exclusions = [
53
+ 'Makefile', '.obj', '.pdb', '.def', '.exp', '.lib',
54
+ 'win32/right_popen.so' # original .so directory, now mswin
55
+ ]
38
56
  candidates = candidates.delete_if do |item|
39
- item.include?("Makefile") || item.include?(".obj") || item.include?(".pdb") || item.include?(".def") || item.include?(".exp") || item.include?(".lib")
57
+ exclusions.any? { |exclusion| item.include?(exclusion) }
40
58
  end
41
- candidates = candidates.delete_if do |item|
42
- if is_windows
43
- item.include?("/linux/")
44
- else
45
- item.include?("/win32/")
46
- end
59
+
60
+ # remove files specific to other platforms.
61
+ case platform
62
+ when :mswin
63
+ candidates = candidates.delete_if { |item| item.include?('/linux/') }
64
+ candidates = candidates.delete_if { |item| item.include?('/mingw/') }
65
+ when :mingw
66
+ candidates = candidates.delete_if { |item| item.include?('/linux/') }
67
+ candidates = candidates.delete_if { |item| item.include?('/mswin/') }
68
+ else
69
+ candidates = candidates.delete_if { |item| item.include?('/windows/') }
47
70
  end
48
71
  spec.files = candidates.sort!
49
72
 
50
73
  # Current implementation supports >= 1.0.0
51
74
  spec.add_development_dependency(%q<eventmachine>, [">= 1.0.0"])
52
- if is_windows
53
- spec.add_runtime_dependency(%q<win32-process>, [">= 0.6.1"])
75
+ case platform
76
+ when :mswin
77
+ spec.add_runtime_dependency('win32-api', '1.4.5')
78
+ spec.add_runtime_dependency('windows-api', '0.4.0')
79
+ spec.add_runtime_dependency('windows-pr', '1.0.8')
80
+ spec.add_runtime_dependency('win32-dir', '0.3.5')
81
+ spec.add_runtime_dependency('win32-process', '0.6.1')
82
+ spec.add_development_dependency('win32console', '~> 1.3.0')
54
83
  end
55
- spec.add_development_dependency('rspec', "~> 1.3")
56
- spec.add_development_dependency('rake', "~> 0.8.7")
57
- spec.add_development_dependency('flexmock')
58
84
  end
metadata CHANGED
@@ -1,168 +1,79 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: right_popen
3
- version: !ruby/object:Gem::Version
4
- hash: 21
5
- prerelease:
6
- segments:
7
- - 1
8
- - 1
9
- - 3
10
- version: 1.1.3
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.0.1
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Scott Messier
14
8
  - Raphael Simon
15
- - Graham Hughes
9
+ - Tony Spataro
16
10
  autorequire:
17
11
  bindir: bin
18
12
  cert_chain: []
19
-
20
- date: 2013-07-17 00:00:00 Z
21
- dependencies:
22
- - !ruby/object:Gem::Dependency
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
13
+ date: 2016-03-09 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: eventmachine
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
27
19
  - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 23
30
- segments:
31
- - 1
32
- - 0
33
- - 0
20
+ - !ruby/object:Gem::Version
34
21
  version: 1.0.0
35
- version_requirements: *id001
36
- name: eventmachine
37
- type: :development
38
- - !ruby/object:Gem::Dependency
39
- prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- hash: 9
46
- segments:
47
- - 1
48
- - 3
49
- version: "1.3"
50
- version_requirements: *id002
51
- name: rspec
52
22
  type: :development
53
- - !ruby/object:Gem::Dependency
54
23
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
56
- none: false
57
- requirements:
58
- - - ~>
59
- - !ruby/object:Gem::Version
60
- hash: 49
61
- segments:
62
- - 0
63
- - 8
64
- - 7
65
- version: 0.8.7
66
- version_requirements: *id003
67
- name: rake
68
- type: :development
69
- - !ruby/object:Gem::Dependency
70
- prerelease: false
71
- requirement: &id004 !ruby/object:Gem::Requirement
72
- none: false
73
- requirements:
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
74
26
  - - ">="
75
- - !ruby/object:Gem::Version
76
- hash: 3
77
- segments:
78
- - 0
79
- version: "0"
80
- version_requirements: *id004
81
- name: flexmock
82
- type: :development
27
+ - !ruby/object:Gem::Version
28
+ version: 1.0.0
83
29
  description: |
84
30
  RightPopen allows running external processes aynchronously while still
85
- capturing their standard and error outputs. It relies on EventMachine for most
86
- of its internal mechanisms. The Linux implementation is valid for any Linux
87
- platform but there is also a native implementation for Windows platforms.
88
-
89
- email: scott@rightscale.com
31
+ capturing their standard and error outputs. It relies on EventMachine for the
32
+ asynchronous popen call but EM is not required for synchronous popen.
33
+ The Linux implementation is valid for any Linux platform but there is also a
34
+ native implementation for Windows platforms.
35
+ email: support@rightscale.com
90
36
  executables: []
91
-
92
37
  extensions: []
93
-
94
- extra_rdoc_files:
38
+ extra_rdoc_files:
95
39
  - README.rdoc
96
- files:
40
+ files:
97
41
  - LICENSE
98
42
  - README.rdoc
99
- - Rakefile
100
43
  - lib/right_popen.rb
101
- - lib/right_popen/linux/accumulator.rb
102
44
  - lib/right_popen/linux/popen3_async.rb
103
- - lib/right_popen/linux/popen3_sync.rb
104
45
  - lib/right_popen/linux/process.rb
105
- - lib/right_popen/linux/utilities.rb
46
+ - lib/right_popen/popen3_sync.rb
106
47
  - lib/right_popen/process_base.rb
107
48
  - lib/right_popen/process_status.rb
108
49
  - lib/right_popen/safe_output_buffer.rb
109
50
  - lib/right_popen/target_proxy.rb
110
- - lib/right_popen/version.rb
111
51
  - right_popen.gemspec
112
- - spec/background.rb
113
- - spec/increment.rb
114
- - spec/print_env.rb
115
- - spec/produce_mixed_output.rb
116
- - spec/produce_output.rb
117
- - spec/produce_status.rb
118
- - spec/produce_stderr_only.rb
119
- - spec/produce_stdout_only.rb
120
- - spec/right_popen/linux/accumulator_spec.rb
121
- - spec/right_popen/linux/utilities_spec.rb
122
- - spec/right_popen/safe_output_buffer_spec.rb
123
- - spec/right_popen_spec.rb
124
- - spec/runner.rb
125
- - spec/sleeper.rb
126
- - spec/spec_helper.rb
127
- - spec/stdout.rb
128
- - spec/writer.rb
129
52
  homepage: https://github.com/rightscale/right_popen
130
53
  licenses: []
131
-
54
+ metadata: {}
132
55
  post_install_message:
133
- rdoc_options:
134
- - --main
56
+ rdoc_options:
57
+ - "--main"
135
58
  - README.rdoc
136
- - --title
59
+ - "--title"
137
60
  - RightPopen
138
- require_paths:
61
+ require_paths:
139
62
  - lib
140
- required_ruby_version: !ruby/object:Gem::Requirement
141
- none: false
142
- requirements:
63
+ required_ruby_version: !ruby/object:Gem::Requirement
64
+ requirements:
143
65
  - - ">="
144
- - !ruby/object:Gem::Version
145
- hash: 59
146
- segments:
147
- - 1
148
- - 8
149
- - 6
150
- version: 1.8.6
151
- required_rubygems_version: !ruby/object:Gem::Requirement
152
- none: false
153
- requirements:
66
+ - !ruby/object:Gem::Version
67
+ version: 1.9.3
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
+ requirements:
154
70
  - - ">="
155
- - !ruby/object:Gem::Version
156
- hash: 3
157
- segments:
158
- - 0
159
- version: "0"
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
160
73
  requirements: []
161
-
162
74
  rubyforge_project: right_popen
163
- rubygems_version: 1.8.15
75
+ rubygems_version: 2.2.5
164
76
  signing_key:
165
- specification_version: 3
77
+ specification_version: 4
166
78
  summary: Provides a platform-independent popen implementation
167
79
  test_files: []
168
-
data/Rakefile DELETED
@@ -1,127 +0,0 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- require 'fileutils'
4
- require 'rake'
5
- require 'rake/clean'
6
- require 'rake/gempackagetask'
7
- require 'rake/rdoctask'
8
- require 'spec/rake/spectask'
9
- require 'rbconfig'
10
-
11
- def list_spec_files
12
- list = Dir['spec/**/*_spec.rb']
13
- list.delete_if { |path| path.include?('/linux/') } if RUBY_PLATFORM =~ /mswin/
14
- list
15
- end
16
-
17
- include Config
18
-
19
- Bundler::GemHelper.install_tasks
20
-
21
- # == Gem == #
22
-
23
- gemtask = Rake::GemPackageTask.new(Gem::Specification.load("right_popen.gemspec")) do |package|
24
- package.package_dir = ENV['PACKAGE_DIR'] || 'pkg'
25
- package.need_zip = true
26
- package.need_tar = true
27
- end
28
-
29
- directory gemtask.package_dir
30
-
31
- CLEAN.include(gemtask.package_dir)
32
-
33
- desc "Clean any build files for right_popen"
34
- task :win_clean do
35
- if RUBY_PLATFORM =~ /mswin/
36
- if File.exists?('ext/Makefile')
37
- Dir.chdir('ext') do
38
- sh 'nmake distclean'
39
- end
40
- end
41
- rm 'lib/win32/right_popen.so' if File.file?('lib/win32/right_popen.so')
42
- end
43
- end
44
- task :clean => :win_clean
45
-
46
- desc "Build right_popen (but don't install it)"
47
- task :build => [:clean] do
48
- if RUBY_PLATFORM =~ /mswin/
49
- Dir.chdir('ext') do
50
- ruby 'extconf.rb'
51
- sh 'nmake'
52
- end
53
- FileUtils::mkdir_p 'lib/win32'
54
- mv 'ext/right_popen.so', 'lib/win32'
55
- end
56
- end
57
-
58
- desc "Build a binary gem"
59
- task :gem => [:build] do
60
- if RUBY_PLATFORM =~ /mswin/
61
- # the built .so file must appear under 'lib/win32' for the windows gem and
62
- # the base gem task doesn't appear to handle this. this may be an issue with
63
- # calculating the file list in the gemspec before the .so has actually been
64
- # created. workaround is to invoke the gem build gemspec command line after
65
- # the build step produces the .so file.
66
- sh 'gem build right_popen.gemspec'
67
- FileUtils::rm_rf('pkg')
68
- FileUtils::mkdir_p('pkg')
69
- Dir.glob('*.gem').each { |gem_path| FileUtils::mv(gem_path, File.join('pkg', File.basename((gem_path)))) }
70
- end
71
- end
72
-
73
- desc 'Install the right_popen library as a gem'
74
- task :install_gem => [:gem] do
75
- Dir.chdir(File.dirname(__FILE__)) do
76
- file = Dir["pkg/*.gem"].first
77
- sh "gem install #{file}"
78
- end
79
- end
80
-
81
- desc 'Uninstalls and reinstalls the right_popen library as a gem'
82
- task :reinstall_gem do
83
- sh "gem uninstall right_popen"
84
- sh "rake install_gem"
85
- end
86
-
87
- # == Unit Tests == #
88
-
89
- task :specs => :spec
90
-
91
- desc "Run unit tests"
92
- Spec::Rake::SpecTask.new do |t|
93
- t.spec_files = list_spec_files
94
- end
95
-
96
- desc "Run unit tests with RCov"
97
- Spec::Rake::SpecTask.new(:rcov) do |t|
98
- t.spec_files = list_spec_files
99
- t.rcov = true
100
- end
101
-
102
- desc "Print Specdoc for unit tests"
103
- Spec::Rake::SpecTask.new(:doc) do |t|
104
- t.spec_opts = ["--format", "specdoc", "--dry-run"]
105
- t.spec_files = list_spec_files
106
- end
107
-
108
- # == Documentation == #
109
-
110
- desc "Generate API documentation to doc/rdocs/index.html"
111
- Rake::RDocTask.new do |rd|
112
- rd.rdoc_dir = 'doc/rdocs'
113
- rd.main = 'README.rdoc'
114
- rd.rdoc_files.include 'README.rdoc', "lib/**/*.rb"
115
-
116
- rd.options << '--inline-source'
117
- rd.options << '--line-numbers'
118
- rd.options << '--all'
119
- rd.options << '--fileboxes'
120
- rd.options << '--diagram'
121
- end
122
-
123
- # == Emacs integration == #
124
- desc "Rebuild TAGS file"
125
- task :tags do
126
- sh "rtags -R lib spec"
127
- end