view_server 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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