vimgolf 0.4.6 → 0.4.7
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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/lib/vimgolf.rb +3 -0
- data/lib/vimgolf/challenge.rb +39 -10
- data/lib/vimgolf/cli.rb +66 -26
- data/lib/vimgolf/keylog.rb +53 -20
- data/lib/vimgolf/ui.rb +13 -1
- data/lib/vimgolf/version.rb +1 -1
- data/lib/vimgolf/vimgolf.vimrc +28 -0
- metadata +20 -20
- data/Gemfile.lock +0 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24a1f46135142cd926424d0782923579bcb9ed4e
|
4
|
+
data.tar.gz: 20f684042ab81a94cb8160c19f3132a0e66c80c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e00d25e7183ede50b50fb09a36a051c5d4c4f20c69b7aca76ed6e7e0a3521d9b545448f87f073426623e0a5820f34e5aabba0fdda0f5db0f161bdfb3c0b01a80
|
7
|
+
data.tar.gz: 5964d4d92b88122a4d2ddb6e0e472b70ec35eafaf866a3225e7694193770bcb021236efa81874b17c6f6086bd4e5037f24019f8c726c39a18199a6b5b064a4a0
|
data/.gitignore
CHANGED
data/lib/vimgolf.rb
CHANGED
data/lib/vimgolf/challenge.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module VimGolf
|
2
2
|
class Challenge
|
3
|
-
attr_reader :id, :type
|
3
|
+
attr_reader :id, :type, :otype, :remote
|
4
4
|
|
5
5
|
def self.path(path)
|
6
6
|
@@path = path if path
|
@@ -11,7 +11,28 @@ module VimGolf
|
|
11
11
|
@id = id
|
12
12
|
end
|
13
13
|
|
14
|
+
def local(infile, outfile)
|
15
|
+
@remote = false
|
16
|
+
@input_path = File.expand_path(infile)
|
17
|
+
@output_path = File.expand_path(outfile)
|
18
|
+
@type = File.basename(@input_path) # extension? use the whole thing
|
19
|
+
@otype = File.basename(@output_path)
|
20
|
+
|
21
|
+
work_files
|
22
|
+
end
|
23
|
+
|
24
|
+
def work_files
|
25
|
+
@vimrc_path = File.expand_path('../vimgolf.vimrc', __FILE__)
|
26
|
+
|
27
|
+
# keep these temp files around so they don't close
|
28
|
+
@work = Tempfile.new(['vimgolf', ".#{@type}"])
|
29
|
+
@log = Tempfile.new('golflog')
|
30
|
+
@work_path = @work.path()
|
31
|
+
@log_path = @log.path()
|
32
|
+
end
|
33
|
+
|
14
34
|
def download
|
35
|
+
@remote = true
|
15
36
|
begin
|
16
37
|
url = URI.parse("#{GOLFHOST}/challenges/#{@id}.json")
|
17
38
|
req = Net::HTTP::Get.new(url.path)
|
@@ -34,9 +55,14 @@ module VimGolf
|
|
34
55
|
@data['in']['data'].gsub!(/\r\n/, "\n")
|
35
56
|
@data['out']['data'].gsub!(/\r\n/, "\n")
|
36
57
|
|
37
|
-
|
58
|
+
# be sure to sanitize the types
|
59
|
+
@type = @data['in']['type'].gsub(/[^\w-]/, '.')
|
60
|
+
@otype = @data['out']['type'].gsub(/[^\w-]/, '.')
|
61
|
+
@input_path = path + ".input.#{@type}"
|
62
|
+
@output_path = path + ".output.#{@otype}"
|
63
|
+
|
38
64
|
save
|
39
|
-
|
65
|
+
work_files
|
40
66
|
rescue Exception => e
|
41
67
|
debug(e)
|
42
68
|
raise "Uh oh, couldn't download or parse challenge, please verify your challenge id & client version."
|
@@ -44,13 +70,12 @@ module VimGolf
|
|
44
70
|
end
|
45
71
|
|
46
72
|
def start
|
47
|
-
|
73
|
+
FileUtils.cp(@input_path, @work_path)
|
48
74
|
end
|
49
75
|
|
50
76
|
def save
|
51
77
|
File.open(input_path, "w") {|f| f.puts @data['in']['data']}
|
52
78
|
File.open(output_path, "w") {|f| f.puts @data['out']['data']}
|
53
|
-
File.open(vimrc_path, "w") {|f| f.puts @data['vimrc']}
|
54
79
|
end
|
55
80
|
|
56
81
|
def upload
|
@@ -78,11 +103,15 @@ module VimGolf
|
|
78
103
|
end
|
79
104
|
end
|
80
105
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
106
|
+
attr_reader :input_path
|
107
|
+
attr_reader :work_path
|
108
|
+
attr_reader :output_path
|
109
|
+
attr_reader :log_path
|
110
|
+
attr_reader :vimrc_path
|
111
|
+
|
112
|
+
def correct?
|
113
|
+
FileUtils.compare_file(@work_path, @output_path)
|
114
|
+
end
|
86
115
|
|
87
116
|
def path
|
88
117
|
@@path + "/#{@id}"
|
data/lib/vimgolf/cli.rb
CHANGED
@@ -2,7 +2,6 @@ module VimGolf
|
|
2
2
|
|
3
3
|
GOLFDEBUG = ENV['GOLFDEBUG'].to_sym rescue false
|
4
4
|
GOLFHOST = ENV['GOLFHOST'] || "http://www.vimgolf.com"
|
5
|
-
GOLFDIFF = ENV['GOLFDIFF'] || 'diff'
|
6
5
|
GOLFSHOWDIFF = ENV['GOLFSHOWDIFF'] || 'vim -d -n'
|
7
6
|
GOLFVIM = ENV['GOLFVIM'] || 'vim'
|
8
7
|
PROXY = ENV['http_proxy'] || ''
|
@@ -43,7 +42,12 @@ module VimGolf
|
|
43
42
|
DESC
|
44
43
|
|
45
44
|
def setup
|
46
|
-
|
45
|
+
VimGolf.ui.info "\nLet's setup your VimGolf key..."
|
46
|
+
VimGolf.ui.warn "1) Open vimgolf.com in your browser."
|
47
|
+
VimGolf.ui.warn "2) Click \"Sign in with Twitter\"."
|
48
|
+
VimGolf.ui.warn "3) Once signed in, copy your key (black box, top right)."
|
49
|
+
|
50
|
+
key = VimGolf.ui.ask "\nPaste your VimGolf key:"
|
47
51
|
|
48
52
|
if key =~ /[\w\d]{32}/
|
49
53
|
FileUtils.mkdir_p Config.path
|
@@ -56,39 +60,69 @@ module VimGolf
|
|
56
60
|
end
|
57
61
|
end
|
58
62
|
|
59
|
-
desc "put
|
63
|
+
desc "put CHALLENGE_ID", "launch vimgolf.com challenge"
|
60
64
|
long_desc <<-DESC
|
61
65
|
Launch a VimGolf session for the specified challenge ID. To find a currently
|
62
66
|
active challenge ID, please visit vimgolf.com!
|
63
67
|
DESC
|
64
68
|
|
65
|
-
def put(id
|
69
|
+
def put(id)
|
70
|
+
FileUtils.mkdir_p Config.put_path
|
66
71
|
VimGolf.ui.warn "Downloading Vimgolf challenge: #{id}"
|
67
72
|
VimGolf::Challenge.path(Config.put_path)
|
68
73
|
challenge = Challenge.new(id)
|
69
74
|
challenge.download
|
70
75
|
|
76
|
+
play(challenge)
|
77
|
+
end
|
78
|
+
|
79
|
+
desc "local INFILE OUTFILE", "launch local challenge"
|
80
|
+
long_desc <<-DESC
|
81
|
+
Launch a local VimGolf challenge. A temporary copy of INFILE is made; the original files will not be touched.
|
82
|
+
DESC
|
83
|
+
|
84
|
+
def local(infile, outfile)
|
85
|
+
# make sure our files are sane
|
86
|
+
if !(File.file?(infile) and File.file?(outfile))
|
87
|
+
VimGolf.ui.error "INFILE and OUTFILE must exist and be regular files."
|
88
|
+
exit 1
|
89
|
+
end
|
90
|
+
|
91
|
+
challenge = Challenge.new(infile) # use the filename as id
|
92
|
+
challenge.local(infile, outfile)
|
93
|
+
|
94
|
+
play(challenge)
|
95
|
+
end
|
96
|
+
|
97
|
+
private
|
98
|
+
|
99
|
+
def play(challenge)
|
71
100
|
begin
|
72
|
-
|
73
|
-
|
74
|
-
# -
|
75
|
-
# -
|
76
|
-
#
|
77
|
-
# -
|
78
|
-
|
101
|
+
challenge.start
|
102
|
+
VimGolf.ui.warn "Launching VimGolf session for challenge: #{challenge.id}"
|
103
|
+
# -Z - restricted mode, utilities not allowed
|
104
|
+
# -n - no swap file, memory only editing
|
105
|
+
# --noplugin - don't load any plugins, lets be fair!
|
106
|
+
# --nofork - otherwise GOLFVIM=gvim forks and returns immediately
|
107
|
+
# -i NONE - don't load .viminfo (for saved macros and the like)
|
108
|
+
# +0 - always start on line 0
|
109
|
+
# -u vimrc - load vimgolf .vimrc to level the playing field
|
110
|
+
# -U NONE - don't load .gvimrc
|
111
|
+
# -W logfile - keylog file (overwrites if already exists)
|
112
|
+
vimcmd = GOLFVIM.shellsplit + %W{-Z -n --noplugin --nofork -i NONE +0 -u #{challenge.vimrc_path} -U NONE -W #{challenge.log_path} #{challenge.work_path}}
|
79
113
|
debug(vimcmd)
|
80
|
-
system(vimcmd)
|
114
|
+
system(*vimcmd) # assembled as an array, bypasses the shell
|
81
115
|
|
82
116
|
if $?.exitstatus.zero?
|
83
|
-
diff_files = "\"#{challenge.work_path}\" \"#{challenge.output_path}\""
|
84
|
-
diff = `#{GOLFDIFF} #{diff_files}`
|
85
117
|
log = Keylog.new(IO.read(challenge.log_path))
|
86
118
|
|
119
|
+
VimGolf.ui.info "\nHere are your keystrokes:"
|
120
|
+
VimGolf.ui.print_log log
|
121
|
+
|
87
122
|
# Handle incorrect solutions
|
88
|
-
if
|
123
|
+
if !challenge.correct?()
|
89
124
|
VimGolf.ui.error "\nUh oh, looks like your entry does not match the desired output."
|
90
125
|
VimGolf.ui.error "Your score for this failed attempt was: #{log.score}"
|
91
|
-
|
92
126
|
loop do
|
93
127
|
VimGolf.ui.warn "[d] Show diff"
|
94
128
|
VimGolf.ui.warn "[r] Retry the current challenge"
|
@@ -99,10 +133,9 @@ module VimGolf
|
|
99
133
|
:choices => [:diff, :retry, :quit]
|
100
134
|
when :diff
|
101
135
|
VimGolf.ui.warn "Showing vimdiff of your attempt (left) and correct output (right)"
|
102
|
-
system(
|
136
|
+
system(*GOLFSHOWDIFF.shellsplit + [challenge.work_path, challenge.output_path])
|
103
137
|
when :retry
|
104
138
|
VimGolf.ui.warn "Retrying current challenge..."
|
105
|
-
challenge.start
|
106
139
|
raise RetryException
|
107
140
|
when :quit
|
108
141
|
raise Interrupt
|
@@ -114,23 +147,32 @@ module VimGolf
|
|
114
147
|
VimGolf.ui.info "\nSuccess! Your output matches. Your score: #{log.score}"
|
115
148
|
|
116
149
|
loop do
|
117
|
-
|
118
|
-
|
150
|
+
choices = []
|
151
|
+
begin
|
152
|
+
Config.load # raises error if user hasn't finished setup
|
153
|
+
choices = [:w, :x]
|
154
|
+
VimGolf.ui.warn "[w] Upload result and retry the challenge"
|
155
|
+
VimGolf.ui.warn "[x] Upload result and quit"
|
156
|
+
rescue
|
157
|
+
choices = [:setup]
|
158
|
+
VimGolf.ui.warn "[s] Set up vimgolf.com key to submit result"
|
159
|
+
end if challenge.remote
|
119
160
|
VimGolf.ui.warn "[r] Do not upload result and retry the challenge"
|
120
161
|
VimGolf.ui.warn "[q] Do not upload result and quit"
|
121
162
|
|
122
163
|
case VimGolf.ui.ask_question "Choice> ",
|
123
164
|
:type => :warn,
|
124
|
-
:choices =>
|
165
|
+
:choices => choices + [:retry, :quit]
|
125
166
|
when :w
|
126
167
|
next unless upload?(challenge)
|
127
|
-
challenge.start
|
128
168
|
raise RetryException
|
129
169
|
when :x
|
130
170
|
next unless upload?(challenge)
|
131
171
|
raise Interrupt
|
172
|
+
when :setup
|
173
|
+
setup
|
174
|
+
next # we can hopefully submit this time
|
132
175
|
when :retry
|
133
|
-
challenge.start
|
134
176
|
raise RetryException
|
135
177
|
when :quit
|
136
178
|
raise Interrupt
|
@@ -139,7 +181,7 @@ module VimGolf
|
|
139
181
|
|
140
182
|
else
|
141
183
|
error = <<-MSG
|
142
|
-
Uh oh, Vim did not exit properly.
|
184
|
+
Uh oh, Vim did not exit properly.
|
143
185
|
Please ensure you can execute 'Vim' from the commandline.
|
144
186
|
If the problem persists, please report the error on github.com/igrigorik/vimgolf
|
145
187
|
MSG
|
@@ -158,8 +200,6 @@ module VimGolf
|
|
158
200
|
VimGolf.ui.error "If the error persists, please report it to github.com/igrigorik/vimgolf"
|
159
201
|
end
|
160
202
|
|
161
|
-
private
|
162
|
-
|
163
203
|
def upload?(challenge)
|
164
204
|
VimGolf.ui.warn "Uploading to VimGolf..."
|
165
205
|
|
data/lib/vimgolf/keylog.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
1
3
|
module VimGolf
|
2
4
|
class Keylog
|
3
5
|
include Enumerable
|
@@ -95,6 +97,27 @@ module VimGolf
|
|
95
97
|
when "kB"; "<S-Tab>"
|
96
98
|
when "\xffX"; "<C-@>"
|
97
99
|
|
100
|
+
# This is how you escape literal 0x80
|
101
|
+
when "\xfeX"; "<0x80>"
|
102
|
+
|
103
|
+
# These rarely-used modifiers should be combined with the next
|
104
|
+
# stroke (like <S-Space>), but let's put them here for now
|
105
|
+
when "\xfc\x02"; "<S->"
|
106
|
+
when "\xfc\x04"; "<C->"
|
107
|
+
when "\xfc\x06"; "<C-S->"
|
108
|
+
when "\xfc\x08"; "<A->"
|
109
|
+
when "\xfc\x0a"; "<A-S->"
|
110
|
+
when "\xfc\x0c"; "<C-A>"
|
111
|
+
when "\xfc\x0e"; "<C-A-S->"
|
112
|
+
when "\xfc\x10"; "<M->"
|
113
|
+
when "\xfc\x12"; "<M-S->"
|
114
|
+
when "\xfc\x14"; "<M-C->"
|
115
|
+
when "\xfc\x16"; "<M-C-S->"
|
116
|
+
when "\xfc\x18"; "<M-A->"
|
117
|
+
when "\xfc\x1a"; "<M-A-S->"
|
118
|
+
when "\xfc\x1c"; "<M-C-A>"
|
119
|
+
when "\xfc\x1e"; "<M-C-A-S->"
|
120
|
+
|
98
121
|
when "\xfd\x4"; "<S-Up>"
|
99
122
|
when "\xfd\x5"; "<S-Down>"
|
100
123
|
when "\xfd\x6"; "<S-F1>"
|
@@ -144,7 +167,7 @@ module VimGolf
|
|
144
167
|
when "\xfd\x32"; "<RightMouse>"
|
145
168
|
when "\xfd\x33"; "<RightDrag>"
|
146
169
|
when "\xfd\x34"; "<RightRelease>"
|
147
|
-
|
170
|
+
when "\xfd\x35"; nil # KE_IGNORE
|
148
171
|
#when "\xfd\x36"; "KE_TAB"
|
149
172
|
#when "\xfd\x37"; "KE_S_TAB_OLD"
|
150
173
|
#when "\xfd\x38"; "KE_SNIFF"
|
@@ -166,18 +189,28 @@ module VimGolf
|
|
166
189
|
#when "\xfd\x48"; "KE_S_XF2"
|
167
190
|
#when "\xfd\x49"; "KE_S_XF3"
|
168
191
|
#when "\xfd\x4a"; "KE_S_XF4"
|
169
|
-
when "\xfd\x4b"; "<
|
170
|
-
when "\xfd\x4c"; "<
|
171
|
-
|
172
|
-
|
173
|
-
#
|
174
|
-
#
|
175
|
-
#
|
192
|
+
when "\xfd\x4b"; "<ScrollWheelUp>"
|
193
|
+
when "\xfd\x4c"; "<ScrollWheelDown>"
|
194
|
+
|
195
|
+
# Horizontal scroll wheel support was added in Vim 7.3c. These
|
196
|
+
# 2 entries shifted the rest of the KS_EXTRA mappings down 2.
|
197
|
+
# Though Vim 7.2 is rare today, it was common soon after
|
198
|
+
# vimgolf.com was launched. In cases where the 7.3 code is
|
199
|
+
# never used but the 7.2 code was common, it makes sense to use
|
200
|
+
# the 7.2 code. There are conflicts though, so some legacy
|
201
|
+
# keycodes have to stay wrong.
|
202
|
+
when "\xfd\x4d"; "<ScrollWheelRight>"
|
203
|
+
when "\xfd\x4e"; "<ScrollWheelLeft>"
|
204
|
+
when "\xfd\x4f"; "<kInsert>"
|
205
|
+
when "\xfd\x50"; "<kDel>"
|
206
|
+
when "\xfd\x51"; "<0x9b>" # :help <CSI>
|
176
207
|
#when "\xfd\x52"; "KE_SNR"
|
177
|
-
#when "\xfd\x53"; "KE_PLUG"
|
178
|
-
|
179
|
-
when "\xfd\
|
180
|
-
when "\xfd\
|
208
|
+
#when "\xfd\x53"; "KE_PLUG" # never used
|
209
|
+
when "\xfd\x53"; "<C-Left>" # 7.2 compat
|
210
|
+
#when "\xfd\x54"; "KE_CMDWIN" # never used
|
211
|
+
when "\xfd\x54"; "<C-Right>" # 7.2 compat
|
212
|
+
when "\xfd\x55"; "<C-Left>" # 7.2 <C-Home> conflict
|
213
|
+
when "\xfd\x56"; "<C-Right>" # 7.2 <C-End> conflict
|
181
214
|
when "\xfd\x57"; "<C-Home>"
|
182
215
|
when "\xfd\x58"; "<C-End>"
|
183
216
|
#when "\xfd\x59"; "KE_X1MOUSE"
|
@@ -186,8 +219,10 @@ module VimGolf
|
|
186
219
|
#when "\xfd\x5c"; "KE_X2MOUSE"
|
187
220
|
#when "\xfd\x5d"; "KE_X2DRAG"
|
188
221
|
#when "\xfd\x5e"; "KE_X2RELEASE"
|
222
|
+
when "\xfd\x5e"; nil # 7.2 compat (I think?)
|
189
223
|
#when "\xfd\x5f"; "KE_DROP"
|
190
|
-
#when "\xfd\
|
224
|
+
#when "\xfd\x60"; "KE_CURSORHOLD"
|
225
|
+
when "\xfd\x60"; nil # 7.2 Focus Gained compat
|
191
226
|
#when "\xfd\x61"; "KE_NOP"
|
192
227
|
when "\xfd\x62"; nil # Focus Gained (GVIM)
|
193
228
|
when "\xfd\x63"; nil # Focus Lost (GVIM)
|
@@ -197,6 +232,9 @@ module VimGolf
|
|
197
232
|
'<%02x-%02x>' % code.unpack('CC')
|
198
233
|
end
|
199
234
|
|
235
|
+
# Printable ASCII
|
236
|
+
when 32..126; c
|
237
|
+
|
200
238
|
# Control characters with special names
|
201
239
|
when 0; "<Nul>"
|
202
240
|
when 9; "<Tab>"
|
@@ -204,13 +242,8 @@ module VimGolf
|
|
204
242
|
when 13; "<CR>"
|
205
243
|
when 27; "<Esc>"
|
206
244
|
|
207
|
-
|
208
|
-
|
209
|
-
# Otherwise, use <C-x> format
|
210
|
-
when 0..31; "<C-#{(n + 64).chr}>"
|
211
|
-
|
212
|
-
# The rest of ANSI is printable
|
213
|
-
when 32..126; c
|
245
|
+
# Otherwise, use <C-x> format. Flip bit 7
|
246
|
+
when 0..127; "<C-#{(n ^ 0x40).chr}>"
|
214
247
|
|
215
248
|
else
|
216
249
|
#puts "Unexpected extended ASCII: #{'%#04x' % n}"
|
data/lib/vimgolf/ui.rb
CHANGED
@@ -40,6 +40,18 @@ module VimGolf
|
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
|
+
# Take list of keystrokes, pretty-print them
|
44
|
+
def print_log(strokes)
|
45
|
+
strokes.each do |stroke|
|
46
|
+
if stroke.length == 1 # not a special character
|
47
|
+
say stroke, color=nil, force_new_line=false
|
48
|
+
else
|
49
|
+
say stroke, color=:red, force_new_line=false
|
50
|
+
end
|
51
|
+
end
|
52
|
+
say
|
53
|
+
end
|
54
|
+
|
43
55
|
def debug(name, message = nil)
|
44
56
|
return unless ENV["DEBUG"]
|
45
57
|
|
@@ -127,7 +139,7 @@ module VimGolf
|
|
127
139
|
print_table(table, :ident => 2, :truncate => true, :colwidth => 20)
|
128
140
|
end
|
129
141
|
|
130
|
-
def set_color(string,
|
142
|
+
def set_color(string, *colors)
|
131
143
|
($stdout.tty? || ENV['THOR_SHELL']) ? super : string
|
132
144
|
end
|
133
145
|
|
data/lib/vimgolf/version.rb
CHANGED
@@ -0,0 +1,28 @@
|
|
1
|
+
" http://vimdoc.sourceforge.net/htmldoc/starting.html#vimrc
|
2
|
+
|
3
|
+
set nocompatible " use vim defaults
|
4
|
+
set scrolloff=3 " keep 3 lines when scrolling
|
5
|
+
set ai " set auto-indenting on for programming
|
6
|
+
|
7
|
+
set showcmd " display incomplete commands
|
8
|
+
set nobackup " do not keep a backup file
|
9
|
+
set number " show line numbers
|
10
|
+
set ruler " show the current row and column
|
11
|
+
|
12
|
+
set hlsearch " highlight searches
|
13
|
+
set incsearch " do incremental searching
|
14
|
+
set showmatch " jump to matches when entering regexp
|
15
|
+
set ignorecase " ignore case when searching
|
16
|
+
set smartcase " no ignorecase if Uppercase char present
|
17
|
+
|
18
|
+
set visualbell t_vb= " turn off error beep/flash
|
19
|
+
set novisualbell " turn off visual bell
|
20
|
+
|
21
|
+
set backspace=indent,eol,start " make that backspace key work the way it should
|
22
|
+
set runtimepath=$VIMRUNTIME " turn off user scripts, https://github.com/igrigorik/vimgolf/issues/129
|
23
|
+
|
24
|
+
syntax on " turn syntax highlighting on by default
|
25
|
+
filetype on " detect type of file
|
26
|
+
filetype indent on " load indent file for specific file type
|
27
|
+
|
28
|
+
set t_RV= " http://bugs.debian.org/608242, http://groups.google.com/group/vim_dev/browse_thread/thread/9770ea844cec3282
|
metadata
CHANGED
@@ -1,83 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vimgolf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ilya Grigorik
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 0.14.6
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.14.6
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: json_pure
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: highline
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rake
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
description: CLI client for vimgolf.com
|
@@ -88,11 +88,10 @@ executables:
|
|
88
88
|
extensions: []
|
89
89
|
extra_rdoc_files: []
|
90
90
|
files:
|
91
|
-
- .gitignore
|
92
|
-
- .gitmodules
|
93
|
-
- .rspec
|
91
|
+
- ".gitignore"
|
92
|
+
- ".gitmodules"
|
93
|
+
- ".rspec"
|
94
94
|
- Gemfile
|
95
|
-
- Gemfile.lock
|
96
95
|
- README.md
|
97
96
|
- Rakefile
|
98
97
|
- bin/vimgolf
|
@@ -111,6 +110,7 @@ files:
|
|
111
110
|
- lib/vimgolf/keylog.rb
|
112
111
|
- lib/vimgolf/ui.rb
|
113
112
|
- lib/vimgolf/version.rb
|
113
|
+
- lib/vimgolf/vimgolf.vimrc
|
114
114
|
- spec/challenge_spec.rb
|
115
115
|
- spec/cli_spec.rb
|
116
116
|
- spec/fixtures/4d19832d8ae121365c00000b.log
|
@@ -127,7 +127,7 @@ metadata: {}
|
|
127
127
|
post_install_message: |2
|
128
128
|
|
129
129
|
------------------------------------------------------------------------------
|
130
|
-
Thank you for installing vimgolf-0.4.
|
130
|
+
Thank you for installing vimgolf-0.4.7.
|
131
131
|
|
132
132
|
0.1.3: custom vimgolf .vimrc file to help level the playing field
|
133
133
|
0.2.0: proxy support, custom diffs + proper vimscript parser/scoring
|
@@ -143,17 +143,17 @@ require_paths:
|
|
143
143
|
- lib
|
144
144
|
required_ruby_version: !ruby/object:Gem::Requirement
|
145
145
|
requirements:
|
146
|
-
- -
|
146
|
+
- - ">="
|
147
147
|
- !ruby/object:Gem::Version
|
148
148
|
version: '0'
|
149
149
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
150
150
|
requirements:
|
151
|
-
- -
|
151
|
+
- - ">="
|
152
152
|
- !ruby/object:Gem::Version
|
153
153
|
version: '0'
|
154
154
|
requirements: []
|
155
155
|
rubyforge_project: vimgolf
|
156
|
-
rubygems_version: 2.
|
156
|
+
rubygems_version: 2.4.3
|
157
157
|
signing_key:
|
158
158
|
specification_version: 4
|
159
159
|
summary: CLI client for vimgolf.com
|
data/Gemfile.lock
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
vimgolf (0.4.0)
|
5
|
-
highline
|
6
|
-
thor (>= 0.14.6)
|
7
|
-
|
8
|
-
GEM
|
9
|
-
remote: http://rubygems.org/
|
10
|
-
specs:
|
11
|
-
diff-lcs (1.1.3)
|
12
|
-
highline (1.6.11)
|
13
|
-
rake (0.9.2.2)
|
14
|
-
rspec (2.9.0)
|
15
|
-
rspec-core (~> 2.9.0)
|
16
|
-
rspec-expectations (~> 2.9.0)
|
17
|
-
rspec-mocks (~> 2.9.0)
|
18
|
-
rspec-core (2.9.0)
|
19
|
-
rspec-expectations (2.9.0)
|
20
|
-
diff-lcs (~> 1.1.3)
|
21
|
-
rspec-mocks (2.9.0)
|
22
|
-
thor (0.14.6)
|
23
|
-
|
24
|
-
PLATFORMS
|
25
|
-
ruby
|
26
|
-
|
27
|
-
DEPENDENCIES
|
28
|
-
rake
|
29
|
-
rspec
|
30
|
-
vimgolf!
|