clippy 0.1.3 → 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.
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
+