pastejour 1.1.0 → 1.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.
data/CHANGELOG.rdoc CHANGED
@@ -1,3 +1,11 @@
1
- === 1.0.0 (2009-02-27)
1
+ === 1.2.0 / 2009-06-22
2
+
3
+ * Update docs.
4
+ * Standardize project structure.
5
+ * Switch to correct MiniTest.
6
+ * Switch to new Hoe.
7
+ * Improve the command-line tool.
8
+
9
+ === 1.0.0 / 2009-02-27
2
10
 
3
11
  * Birthday!
data/Manifest.txt CHANGED
@@ -5,5 +5,4 @@ Rakefile
5
5
  bin/pastejour
6
6
  lib/pastejour.rb
7
7
  lib/pastejour/cli.rb
8
- lib/pastejour/version.rb
9
- test/pastejour/cli_test.rb
8
+ test/test_cli.rb
data/README.rdoc CHANGED
@@ -1,26 +1,31 @@
1
1
  = Pastejour
2
2
 
3
- Broadcast standard out using Bonjour.
3
+ * http://github.com/jbarnette/pastejour
4
+
5
+ == Description
6
+
7
+ Broadcast standard out using Bonjour. Pipe output to other people.
8
+ Pastejour is like pbcopy, but over the network!
4
9
 
5
10
  == Examples
6
11
 
7
- alice$ git diff | pastejour
8
- bob$ pastejour alice
9
-
10
- alice$ git diff | pastejour bob
11
- bob$ pastejour
12
-
13
- alice$ git diff | pastejour monkeys
14
- bob$ pastejour alice-monkeys
15
-
16
- alice$ git diff | pastejour monkeys
17
- bob$ pastejour -f
18
- Searching for servers (3 seconds)
19
- alice-monkeys
20
-
21
- # Copy the clipboard contents from one machine to another
22
- alice$ pbpaste | pastejour bob
23
- bob$ pastejour | pbcopy
12
+ alice$ git diff | pastejour
13
+ bob$ pastejour alice
14
+
15
+ alice$ git diff | pastejour bob
16
+ bob$ pastejour
17
+
18
+ alice$ git diff | pastejour monkeys
19
+ bob$ pastejour alice-monkeys
20
+
21
+ alice$ git diff | pastejour monkeys
22
+ bob$ pastejour -f
23
+ Searching for servers (3 seconds)
24
+ alice-monkeys
25
+
26
+ # Copy the clipboard contents from one machine to another
27
+ alice$ pbpaste | pastejour bob
28
+ bob$ pastejour | pbcopy
24
29
 
25
30
  == ORLY?
26
31
 
@@ -29,15 +34,19 @@ and out. By default, Pastejour will only stay up until the first
29
34
  person grabs your paste. If you want to let a bunch of people grab the
30
35
  same thing, shoot it out in multiple mode:
31
36
 
32
- alice$ git diff | pastejour -m # keeps on serving 'til you CTRL-C
33
-
37
+ alice$ git diff | pastejour -m # keeps on serving 'til you CTRL-C
38
+
34
39
  == Awesome!
35
40
 
36
41
  You know it.
37
42
 
38
43
  == Installation
39
44
 
40
- $ sudo gem install pastejour
45
+ $ gem install pastejour
46
+
47
+ == TODO
48
+
49
+ * Stop using dnssd, it's Mac OS X only.
41
50
 
42
51
  == License
43
52
 
data/Rakefile CHANGED
@@ -1,18 +1,14 @@
1
1
  require "rubygems"
2
2
  require "hoe"
3
3
 
4
- require "./lib/pastejour/version.rb"
4
+ Hoe.spec "pastejour" do
5
+ developer "John Barnette", "jbarnette@rubyforge.org"
6
+ developer "Evan Phoenix", "evan@fallingsnow.net"
5
7
 
6
- Hoe.new "pastejour", Pastejour::VERSION do |p|
7
- p.developer "John Barnette", "jbarnette@rubyforge.org"
8
+ self.extra_rdoc_files = FileList["*.rdoc"]
9
+ self.history_file = "CHANGELOG.rdoc"
10
+ self.readme_file = "README.rdoc"
11
+ self.testlib = :minitest
8
12
 
9
- p.url = "http://github.com/jbarnette/pastejour"
10
- p.history_file = "CHANGELOG.rdoc"
11
- p.readme_file = "README.rdoc"
12
- p.extra_rdoc_files = [p.readme_file]
13
- p.need_tar = false
14
- p.test_globs = %w(test/**/*_test.rb)
15
- p.testlib = :minitest
16
-
17
- p.extra_deps << "dnssd"
13
+ extra_deps << "dnssd"
18
14
  end
data/bin/pastejour CHANGED
@@ -2,19 +2,17 @@
2
2
 
3
3
  require "pastejour/cli"
4
4
 
5
- opts = Pastejour::Cli.new STDOUT, ARGV
6
-
7
- if opts.run?
8
- if opts.list?
5
+ Pastejour::Cli.new STDOUT, ARGV do |cli|
6
+ if cli.list?
9
7
  Pastejour.list
10
8
  elsif $stdin.tty?
11
- name = /#{ENV["USER"]}$/ if opts.name.nil? || opts.name.empty?
9
+ name = /#{ENV["USER"]}$/ if cli.name.nil? || cli.name.empty?
12
10
  $stdout.write Pastejour.get(name)
13
11
  $stdout.flush
14
12
  else
15
- name = [ENV["USER"], opts.name].compact.join "-"
13
+ name = [ENV["USER"], cli.name].compact.join "-"
16
14
  contents = $stdin.read
17
- Pastejour.serve name, opts.multiple?, contents
18
- $stdout.puts contents if opts.tee?
15
+ Pastejour.serve name, cli.multiple?, contents
16
+ $stdout.puts contents if cli.tee?
19
17
  end
20
18
  end
data/lib/pastejour/cli.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  require "optparse"
2
2
  require "pastejour"
3
- require "pastejour/version"
4
3
 
5
4
  module Pastejour
6
5
  class Cli
@@ -39,9 +38,11 @@ module Pastejour
39
38
  end
40
39
 
41
40
  opts.separator ""
42
-
43
41
  opts.parse! args
42
+
44
43
  @name = args.shift
44
+
45
+ yield self if @run && block_given?
45
46
  end
46
47
  end
47
48
 
data/lib/pastejour.rb CHANGED
@@ -1,4 +1,3 @@
1
- require "rubygems"
2
1
  require "dnssd"
3
2
  require "set"
4
3
  require "socket"
@@ -7,6 +6,8 @@ require "webrick"
7
6
  Thread.abort_on_exception = true
8
7
 
9
8
  module Pastejour
9
+ VERSION = "1.2.0"
10
+
10
11
  include Socket::Constants
11
12
 
12
13
  Paste = Struct.new(:name, :host, :port)
@@ -18,12 +19,15 @@ module Pastejour
18
19
  service = DNSSD.browse(SERVICE) do |reply|
19
20
  servers[reply.name] ||= reply
20
21
  end
22
+
21
23
  STDERR.puts "Searching for servers (3 seconds)"
24
+
22
25
  # Wait for something to happen
23
26
  sleep 3
27
+
24
28
  service.stop
25
- servers.each { |string,obj|
26
- name, port = string.split ":"
29
+ servers.each { |string,obj|
30
+ name, port = string.split ":"
27
31
  STDERR.puts "Found pastejour at '#{name}'"
28
32
  }
29
33
  end
@@ -59,7 +63,6 @@ module Pastejour
59
63
  STDERR.puts " #{host.name} (#{host.host}:#{host.port})"
60
64
  end
61
65
  else
62
- # Set is weird. There is no #[] or #at
63
66
  hosts.each do |host|
64
67
  STDERR.puts "(#{host.name} from #{host.host}:#{host.port})"
65
68
  sock = TCPSocket.open host.host, host.port
@@ -71,7 +74,7 @@ module Pastejour
71
74
  def self.serve(name, multiple, contents)
72
75
  tr = DNSSD::TextRecord.new
73
76
  tr["description"] = "A paste."
74
-
77
+
75
78
  DNSSD.register(name, SERVICE, "local", PORT, tr.encode) do |reply|
76
79
  STDERR.puts "Pasting #{name}..."
77
80
  end
@@ -1,6 +1,5 @@
1
- require "minitest/unit"
1
+ require "minitest/autorun"
2
2
  require "pastejour/cli"
3
- require "pastejour/version"
4
3
 
5
4
  module Pastejour
6
5
  class CliTest < MiniTest::Unit::TestCase
metadata CHANGED
@@ -1,15 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pastejour
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Barnette
8
+ - Evan Phoenix
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
12
 
12
- date: 2009-02-27 00:00:00 -08:00
13
+ date: 2009-06-22 00:00:00 -07:00
13
14
  default_executable:
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
@@ -30,17 +31,21 @@ dependencies:
30
31
  requirements:
31
32
  - - ">="
32
33
  - !ruby/object:Gem::Version
33
- version: 1.9.0
34
+ version: 2.2.0
34
35
  version:
35
- description: ""
36
+ description: |-
37
+ Broadcast standard out using Bonjour. Pipe output to other people.
38
+ Pastejour is like pbcopy, but over the network!
36
39
  email:
37
40
  - jbarnette@rubyforge.org
41
+ - evan@fallingsnow.net
38
42
  executables:
39
43
  - pastejour
40
44
  extensions: []
41
45
 
42
46
  extra_rdoc_files:
43
47
  - Manifest.txt
48
+ - CHANGELOG.rdoc
44
49
  - README.rdoc
45
50
  files:
46
51
  - CHANGELOG.rdoc
@@ -50,10 +55,11 @@ files:
50
55
  - bin/pastejour
51
56
  - lib/pastejour.rb
52
57
  - lib/pastejour/cli.rb
53
- - lib/pastejour/version.rb
54
- - test/pastejour/cli_test.rb
58
+ - test/test_cli.rb
55
59
  has_rdoc: true
56
60
  homepage: http://github.com/jbarnette/pastejour
61
+ licenses: []
62
+
57
63
  post_install_message:
58
64
  rdoc_options:
59
65
  - --main
@@ -75,9 +81,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
81
  requirements: []
76
82
 
77
83
  rubyforge_project: pastejour
78
- rubygems_version: 1.3.1
84
+ rubygems_version: 1.3.4
79
85
  signing_key:
80
- specification_version: 2
81
- summary: ""
86
+ specification_version: 3
87
+ summary: Broadcast standard out using Bonjour
82
88
  test_files:
83
- - test/pastejour/cli_test.rb
89
+ - test/test_cli.rb
@@ -1,3 +0,0 @@
1
- module Pastejour
2
- VERSION = "1.1.0"
3
- end