clippy 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/clippy.rb +20 -16
  2. data/readme.txt +1 -1
  3. metadata +84 -55
data/lib/clippy.rb CHANGED
@@ -9,12 +9,8 @@ end
9
9
  class Clippy
10
10
  private_class_method :new
11
11
 
12
- ['UnsupportedOS', 'UnknownClipboard', 'InvalidEncoding'].each do |klass|
13
- class_eval <<-CLASS
14
- class #{klass} < StandardError
15
- self
16
- end
17
- CLASS
12
+ [:UnsupportedOS, :UnknownClipboard, :InvalidEncoding].each do |status|
13
+ const_set(status, Class.new(StandardError))
18
14
  end
19
15
 
20
16
  class << self
@@ -22,7 +18,7 @@ class Clippy
22
18
  ##
23
19
  # Version.
24
20
  def version
25
- '0.1.3'
21
+ '0.2.0'
26
22
  end
27
23
 
28
24
  def binary_exist?(bin)
@@ -32,6 +28,10 @@ class Clippy
32
28
  ##
33
29
  # Copy
34
30
  def copy(data)
31
+ unless data.is_a?(String)
32
+ raise(ArgumentError, 'Clippy can only copy a string')
33
+ end
34
+
35
35
  ##
36
36
  # For shit like Pidgin..
37
37
  data.gsub!(/\n/, "\r\n")
@@ -52,7 +52,7 @@ class Clippy
52
52
  case true
53
53
  when binary_exist?('xsel')
54
54
  ['-p', '-b', '-s'].each do |opt|
55
- Open3.popen3("xsel -i #{opt}") do |stdin|
55
+ Open3.popen3("xsel -i #{opt}") do |stdin, _, _|
56
56
  stdin << data
57
57
  end
58
58
  end
@@ -62,12 +62,12 @@ class Clippy
62
62
  end
63
63
  when binary_exist?('xclip')
64
64
  ['primary', 'secondary', 'clipboard'].each do |opt|
65
- Open3.popen3("xclip -i -selection #{opt}") do |stdin|
65
+ Open3.popen3("xclip -i -selection #{opt}") do |stdin, _, _|
66
66
  stdin << data
67
67
  end
68
68
  end
69
69
  else
70
- raise(UnknownClipboard, 'Could not find a clipboard util.')
70
+ raise(UnknownClipboard, 'Clippy requires xsel, xclip or pbcopy.')
71
71
  end
72
72
  end
73
73
 
@@ -77,9 +77,13 @@ class Clippy
77
77
  ##
78
78
  # Paste
79
79
  def paste(encoding = nil, which = nil)
80
- if defined? Encoding and encoding
80
+ if defined?(Encoding) && encoding
81
81
  unless Encoding.list.map(&:to_s).include?(encoding)
82
- raise(InvalidEncoding, 'The encoding you selected is unsupported')
82
+ if ['clipboard', 'primary', 'secondary'].include?(encoding)
83
+ which, encoding = encoding, nil
84
+ else
85
+ raise(InvalidEncoding, 'The encoding you selected is unsupported')
86
+ end
83
87
  end
84
88
  end
85
89
 
@@ -98,11 +102,11 @@ class Clippy
98
102
  when 'secondary' then cmd+= ' -s'
99
103
  end
100
104
 
101
- Open3.popen3(cmd) do |_, stdout|
105
+ Open3.popen3(cmd) do |_, stdout, _|
102
106
  data = stdout.read
103
107
  end
104
108
  when binary_exist?('pbpaste')
105
- Open3.popen('pbpaste') do |_, stdout|
109
+ Open3.popen('pbpaste') do |_, stdout, _|
106
110
  data = stdout.read || ''
107
111
  end
108
112
  when binary_exist?('xclip')
@@ -114,13 +118,13 @@ class Clippy
114
118
  when 'secondary' then cmd+= ' secondary'
115
119
  end
116
120
 
117
- Open3.popen3(cmd) do |_, stdout|
121
+ Open3.popen3(cmd) do |_, stdout, _|
118
122
  data = stdout.read || ''
119
123
  end
120
124
  end
121
125
  end
122
126
 
123
- if defined? Encoding
127
+ if defined?(Encoding)
124
128
  if data.encoding.name != Encoding.default_external
125
129
  data.encode(encoding ? encoding : Encoding.default_external)
126
130
  end
data/readme.txt CHANGED
@@ -11,8 +11,8 @@ Requirements:
11
11
  Development:
12
12
  cucumber
13
13
  rake
14
- rspec
15
14
  minitest
15
+ rspec-expectations
16
16
 
17
17
  All other distros should work with 1.8+
18
18
 
metadata CHANGED
@@ -1,70 +1,90 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: clippy
3
- version: !ruby/object:Gem::Version
4
- version: 0.1.3
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 2
9
+ - 0
10
+ version: 0.2.0
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Jordon Bedwell
9
14
  - Nathaniel Davidson
10
15
  autorequire:
11
16
  bindir: bin
12
17
  cert_chain: []
13
- date: 2011-12-27 00:00:00.000000000 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: rspec
17
- requirement: &15902760 !ruby/object:Gem::Requirement
18
+
19
+ date: 2011-12-31 00:00:00 Z
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rspec-expectations
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
18
25
  none: false
19
- requirements:
20
- - - ! '>='
21
- - !ruby/object:Gem::Version
22
- version: '0'
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
23
33
  type: :development
24
- prerelease: false
25
- version_requirements: *15902760
26
- - !ruby/object:Gem::Dependency
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
27
36
  name: rake
28
- requirement: &15902220 !ruby/object:Gem::Requirement
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
29
39
  none: false
30
- requirements:
31
- - - ! '>='
32
- - !ruby/object:Gem::Version
33
- version: '0'
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
46
+ version: "0"
34
47
  type: :development
35
- prerelease: false
36
- version_requirements: *15902220
37
- - !ruby/object:Gem::Dependency
48
+ version_requirements: *id002
49
+ - !ruby/object:Gem::Dependency
38
50
  name: minitest
39
- requirement: &15901760 !ruby/object:Gem::Requirement
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
40
53
  none: false
41
- requirements:
42
- - - ! '>='
43
- - !ruby/object:Gem::Version
44
- version: '0'
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ hash: 3
58
+ segments:
59
+ - 0
60
+ version: "0"
45
61
  type: :development
46
- prerelease: false
47
- version_requirements: *15901760
48
- - !ruby/object:Gem::Dependency
62
+ version_requirements: *id003
63
+ - !ruby/object:Gem::Dependency
49
64
  name: cucumber
50
- requirement: &15901320 !ruby/object:Gem::Requirement
65
+ prerelease: false
66
+ requirement: &id004 !ruby/object:Gem::Requirement
51
67
  none: false
52
- requirements:
53
- - - ! '>='
54
- - !ruby/object:Gem::Version
55
- version: '0'
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ hash: 3
72
+ segments:
73
+ - 0
74
+ version: "0"
56
75
  type: :development
57
- prerelease: false
58
- version_requirements: *15901320
76
+ version_requirements: *id004
59
77
  description: A utility to access the systems clipboard.
60
- email:
78
+ email:
61
79
  - jordon@envygeeks.com
62
80
  - nathaniel.davidson@gmail.com
63
- executables:
81
+ executables:
64
82
  - clippy
65
83
  extensions: []
84
+
66
85
  extra_rdoc_files: []
67
- files:
86
+
87
+ files:
68
88
  - lib/clippy.rb
69
89
  - bin/clippy
70
90
  - readme.txt
@@ -72,28 +92,37 @@ files:
72
92
  - rakefile.rb
73
93
  - gemfile.rb
74
94
  homepage: https://github.com/envygeeks/clippy
75
- licenses:
95
+ licenses:
76
96
  - MIT
77
97
  post_install_message:
78
98
  rdoc_options: []
79
- require_paths:
99
+
100
+ require_paths:
80
101
  - lib
81
- required_ruby_version: !ruby/object:Gem::Requirement
102
+ required_ruby_version: !ruby/object:Gem::Requirement
82
103
  none: false
83
- requirements:
84
- - - ! '>='
85
- - !ruby/object:Gem::Version
86
- version: '0'
87
- required_rubygems_version: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ hash: 3
108
+ segments:
109
+ - 0
110
+ version: "0"
111
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
112
  none: false
89
- requirements:
90
- - - ! '>='
91
- - !ruby/object:Gem::Version
92
- version: '0'
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ hash: 3
117
+ segments:
118
+ - 0
119
+ version: "0"
93
120
  requirements: []
121
+
94
122
  rubyforge_project:
95
- rubygems_version: 1.8.11
123
+ rubygems_version: 1.8.10
96
124
  signing_key:
97
125
  specification_version: 3
98
126
  summary: A utility to access the systems clipboard.
99
127
  test_files: []
128
+