nwcopy 0.0.8 → 0.1.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.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nwcopy (0.0.7)
4
+ nwcopy (0.0.8)
5
5
  gist
6
6
  json
7
7
  multipart-post
@@ -10,14 +10,11 @@ GEM
10
10
  remote: http://rubygems.org/
11
11
  specs:
12
12
  gist (2.0.0)
13
- json (1.4.6)
13
+ json (1.5.1)
14
14
  multipart-post (1.1.0)
15
15
 
16
16
  PLATFORMS
17
17
  ruby
18
18
 
19
19
  DEPENDENCIES
20
- gist
21
- json
22
- multipart-post
23
20
  nwcopy!
@@ -4,27 +4,34 @@ The fool proof network copy & paste program. Well, maybe someday.
4
4
 
5
5
  = Usage
6
6
 
7
- Copy data from the clipboard (pbpaste).
7
+ Copy data from the clipboard (pbpaste).
8
8
  > nwcopy -p
9
9
  /Users/josh/Dropbox/nwcopy/f314eee55161b14f140ee07b358ba63ef54112ac
10
- Pastes to disk
10
+
11
+ Paste to STDOUT and the clipboard (pbcopy)
11
12
  > nwpaste
12
13
  <Contents of clipboard>
13
14
 
14
- Copy contents of a file to the clipboard (works with binaries)
15
+ Copy contents of a file to the clipboard (works with binaries)
15
16
  > nwcopy /path/to/file
16
17
  /Users/josh/Dropbox/nwcopy/e1c1675f009e65d8571bbab9243660da20a3b2a2
17
- Paste the file to disk
18
+
19
+ Paste the file to disk
18
20
  > nwpaste
19
21
  Pasted to file
20
22
 
21
- Pipe arbitrary whatever to the clipboard
23
+ Pipe arbitrary whatever to the clipboard
22
24
  > echo 'pipes work' | nwcopy
23
25
  /Users/josh/Dropbox/nwcopy/5293e79627710caf507fb9b841df51356650c78d
24
- Paste it back
26
+
27
+ Paste to STDOUT and the clipboard (pbcopy)
25
28
  > nwpaste
26
29
  pipes work
27
30
 
31
+ Paste a hash from nwcopy.net (shared or otherwise)
32
+ > nwpaste <hash>
33
+ Whatever that hash represented
34
+
28
35
  = Description
29
36
 
30
37
  nwcopy takes whatever is in the clipboard (or pipe or filename) and copies it to http://nwcopy.net. If you don't have nwcopy.net configured, it will copy to a file in your Dropbox folder ~/Dropbox/nwcopy/<sha1>
@@ -13,7 +13,7 @@ module Nwcopy
13
13
  end
14
14
 
15
15
  def self.copy
16
- data = data_from_options
16
+ data = copy_data_from_options
17
17
 
18
18
  unavailable = []
19
19
  plugins.each do |plugin|
@@ -26,11 +26,11 @@ module Nwcopy
26
26
  end
27
27
 
28
28
  def self.paste
29
- data_from_options
29
+ data = paste_data_from_options
30
30
  unavailable = []
31
31
  plugins.each do |plugin|
32
32
  if plugin.available?
33
- if clipboard = plugin.paste
33
+ if clipboard = plugin.paste(data)
34
34
  `echo "#{clipboard}" | pbcopy` unless `which pbcopy`.empty?
35
35
  return clipboard
36
36
  end
@@ -41,7 +41,15 @@ module Nwcopy
41
41
  end
42
42
 
43
43
  private
44
- def self.data_from_options
44
+ def self.paste_data_from_options
45
+ if ARGV.include? '--help'
46
+ help
47
+ else
48
+ ARGV.shift
49
+ end
50
+ end
51
+
52
+ def self.copy_data_from_options
45
53
  if ARGV.empty?
46
54
  nodata = ARGF.read_nonblock(1) rescue true
47
55
  else
@@ -49,27 +57,34 @@ module Nwcopy
49
57
  end
50
58
 
51
59
  if nodata || ARGV.include?('--help')
52
- puts 'nwcopy: network copy and paste.'
53
- puts 'Sign up at http://nwcopy.net.' unless Nwcopy::Client.available?
54
- puts "nwcopy.net account: #{Nwcopy::Client.credentials.first}" if Nwcopy::Client.available? rescue ''
55
- puts
56
- puts ' nwcopy <file>'
57
- puts ' Copies the file to nwcopy.net'
58
- puts ' nwcopy -p'
59
- puts ' Copies the contents of the clipboard (MacOS) to nwcopy.net'
60
- puts ' command | nwcopy'
61
- puts ' Copies the results of the piped command to nwcopy.net'
62
- puts
63
- puts ' nwpaste'
64
- puts ' Pastes the last thing you copied to nwcopy.net'
65
- puts ' If it is a file, it will be put into that file name.'
66
- puts ' Any piped input or clipboard will be printed to STDOUT.'
67
- puts
68
- exit
60
+ help
69
61
  elsif ARGV.include?('-p')
70
62
  StringIO.new `pbpaste`
71
63
  else
72
64
  ARGF
73
65
  end
74
66
  end
67
+
68
+ def self.help
69
+ puts 'nwcopy: network copy and paste.'
70
+ puts 'Sign up at http://nwcopy.net.' unless Nwcopy::Client.available?
71
+ puts "nwcopy.net account: #{Nwcopy::Client.credentials.first}" if Nwcopy::Client.available? rescue ''
72
+ puts
73
+ puts ' nwcopy <file>'
74
+ puts ' Copies the file to nwcopy.net'
75
+ puts ' nwcopy -p'
76
+ puts ' Copies the contents of the clipboard (MacOS) to nwcopy.net'
77
+ puts ' command | nwcopy'
78
+ puts ' Copies the results of the piped command to nwcopy.net'
79
+ puts
80
+ puts ' nwpaste'
81
+ puts ' Pastes the last thing you copied to nwcopy.net'
82
+ puts ' If it is a file, it will be put into that file name.'
83
+ puts ' Any piped input or clipboard will be printed to STDOUT.'
84
+ puts
85
+ puts ' nwpaste <hash>'
86
+ puts ' Pastes the provided hash from nwcopy.net'
87
+ puts
88
+ exit
89
+ end
75
90
  end
@@ -44,8 +44,13 @@ module Nwcopy
44
44
  end
45
45
 
46
46
 
47
- def self.paste
48
- url = URI.parse("#{base_url}/paste")
47
+ def self.paste url_or_hash = nil
48
+ url = if url_or_hash
49
+ hash = url_or_hash.split('/').last
50
+ URI.parse("#{base_url}/pastes/#{hash}")
51
+ else
52
+ URI.parse("#{base_url}/paste")
53
+ end
49
54
 
50
55
  req = Net::HTTP::Get.new(url.path)
51
56
  res = start req, url
@@ -35,7 +35,7 @@ module Nwcopy
35
35
  latest_file ? latest_file.mtime : nil
36
36
  end
37
37
 
38
- def self.paste
38
+ def self.paste ignored = nil
39
39
  latest_file.read
40
40
  end
41
41
 
@@ -28,7 +28,7 @@ module Nwcopy
28
28
  gist.write [{:filename => filename, :input => clipboard}], false
29
29
  end
30
30
 
31
- def self.paste
31
+ def self.paste ignored = nil
32
32
  gist.read latest_gist["repo"]
33
33
  end
34
34
 
@@ -1,3 +1,3 @@
1
1
  module Nwcopy
2
- VERSION = "0.0.8"
2
+ VERSION = "0.1.0"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nwcopy
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 27
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
+ - 1
8
9
  - 0
9
- - 8
10
- version: 0.0.8
10
+ version: 0.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Josh Kleinpeter