soywiki 0.1.4 → 0.1.5

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.
Files changed (4) hide show
  1. data/lib/soywiki.rb +2 -21
  2. data/lib/soywiki.vim +10 -6
  3. data/lib/string_ext.rb +20 -0
  4. metadata +3 -2
data/lib/soywiki.rb CHANGED
@@ -1,26 +1,7 @@
1
-
2
- class String
3
- # not Windows compatible
4
- def to_file_path
5
- self.gsub(".", "/")
6
- end
7
-
8
- def to_page_title
9
- self.gsub("/", ".")
10
- end
11
-
12
- def short_page_title
13
- self.to_page_title.split('.')[1]
14
- end
15
-
16
- def namespace
17
- self.to_page_title.split('.')[0]
18
- end
19
- end
20
-
1
+ require 'string_ext'
21
2
 
22
3
  module Soywiki
23
- VERSION = '0.1.4'
4
+ VERSION = '0.1.5'
24
5
  WIKI_WORD = /\b([a-z][\w_]+\.)?[A-Z][a-z]+[A-Z]\w*\b/
25
6
 
26
7
  def self.run
data/lib/soywiki.vim CHANGED
@@ -91,7 +91,7 @@ endfunc
91
91
 
92
92
  func! s:list_pages()
93
93
  let s:search_for_link = ""
94
- call s:page_list_window(s:get_page_list(), "Select page: ")
94
+ call s:page_list_window(s:get_page_list(), 'select-page', "Select page: ")
95
95
  endfunc
96
96
 
97
97
  func! s:trim_link(link)
@@ -257,6 +257,9 @@ func! s:get_page_list()
257
257
  " no file current in buffer
258
258
  if len(bufname('%')) == 0
259
259
  return split(system(s:ls_command), "\n")
260
+ elseif bufname('') == 'pages-linking-in'
261
+ " this needs refactoring to rely less on state
262
+ return s:pages_linking_in
260
263
  else
261
264
  return split(system(s:ls_command . " | grep -vF '" . s:page_title() . "'" ), "\n")
262
265
  endif
@@ -291,11 +294,11 @@ func! s:reduce_matches()
291
294
  endif
292
295
  endfunc
293
296
 
294
- function! s:page_list_window(page_match_list, prompt)
297
+ function! s:page_list_window(page_match_list, buffer_name, prompt)
295
298
  " remember the original window
296
299
  let s:return_to_winnr = winnr()
297
300
  let s:matching_pages = a:page_match_list
298
- topleft split page-list-buffer
301
+ exec "topleft split ".a:buffer_name
299
302
  setlocal completefunc=CompletePageTitle
300
303
  setlocal buftype=nofile
301
304
  setlocal noswapfile
@@ -327,7 +330,7 @@ function! CompletePageTitle(findstart, base)
327
330
  return s:get_page_list()
328
331
  else
329
332
  let res = []
330
- if bufname('') == 'page-list-buffer'
333
+ if bufname('') == 'select-page'
331
334
  let pages = s:get_page_list()
332
335
  for m in pages
333
336
  if m =~ '\c' . base
@@ -348,6 +351,7 @@ function! CompletePageTitle(findstart, base)
348
351
  endif
349
352
  endfun
350
353
 
354
+
351
355
  function! s:select_page()
352
356
  let page = s:trimString( get(split(getline(line('.')), ": "), 1) )
353
357
  close
@@ -371,7 +375,7 @@ endfunction
371
375
  " in different namespaces
372
376
 
373
377
  func! s:list_pages_linking_in()
374
- let s:pages_linking_in = split(system(s:find_pages_linking_in_command . s:page_title()), "\n")
378
+ let s:pages_linking_in = split(system(s:find_pages_linking_in_command . s:page_title()), "\n")
375
379
  " cursor should jump to this string after the selected page is loaded:
376
380
  let s:search_for_link = s:title_without_namespace(s:page_title())
377
381
  if len(s:pages_linking_in) == 1
@@ -379,7 +383,7 @@ func! s:list_pages_linking_in()
379
383
  elseif len(s:pages_linking_in) == 0
380
384
  echom "No pages link to " . s:page_title() . "!"
381
385
  else
382
- call s:page_list_window(s:pages_linking_in, "Pages that link to " . s:page_title() . ": ")
386
+ call s:page_list_window(s:pages_linking_in, "pages-linking-in", "Pages that link to " . s:page_title() . ": ")
383
387
  endif
384
388
  endfunc
385
389
 
data/lib/string_ext.rb ADDED
@@ -0,0 +1,20 @@
1
+ class String
2
+ # not Windows compatible
3
+ def to_file_path
4
+ self.gsub(".", "/")
5
+ end
6
+
7
+ def to_page_title
8
+ self.gsub("/", ".")
9
+ end
10
+
11
+ def short_page_title
12
+ self.to_page_title.split('.')[1]
13
+ end
14
+
15
+ def namespace
16
+ self.to_page_title.split('.')[0]
17
+ end
18
+ end
19
+
20
+
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 4
9
- version: 0.1.4
8
+ - 5
9
+ version: 0.1.5
10
10
  platform: ruby
11
11
  authors:
12
12
  - Daniel Choi
@@ -57,6 +57,7 @@ files:
57
57
  - bin/soywiki-rename
58
58
  - lib/soywiki.rb
59
59
  - lib/soywiki.vim
60
+ - lib/string_ext.rb
60
61
  - soywiki.gemspec
61
62
  - website/.gitignore
62
63
  - website/bottom.markdown