view_server 0.0.1 → 0.0.2

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/bin/view_server ADDED
@@ -0,0 +1,91 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # server
4
+ require 'tmpdir'
5
+ require 'fileutils'
6
+ require 'digest'
7
+
8
+ require "rubygems"
9
+ require "clip"
10
+
11
+ class TmpFile
12
+ def self.open(prefix = "", suffix= "")
13
+ begin
14
+ digest = Digest::MD5.hexdigest((Time.now.to_f + rand(10000)).to_s)
15
+ file_name = File.join(Dir.tmpdir, prefix + digest + suffix )
16
+ File.open(file_name, 'w+' ) do |f|
17
+ yield f
18
+ end
19
+ ensure
20
+ FileUtils::rm(file_name) if File.exist?(file_name)
21
+ end
22
+ end
23
+ end
24
+
25
+ options = Clip do |p|
26
+ p.flag 's', 'server',:desc => 'Is a server', :default => false
27
+
28
+ p.optional 'p', 'port', :desc => 'The port', :default => 10021 do |v|
29
+ v.to_i # always deal with integers
30
+ end
31
+ p.flag 'c', 'copy_to_clipboard', :desc => "Send to clipboard"
32
+ p.flag 'P', 'paste_from_clipboard', :desc => "Read from clipboard"
33
+ p.flag 'v', 'verbose', :desc => 'Make it chatty'
34
+ end
35
+
36
+ if options.valid?
37
+ if options.verbose?
38
+ puts options.host
39
+ puts options.port
40
+ puts 'files:'
41
+ options.files.each do |f|
42
+ puts "\t#{f}"
43
+ end
44
+ end
45
+ else
46
+ # print error message(s) and usage
47
+ $stderr.puts options.to_s
48
+ end
49
+
50
+
51
+ require 'drb'
52
+
53
+ if options.server?
54
+ class Viewer
55
+ def affiche(file_ext, data)
56
+ TmpFile.open( "", "." + file_ext) do |a|
57
+ a << data
58
+ a.close
59
+ `open #{a.path} `
60
+ sleep 5 #We don't want to delete the file before it's loaded
61
+ end
62
+ end
63
+
64
+ def to_cb(data) # To clipboard
65
+ File.open("#{ENV['HOME']}/tmp/clipboard", "w"){|a| a << data}
66
+ IO.popen('pbcopy', 'w'){|a| a << data}
67
+ end
68
+
69
+ def paste # From clipboard
70
+ `pbpaste`
71
+ end
72
+ end
73
+
74
+ DRb.start_service "druby://localhost:#{options.port}", Viewer.new
75
+ puts DRb.uri
76
+
77
+ DRb.thread.join
78
+ else
79
+ DRb.start_service
80
+ obj = DRbObject.new(nil, "druby://localhost:#{options.port}")
81
+
82
+ if options.copy_to_clipboard?
83
+ obj.to_cb(STDIN.read)
84
+ elsif options.paste_from_clipboard?
85
+ print obj.paste
86
+ else
87
+ if obj.remaining?
88
+ affiche("csv", "2,4,5\n3,4,5")
89
+ end
90
+ end
91
+ end
@@ -1,3 +1,3 @@
1
1
  module ViewServer
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/view_server.gemspec CHANGED
@@ -6,7 +6,7 @@ require 'view_server/version'
6
6
  Gem::Specification.new do |gem|
7
7
  gem.name = "view_server"
8
8
  gem.version = ViewServer::VERSION
9
- # gem.add_dependency "put dependency here"
9
+ gem.add_dependency "clip"
10
10
  gem.add_development_dependency 'rake'
11
11
  gem.add_development_dependency "bundler", "~> 1.0"
12
12
  gem.add_development_dependency 'minitest'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: view_server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,6 +11,22 @@ bindir: bin
11
11
  cert_chain: []
12
12
  date: 2012-12-11 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: clip
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
14
30
  - !ruby/object:Gem::Dependency
15
31
  name: rake
16
32
  requirement: !ruby/object:Gem::Requirement
@@ -62,7 +78,8 @@ dependencies:
62
78
  description: Allow local viewing of remote files
63
79
  email:
64
80
  - chabotm@gmail.com
65
- executables: []
81
+ executables:
82
+ - view_server
66
83
  extensions: []
67
84
  extra_rdoc_files: []
68
85
  files:
@@ -71,6 +88,7 @@ files:
71
88
  - LICENSE.txt
72
89
  - README.md
73
90
  - Rakefile
91
+ - bin/view_server
74
92
  - lib/view_server.rb
75
93
  - lib/view_server/version.rb
76
94
  - test/test_helper.rb
@@ -90,7 +108,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
90
108
  version: '0'
91
109
  segments:
92
110
  - 0
93
- hash: -2895799753015935257
111
+ hash: -2501156995423652076
94
112
  required_rubygems_version: !ruby/object:Gem::Requirement
95
113
  none: false
96
114
  requirements:
@@ -99,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
99
117
  version: '0'
100
118
  segments:
101
119
  - 0
102
- hash: -2895799753015935257
120
+ hash: -2501156995423652076
103
121
  requirements: []
104
122
  rubyforge_project:
105
123
  rubygems_version: 1.8.24