vrome 1.0.1 → 1.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/Gemfile +4 -0
- data/README.txt +18 -2
- data/Rakefile +1 -13
- data/bin/vrome +61 -2
- data/lib/vrome.rb +4 -2
- data/lib/vrome/version.rb +3 -0
- data/vrome.gemspec +24 -0
- metadata +42 -68
- data/History.txt +0 -6
- data/Manifest.txt +0 -7
- data/lib/server.rb +0 -60
data/Gemfile
ADDED
data/README.txt
CHANGED
@@ -1,10 +1,26 @@
|
|
1
|
-
=
|
1
|
+
= Vrome
|
2
|
+
|
3
|
+
== Install
|
4
|
+
|
5
|
+
0, Install ruby
|
6
|
+
|
7
|
+
1, Install Vrome as RubyGem
|
8
|
+
$ sudo gem install vrome
|
9
|
+
|
10
|
+
2, Start the server
|
11
|
+
$ sudo vrome
|
12
|
+
|
13
|
+
3, Auto start after login
|
14
|
+
|
15
|
+
// Linux
|
16
|
+
$ echo "nohup sudo vrome > /dev/null &" >> ~/.xprofile
|
17
|
+
$ nohup sudo vrome > /dev/null &
|
2
18
|
|
3
19
|
== LICENSE:
|
4
20
|
|
5
21
|
(The MIT License)
|
6
22
|
|
7
|
-
Copyright (c) 2010 Jinzhu
|
23
|
+
Copyright (c) 2010 ~ Jinzhu
|
8
24
|
|
9
25
|
Permission is hereby granted, free of charge, to any person obtaining
|
10
26
|
a copy of this software and associated documentation files (the
|
data/Rakefile
CHANGED
@@ -1,13 +1 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require 'rubygems'
|
4
|
-
require 'hoe'
|
5
|
-
require 'lib/vrome'
|
6
|
-
|
7
|
-
Hoe.spec 'vrome' do
|
8
|
-
developer('Jinzhu', 'wosmvp+vrome@gmail.com')
|
9
|
-
|
10
|
-
# self.rubyforge_name = 'vrome' # if different than 'vrome'
|
11
|
-
end
|
12
|
-
|
13
|
-
# vim: syntax=ruby
|
1
|
+
require "bundler/gem_tasks"
|
data/bin/vrome
CHANGED
@@ -1,4 +1,63 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
# Jinzhu (wosmvp@gmail.com)
|
3
2
|
|
4
|
-
|
3
|
+
require 'rubygems'
|
4
|
+
require 'webrick'
|
5
|
+
require 'tempfile'
|
6
|
+
require 'json'
|
7
|
+
|
8
|
+
class VromeServer < WEBrick::HTTPServlet::AbstractServlet
|
9
|
+
|
10
|
+
def do_POST(request, response)
|
11
|
+
request = JSON.parse(request.body)
|
12
|
+
status, content_type, body = self.send(request['method'].to_sym,request)
|
13
|
+
|
14
|
+
response.status = status
|
15
|
+
response['Content-Type'] = content_type
|
16
|
+
response.body = body
|
17
|
+
end
|
18
|
+
|
19
|
+
def open_editor(request)
|
20
|
+
editor = request['editor']
|
21
|
+
tmpfile = Tempfile.new('editor')
|
22
|
+
tmpfile.write request['data']
|
23
|
+
tmpfile.flush
|
24
|
+
editor = 'gvim -f' if editor == 'gvim' # Foreground: Don't fork when starting GUI
|
25
|
+
system("#{editor} #{tmpfile.path}")
|
26
|
+
text = File.read(tmpfile.path)
|
27
|
+
tmpfile.delete
|
28
|
+
|
29
|
+
return 200, "text/plain", text
|
30
|
+
end
|
31
|
+
|
32
|
+
def get_configure(request)
|
33
|
+
config_file = File.join(ENV['HOME'],'.vromerc')
|
34
|
+
vromeConfig = {:set => {},:imap => {},:map => {},:cmap => {}};
|
35
|
+
|
36
|
+
if File.exist?(config_file)
|
37
|
+
File.read(config_file).split("\n").map do |line|
|
38
|
+
array = line.split(/\s+/)
|
39
|
+
case line
|
40
|
+
when /^imap\s+/
|
41
|
+
vromeConfig[:imap][array[1]] = array[2];
|
42
|
+
when /^map\s+/
|
43
|
+
vromeConfig[:map][array[1]] = array[2];
|
44
|
+
when /^cmap\s+/
|
45
|
+
vromeConfig[:cmap][array[1]] = array[2];
|
46
|
+
when /^set\s+/
|
47
|
+
array = line.split(/\s+/,2)
|
48
|
+
array = array[1].split(/\+?=/,2)
|
49
|
+
vromeConfig[:set][array[0]] = [array[1], line =~ /^set\s+\w+\+=/ ? true : false]
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
return 200, "text/plain", vromeConfig.to_json
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
puts "Starting Vrome server..."
|
59
|
+
server = WEBrick::HTTPServer.new
|
60
|
+
server.listen('127.0.0.1', 20000)
|
61
|
+
server.mount "/", VromeServer
|
62
|
+
trap(:INT) { server.shutdown }
|
63
|
+
server.start
|
data/lib/vrome.rb
CHANGED
data/vrome.gemspec
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "vrome/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "vrome"
|
7
|
+
s.version = Vrome::VERSION
|
8
|
+
s.authors = ["Jinzhu"]
|
9
|
+
s.email = ["wosmvp@gmail.com"]
|
10
|
+
s.homepage = "https://github.com/jinzhu/vrome"
|
11
|
+
s.summary = %q{Vrome is a external server for vrome, a Vim keybindings extension for chrome}
|
12
|
+
s.description = %q{Vrome is a external server for vrome, a Vim keybindings extension for chrome}
|
13
|
+
|
14
|
+
s.rubyforge_project = "vrome"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
# specify any dependencies here; for example:
|
22
|
+
# s.add_development_dependency "rspec"
|
23
|
+
s.add_runtime_dependency "json"
|
24
|
+
end
|
metadata
CHANGED
@@ -1,92 +1,66 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: vrome
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.2
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- 1
|
10
|
-
version: 1.0.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Jinzhu
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
name: hoe
|
23
|
-
prerelease: false
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
12
|
+
date: 2011-12-27 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: json
|
16
|
+
requirement: &12152060 !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
email:
|
39
|
-
- wosmvp+vrome@gmail.com
|
40
|
-
executables:
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *12152060
|
25
|
+
description: Vrome is a external server for vrome, a Vim keybindings extension for
|
26
|
+
chrome
|
27
|
+
email:
|
28
|
+
- wosmvp@gmail.com
|
29
|
+
executables:
|
41
30
|
- vrome
|
42
31
|
extensions: []
|
43
|
-
|
44
|
-
|
45
|
-
-
|
46
|
-
- Manifest.txt
|
47
|
-
- README.txt
|
48
|
-
files:
|
49
|
-
- History.txt
|
50
|
-
- Manifest.txt
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- Gemfile
|
51
35
|
- README.txt
|
52
36
|
- Rakefile
|
53
37
|
- bin/vrome
|
54
38
|
- lib/vrome.rb
|
55
|
-
- lib/
|
56
|
-
|
57
|
-
homepage:
|
39
|
+
- lib/vrome/version.rb
|
40
|
+
- vrome.gemspec
|
41
|
+
homepage: https://github.com/jinzhu/vrome
|
58
42
|
licenses: []
|
59
|
-
|
60
43
|
post_install_message:
|
61
|
-
rdoc_options:
|
62
|
-
|
63
|
-
- README.txt
|
64
|
-
require_paths:
|
44
|
+
rdoc_options: []
|
45
|
+
require_paths:
|
65
46
|
- lib
|
66
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
47
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
67
48
|
none: false
|
68
|
-
requirements:
|
69
|
-
- -
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
|
72
|
-
|
73
|
-
- 0
|
74
|
-
version: "0"
|
75
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - ! '>='
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '0'
|
53
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
54
|
none: false
|
77
|
-
requirements:
|
78
|
-
- -
|
79
|
-
- !ruby/object:Gem::Version
|
80
|
-
|
81
|
-
segments:
|
82
|
-
- 0
|
83
|
-
version: "0"
|
55
|
+
requirements:
|
56
|
+
- - ! '>='
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: '0'
|
84
59
|
requirements: []
|
85
|
-
|
86
60
|
rubyforge_project: vrome
|
87
|
-
rubygems_version: 1.
|
61
|
+
rubygems_version: 1.8.10
|
88
62
|
signing_key:
|
89
63
|
specification_version: 3
|
90
|
-
summary:
|
64
|
+
summary: Vrome is a external server for vrome, a Vim keybindings extension for chrome
|
91
65
|
test_files: []
|
92
|
-
|
66
|
+
has_rdoc:
|
data/History.txt
DELETED
data/Manifest.txt
DELETED
data/lib/server.rb
DELETED
@@ -1,60 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'webrick'
|
3
|
-
require 'tempfile'
|
4
|
-
require 'json'
|
5
|
-
|
6
|
-
class VromeServer < WEBrick::HTTPServlet::AbstractServlet
|
7
|
-
|
8
|
-
def do_POST(request, response)
|
9
|
-
request = JSON.parse(request.body)
|
10
|
-
status, content_type, body = self.send(request['method'].to_sym,request)
|
11
|
-
|
12
|
-
response.status = status
|
13
|
-
response['Content-Type'] = content_type
|
14
|
-
response.body = body
|
15
|
-
end
|
16
|
-
|
17
|
-
def open_editor(request)
|
18
|
-
editor = request['editor']
|
19
|
-
tmpfile = Tempfile.new('editor')
|
20
|
-
tmpfile.write request['data']
|
21
|
-
tmpfile.flush
|
22
|
-
editor = 'gvim -f' if editor == 'gvim' # Foreground: Don't fork when starting GUI
|
23
|
-
system("#{editor} #{tmpfile.path}")
|
24
|
-
text = File.read(tmpfile.path)
|
25
|
-
tmpfile.delete
|
26
|
-
|
27
|
-
return 200, "text/plain", text
|
28
|
-
end
|
29
|
-
|
30
|
-
def get_configure(request)
|
31
|
-
config_file = File.join(ENV['HOME'],'.vromerc')
|
32
|
-
vromeConfig = {:set => {},:imap => {},:map => {},:cmap => {}};
|
33
|
-
|
34
|
-
if File.exist?(config_file)
|
35
|
-
File.read(config_file).split("\n").map do |line|
|
36
|
-
array = line.split(/\s+/)
|
37
|
-
case line
|
38
|
-
when /^imap\s+/
|
39
|
-
vromeConfig[:imap][array[1]] = array[2];
|
40
|
-
when /^map\s+/
|
41
|
-
vromeConfig[:map][array[1]] = array[2];
|
42
|
-
when /^cmap\s+/
|
43
|
-
vromeConfig[:cmap][array[1]] = array[2];
|
44
|
-
when /^set\s+/
|
45
|
-
array = line.split(/\s+/,2)
|
46
|
-
array = array[1].split(/\+?=/,2)
|
47
|
-
vromeConfig[:set][array[0]] = [array[1], line =~ /^set\s+\w+\+=/ ? true : false]
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
return 200, "text/plain", vromeConfig.to_json
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
server = WEBrick::HTTPServer.new
|
57
|
-
server.listen('127.0.0.1', 20000)
|
58
|
-
server.mount "/", VromeServer
|
59
|
-
trap(:INT) { server.shutdown }
|
60
|
-
server.start
|