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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 245e3a61f0627829065d771884195716aaa714ec
4
- data.tar.gz: e8439584ea6e438dbe76b55cff4feea1c9412dd1
3
+ metadata.gz: 24a1f46135142cd926424d0782923579bcb9ed4e
4
+ data.tar.gz: 20f684042ab81a94cb8160c19f3132a0e66c80c7
5
5
  SHA512:
6
- metadata.gz: 11fb7f11d157e664c09101f8496247a3d928126a88397954680271968705d4e1592e5a4609a5889e29dbc0e3b1b059acefc33935ba5de3f6fe2f413773ef4c02
7
- data.tar.gz: 10733f77b5228a25ba7f8ed0d3288dbf54b48b94be89d6a7dfb36f594287d1865e55111b97965d558cb9dd4edd1b4c052cf3af483998cd29e7beaf76d42babb8
6
+ metadata.gz: e00d25e7183ede50b50fb09a36a051c5d4c4f20c69b7aca76ed6e7e0a3521d9b545448f87f073426623e0a5820f34e5aabba0fdda0f5db0f161bdfb3c0b01a80
7
+ data.tar.gz: 5964d4d92b88122a4d2ddb6e0e472b70ec35eafaf866a3225e7694193770bcb021236efa81874b17c6f6086bd4e5037f24019f8c726c39a18199a6b5b064a4a0
data/.gitignore CHANGED
@@ -2,3 +2,4 @@ pkg/*
2
2
  *.gem
3
3
  .bundle
4
4
  /emacs/*.elc
5
+ *.lock
data/lib/vimgolf.rb CHANGED
@@ -1,9 +1,12 @@
1
+ require 'rubygems'
1
2
  require 'fileutils'
2
3
  require 'net/http'
3
4
  require 'strscan'
4
5
  require 'json'
5
6
  require 'yaml'
6
7
  require 'thor'
8
+ require 'shellwords'
9
+ require 'tempfile'
7
10
 
8
11
  require 'vimgolf/version'
9
12
  require 'vimgolf/config'
@@ -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
- @type = @data['in']['type']
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
- start
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
- File.open(work_path, "w") {|f| f.puts @data['in']['data']}
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
- def input_path; path + ".#{@type}"; end
82
- def work_path; path + ".work.#{@type}"; end
83
- def output_path; path + ".output"; end
84
- def log_path; path + ".log"; end
85
- def vimrc_path; path + ".golfrc"; end
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
- key = VimGolf.ui.ask "Please specify your VimGolf API key (register on vimgolf.com to get it):"
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 [ID]", "launch Vim session"
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 = nil)
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
- VimGolf.ui.warn "Launching VimGolf session for challenge: #{id}"
73
- # - n - no swap file, memory only editing
74
- # - +0 - always start on line 0
75
- # - --noplugin - don't load any plugins, lets be fair!
76
- # -i NONE - don't load .viminfo (for saved macros and the like)
77
- # - u - load vimgolf .vimrc to level the playing field
78
- vimcmd = "#{GOLFVIM} -Z -n --noplugin -i NONE +0 -u \"#{challenge.vimrc_path}\" -W \"#{challenge.log_path}\" \"#{challenge.work_path}\""
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 diff.size > 0
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("#{GOLFSHOWDIFF} #{diff_files}")
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
- VimGolf.ui.warn "[w] Upload result and retry the challenge"
118
- VimGolf.ui.warn "[x] Upload result and quit"
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 => [:w, :x, :retry, :quit]
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
 
@@ -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
- #when "\xfd\x35"; "KE_IGNORE"
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"; "<MouseDown>"
170
- when "\xfd\x4c"; "<MouseUp>"
171
- when "\xfd\x4d"; "<MouseLeft>"
172
- when "\xfd\x4e"; "<MouseRight>"
173
- #when "\xfd\x4f"; "KE_KINS"
174
- #when "\xfd\x50"; "KE_KDEL"
175
- #when "\xfd\x51"; "KE_CSI"
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
- #when "\xfd\x54"; "KE_CMDWIN"
179
- when "\xfd\x55"; "<C-Left>"
180
- when "\xfd\x56"; "<C-Right>"
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\x5e"; "KE_CURSORHOLD"
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
- when 127; "<Del>"
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, color, bold=false)
142
+ def set_color(string, *colors)
131
143
  ($stdout.tty? || ENV['THOR_SHELL']) ? super : string
132
144
  end
133
145
 
@@ -1,3 +1,3 @@
1
1
  module Vimgolf
2
- VERSION = "0.4.6"
2
+ VERSION = "0.4.7"
3
3
  end
@@ -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.6
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: 2014-08-14 00:00:00.000000000 Z
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.6.
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.0.14
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!