clipboard 0.6.0 → 0.7.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.
@@ -16,10 +16,8 @@ Have fun ;)
16
16
  * +Zucker+ gem
17
17
 
18
18
  === TODO
19
- * Automatically require the <tt>win32-clipboard</tt> gem - but only on windows!
20
19
  * Don't depend on +xclip+
21
20
  * Don't depend on the <tt>win32-clipboard</tt> gem (or fix the 1.9 issues with the gem)
22
- * Error management?
23
21
 
24
22
  Feel free to report bugs or to implement one of the above features ;)
25
23
 
data/Rakefile CHANGED
@@ -1,6 +1,5 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
- # require 'bundler'
4
3
 
5
4
  begin
6
5
  require 'jeweler'
@@ -12,11 +11,10 @@ begin
12
11
  gem.homepage = "http://github.com/janlelis/clipboard"
13
12
  gem.authors = ["Jan Lelis"]
14
13
  gem.add_development_dependency "jeweler", ">= 0"
15
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
16
14
  gem.add_dependency('zucker', '>= 4')
17
- gem.requirements << 'To use this gem on linux (or other X), you need xclip'
18
- gem.requirements << 'To use this gem on windows, you need the win32-clipboard gem'
19
- # gem.add_bundler_dependencies
15
+ gem.requirements << 'on linux (or other X), you need xclip'
16
+ gem.requirements << 'on windows, you need the win32-clipboard gem'
17
+
20
18
  end
21
19
  Jeweler::GemcutterTasks.new
22
20
  rescue LoadError
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.0
1
+ 0.7.0
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{clipboard}
8
- s.version = "0.6.0"
8
+ s.version = "0.7.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jan Lelis"]
@@ -61,7 +61,7 @@ Gem::Specification.new do |s|
61
61
  s.homepage = %q{http://github.com/janlelis/clipboard}
62
62
  s.rdoc_options = ["--charset=UTF-8"]
63
63
  s.require_paths = ["lib"]
64
- s.requirements = ["To use this gem on linux (or other X), you need xclip", "To use this gem on windows, you need the win32-clipboard gem"]
64
+ s.requirements = ["on linux (or other X), you need xclip", "on windows, you need the win32-clipboard gem"]
65
65
  s.rubygems_version = %q{1.3.7}
66
66
  s.summary = %q{Access the clipboard on all systems}
67
67
 
@@ -1,8 +1,17 @@
1
1
  require 'zucker/os'
2
2
  require 'zucker/alias_for'
3
+ require 'stringio'
3
4
 
4
5
  require File.expand_path '../../version', __FILE__
5
6
 
7
+ def capture_stderr
8
+ capture = StringIO.new
9
+ restore, $stderr = $stderr, capture
10
+ yield
11
+ $stderr = restore
12
+ capture.string
13
+ end
14
+
6
15
  class << Clipboard ||= Module.new
7
16
  case # OS
8
17
  when OS.linux? || OS.mac? || OS.bsd? || OS.posix?
@@ -14,10 +23,21 @@ class << Clipboard ||= Module.new
14
23
  else # linuX
15
24
  WriteCommand = 'xclip'
16
25
  ReadCommand = 'xclip -o'
26
+
27
+ # catch dependency errors
28
+ Open3.popen3( "xclip -version" ){ |_, _, error|
29
+ unless error.read =~ /^xclip version/
30
+ raise "clipboard -\n" +
31
+ "Could not find required prgram xclip\n" +
32
+ "You can install it (on debian/ubuntu) with sudo apt-get install xclip"
33
+ end
34
+ }
17
35
  end
18
36
 
19
37
  def write(data)
20
- Open3.popen3( WriteCommand ){ |input, _, _| input << data }
38
+ Open3.popen3( WriteCommand ){ |input, _, _|
39
+ input << data
40
+ }
21
41
  read # or true or nil?
22
42
  end
23
43
 
@@ -29,7 +49,13 @@ class << Clipboard ||= Module.new
29
49
  write ''
30
50
  end
31
51
  when OS.windows?
32
- require 'win32/clipboard'
52
+ begin
53
+ require 'win32/clipboard'
54
+ rescue LoadError
55
+ raise "clipboard -\n" +
56
+ "Could not load the required win32-clipboard gem\n"
57
+ "You can install it with gem install win32-clipboard"
58
+ end
33
59
 
34
60
  def write(data)
35
61
  Win32::Clipboard.set_data( data )
@@ -48,6 +74,17 @@ class << Clipboard ||= Module.new
48
74
 
49
75
  alias_for :write, :copy
50
76
  alias_for :read, :paste
77
+
78
+ # private
79
+
80
+ def capture_stdout
81
+ capture = StringIO.new
82
+ restore, $stdout = $stdout, capture
83
+ yield
84
+ $stdout = restore
85
+ capture.string
86
+ end
87
+
51
88
  end
52
89
 
53
90
  # J-_-L
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clipboard
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 3
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
- - 6
8
+ - 7
8
9
  - 0
9
- version: 0.6.0
10
+ version: 0.7.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - Jan Lelis
@@ -25,6 +26,7 @@ dependencies:
25
26
  requirements:
26
27
  - - ">="
27
28
  - !ruby/object:Gem::Version
29
+ hash: 3
28
30
  segments:
29
31
  - 0
30
32
  version: "0"
@@ -38,6 +40,7 @@ dependencies:
38
40
  requirements:
39
41
  - - ">="
40
42
  - !ruby/object:Gem::Version
43
+ hash: 11
41
44
  segments:
42
45
  - 4
43
46
  version: "4"
@@ -107,6 +110,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
107
110
  requirements:
108
111
  - - ">="
109
112
  - !ruby/object:Gem::Version
113
+ hash: 3
110
114
  segments:
111
115
  - 0
112
116
  version: "0"
@@ -115,12 +119,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
119
  requirements:
116
120
  - - ">="
117
121
  - !ruby/object:Gem::Version
122
+ hash: 3
118
123
  segments:
119
124
  - 0
120
125
  version: "0"
121
126
  requirements:
122
- - To use this gem on linux (or other X), you need xclip
123
- - To use this gem on windows, you need the win32-clipboard gem
127
+ - on linux (or other X), you need xclip
128
+ - on windows, you need the win32-clipboard gem
124
129
  rubyforge_project:
125
130
  rubygems_version: 1.3.7
126
131
  signing_key: