xiki 0.5.0a
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 +11 -0
- data/LICENSE +22 -0
- data/README.markdown +83 -0
- data/Rakefile +8 -0
- data/bin/xiki +46 -0
- data/etc/command/xiki_command.rb +203 -0
- data/etc/command/xiki_process.rb +52 -0
- data/etc/command/xiki_wrapper +2 -0
- data/etc/js/menu1.js +55 -0
- data/etc/js/xiki.js +259 -0
- data/etc/logo.png +0 -0
- data/etc/presentations/bootstrap.deck +5 -0
- data/etc/presentations/databases.deck +41 -0
- data/etc/presentations/diffs.deck +23 -0
- data/etc/presentations/documentation.deck +14 -0
- data/etc/presentations/effects.deck +5 -0
- data/etc/presentations/face.deck +297 -0
- data/etc/presentations/files.deck +79 -0
- data/etc/presentations/icons.deck +22 -0
- data/etc/presentations/images.deck +24 -0
- data/etc/presentations/key_shortcuts.deck +16 -0
- data/etc/presentations/macros.deck +18 -0
- data/etc/presentations/menu_classes.deck +44 -0
- data/etc/presentations/menu_directories.deck +30 -0
- data/etc/presentations/notes.deck +19 -0
- data/etc/presentations/other_languages.deck +55 -0
- data/etc/presentations/other_wiki_syntaxes.deck +4 -0
- data/etc/presentations/piano.deck +5 -0
- data/etc/presentations/potential/diffs.deck +38 -0
- data/etc/presentations/potential/evolution.deck +18 -0
- data/etc/presentations/potential/intro.deck +711 -0
- data/etc/presentations/potential/intro1.deck +711 -0
- data/etc/presentations/potential/intro2.deck +97 -0
- data/etc/presentations/potential/make_mysql_menu.deck +36 -0
- data/etc/presentations/potential/ruby_development.deck +17 -0
- data/etc/presentations/potential/ui_prototyping.deck +50 -0
- data/etc/presentations/potential/web_dev.deck +4 -0
- data/etc/presentations/potential/web_development.deck +10 -0
- data/etc/presentations/potential/wiki.deck +45 -0
- data/etc/presentations/presentations.deck +24 -0
- data/etc/presentations/rails_development.deck +29 -0
- data/etc/presentations/search_key_shortcuts.deck +37 -0
- data/etc/presentations/simplest_possible_ui.deck +37 -0
- data/etc/presentations/svg.deck +5 -0
- data/etc/presentations/testing.deck +28 -0
- data/etc/presentations/the_end.deck +13 -0
- data/etc/presentations/type_something_and_double_click.deck +57 -0
- data/etc/presentations/type_the_acronym.deck +144 -0
- data/etc/presentations/web_browser.deck +56 -0
- data/etc/presentations/xiki_command.deck +20 -0
- data/etc/presentations/xiki_url.deck +14 -0
- data/etc/shark.icns +0 -0
- data/etc/shark_script.icns +0 -0
- data/etc/snippets/html.notes +7 -0
- data/etc/snippets/notes.notes +20 -0
- data/etc/snippets/rb.notes +38 -0
- data/etc/templates/menu_template.menu +2 -0
- data/etc/templates/menu_template.rb +8 -0
- data/etc/templates/template.rb +5 -0
- data/etc/themes/Dark_Metal.notes +28 -0
- data/etc/themes/Orange_Path.notes +15 -0
- data/etc/themes/Shiny_Blue.notes +27 -0
- data/etc/themes/Shiny_Green.notes +27 -0
- data/etc/wrappers/wrapper.js +17 -0
- data/etc/wrappers/wrapper.py +20 -0
- data/etc/wrappers/wrapper.rb +25 -0
- data/lib/block.rb +72 -0
- data/lib/bookmarks.rb +352 -0
- data/lib/buffers.rb +170 -0
- data/lib/clipboard.rb +333 -0
- data/lib/code.rb +860 -0
- data/lib/code_tree.rb +476 -0
- data/lib/color.rb +274 -0
- data/lib/console.rb +557 -0
- data/lib/control_lock.rb +9 -0
- data/lib/control_tab.rb +176 -0
- data/lib/core_ext.rb +31 -0
- data/lib/cursor.rb +111 -0
- data/lib/deletes.rb +65 -0
- data/lib/diff_log.rb +297 -0
- data/lib/effects.rb +145 -0
- data/lib/environment.rb +5 -0
- data/lib/file_tree.rb +1875 -0
- data/lib/files.rb +334 -0
- data/lib/hide.rb +259 -0
- data/lib/history.rb +286 -0
- data/lib/image.rb +51 -0
- data/lib/incrementer.rb +15 -0
- data/lib/insert.rb +7 -0
- data/lib/irc.rb +22 -0
- data/lib/key_bindings.rb +658 -0
- data/lib/keys.rb +754 -0
- data/lib/launcher.rb +1351 -0
- data/lib/line.rb +429 -0
- data/lib/links.rb +6 -0
- data/lib/location.rb +175 -0
- data/lib/macros.rb +48 -0
- data/lib/man.rb +19 -0
- data/lib/menu.rb +708 -0
- data/lib/merb.rb +259 -0
- data/lib/message.rb +5 -0
- data/lib/meths.rb +56 -0
- data/lib/mode.rb +34 -0
- data/lib/move.rb +248 -0
- data/lib/notes.rb +1000 -0
- data/lib/numbers.rb +45 -0
- data/lib/ol.rb +203 -0
- data/lib/ol_helper.rb +44 -0
- data/lib/overlay.rb +167 -0
- data/lib/pause_means_space.rb +68 -0
- data/lib/php.rb +22 -0
- data/lib/projects.rb +21 -0
- data/lib/relinquish_exception.rb +2 -0
- data/lib/remote.rb +206 -0
- data/lib/requirer.rb +46 -0
- data/lib/rest_tree.rb +108 -0
- data/lib/ruby.rb +57 -0
- data/lib/ruby_console.rb +165 -0
- data/lib/search.rb +1572 -0
- data/lib/search_term.rb +40 -0
- data/lib/snippet.rb +68 -0
- data/lib/specs.rb +229 -0
- data/lib/styles.rb +274 -0
- data/lib/svn.rb +682 -0
- data/lib/text_util.rb +110 -0
- data/lib/tree.rb +1871 -0
- data/lib/tree_cursor.rb +87 -0
- data/lib/trouble_shooting.rb +27 -0
- data/lib/url_tree.rb +11 -0
- data/lib/view.rb +1474 -0
- data/lib/window.rb +133 -0
- data/lib/xiki.rb +404 -0
- data/menus/accounts.rb +5 -0
- data/menus/address_book.rb +21 -0
- data/menus/agenda.rb +28 -0
- data/menus/all.rb +5 -0
- data/menus/amazon.rb +16 -0
- data/menus/app.rb +16 -0
- data/menus/applescript.rb +46 -0
- data/menus/as.rb +15 -0
- data/menus/bookmarklet.rb +63 -0
- data/menus/bootstrap.rb +568 -0
- data/menus/browse.rb +13 -0
- data/menus/browser.rb +78 -0
- data/menus/cassandra_db.rb +36 -0
- data/menus/chmod.rb +27 -0
- data/menus/classes.rb +5 -0
- data/menus/coffee_script.rb +35 -0
- data/menus/computer.rb +24 -0
- data/menus/contacts.rb +5 -0
- data/menus/cookies.rb +25 -0
- data/menus/couch.rb +184 -0
- data/menus/crop.rb +45 -0
- data/menus/css.rb +55 -0
- data/menus/current.rb +5 -0
- data/menus/db.rb +12 -0
- data/menus/deck.rb +219 -0
- data/menus/dictionary.rb +9 -0
- data/menus/dir.rb +8 -0
- data/menus/disk.rb +5 -0
- data/menus/do.rb +13 -0
- data/menus/docs.rb +58 -0
- data/menus/dotsies.rb +107 -0
- data/menus/edited.rb +18 -0
- data/menus/emacs.rb +17 -0
- data/menus/enter.rb +13 -0
- data/menus/eval.rb +17 -0
- data/menus/executable.rb +16 -0
- data/menus/filter.rb +46 -0
- data/menus/firefox.rb +607 -0
- data/menus/foo.rb +30 -0
- data/menus/french.rb +7 -0
- data/menus/git.rb +185 -0
- data/menus/gito.rb +785 -0
- data/menus/google.rb +35 -0
- data/menus/google_images.rb +11 -0
- data/menus/google_patents.rb +10 -0
- data/menus/gutenberg.rb +13 -0
- data/menus/head.rb +10 -0
- data/menus/headings.rb +39 -0
- data/menus/html.rb +61 -0
- data/menus/icon.rb +40 -0
- data/menus/images.menu +2 -0
- data/menus/img.rb +15 -0
- data/menus/info.rb +9 -0
- data/menus/ip.rb +10 -0
- data/menus/iterm.rb +36 -0
- data/menus/itunes.rb +78 -0
- data/menus/javascript.rb +74 -0
- data/menus/layout.rb +18 -0
- data/menus/local_storage.rb +67 -0
- data/menus/ls.rb +19 -0
- data/menus/mac.rb +87 -0
- data/menus/maps.rb +18 -0
- data/menus/matches.rb +18 -0
- data/menus/memcache.rb +117 -0
- data/menus/mkdir.rb +23 -0
- data/menus/mongo.rb +83 -0
- data/menus/mysql.rb +294 -0
- data/menus/node.rb +88 -0
- data/menus/open.rb +19 -0
- data/menus/outline.rb +24 -0
- data/menus/piano.rb +746 -0
- data/menus/postgres.rb +34 -0
- data/menus/pre.rb +5 -0
- data/menus/python.rb +39 -0
- data/menus/rails.rb +160 -0
- data/menus/rake.rb +12 -0
- data/menus/redmine.rb +168 -0
- data/menus/riak_tree.rb +204 -0
- data/menus/rss.rb +15 -0
- data/menus/safari.rb +11 -0
- data/menus/sass.rb +15 -0
- data/menus/say.rb +6 -0
- data/menus/scale.rb +49 -0
- data/menus/serve.rb +78 -0
- data/menus/shuffle.rb +24 -0
- data/menus/spanish.rb +7 -0
- data/menus/standalone.rb +57 -0
- data/menus/tail.rb +41 -0
- data/menus/technologies.rb +19 -0
- data/menus/themes.rb +32 -0
- data/menus/thesaurus.rb +13 -0
- data/menus/to.rb +24 -0
- data/menus/twitter.rb +57 -0
- data/menus/wikipedia.rb +34 -0
- data/menus/words.rb +11 -0
- data/spec/code_tree_spec.rb +59 -0
- data/spec/diff_log_spec.rb +40 -0
- data/spec/file_tree_spec.rb +102 -0
- data/spec/keys_spec.rb +24 -0
- data/spec/line_spec.rb +68 -0
- data/spec/menu_spec.rb +50 -0
- data/spec/ol_spec.rb +98 -0
- data/spec/remote_spec.rb +43 -0
- data/spec/search_spec.rb +162 -0
- data/spec/text_util_spec.rb +119 -0
- data/spec/tree_cursor_spec.rb +91 -0
- data/spec/tree_spec.rb +955 -0
- data/tests/console_test.rb +11 -0
- data/tests/couch_db_test.rb +12 -0
- data/tests/diff_log_test.rb +43 -0
- data/tests/el_mixin.rb +16 -0
- data/tests/git_test.rb +95 -0
- data/tests/keys_test.rb +19 -0
- data/tests/line_test.rb +38 -0
- data/tests/merb_test.rb +11 -0
- data/tests/redmine_test.rb +50 -0
- data/tests/remote_test.rb +31 -0
- data/tests/rest_tree_test.rb +70 -0
- data/xiki.gemspec +37 -0
- metadata +332 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
require 'test/unit'
|
|
2
|
+
$:.unshift File.expand_path("..")
|
|
3
|
+
require 'console'
|
|
4
|
+
require 'ol'
|
|
5
|
+
class CodeTreeTest < Test::Unit::TestCase
|
|
6
|
+
|
|
7
|
+
def test_extract_method
|
|
8
|
+
assert_equal("ssh foo@foo.org", Console.ssh_line("/foo@foo.org/"))
|
|
9
|
+
assert_equal("ssh -p 1234 foo@foo.org", Console.ssh_line("foo@foo.org:1234"))
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
require 'test/unit'
|
|
2
|
+
$:.unshift "../"
|
|
3
|
+
require 'diff_log'
|
|
4
|
+
|
|
5
|
+
class FileTreeTest < Test::Unit::TestCase
|
|
6
|
+
# Should correctly format simple diff
|
|
7
|
+
def test_format
|
|
8
|
+
formatted = DiffLog.format("/projects/xiki/trunk/", "diff_log.rb",
|
|
9
|
+
"|--- /projects/xiki/trunk/diff_log.rb 2008-03-03 20:35:30.000000000 -0500
|
|
10
|
+
|+++ /tmp/latest-diff.txt 2008-03-03 20:35:44.000000000 -0500
|
|
11
|
+
|@@ -56,0 +57 @@
|
|
12
|
+
|+#new
|
|
13
|
+
|".gsub(/^ *\|/, '')
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
result =
|
|
17
|
+
"|/projects/xiki/trunk/
|
|
18
|
+
| diff_log.rb
|
|
19
|
+
| :57
|
|
20
|
+
| +|#new
|
|
21
|
+
|".gsub(/^ *\|/, '')
|
|
22
|
+
assert_equal(result, formatted)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Should correctly format simple diff
|
|
26
|
+
def test_format_without_path
|
|
27
|
+
formatted = DiffLog.format("/projects/xiki/trunk/", "diff_log.rb",
|
|
28
|
+
"|--- /projects/xiki/trunk/diff_log.rb 2008-03-03 20:35:30.000000000 -0500
|
|
29
|
+
|+++ /tmp/latest-diff.txt 2008-03-03 20:35:44.000000000 -0500
|
|
30
|
+
|@@ -56,0 +57 @@
|
|
31
|
+
|+#new
|
|
32
|
+
|".gsub(/^ *\|/, '')
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
result =
|
|
36
|
+
"|/projects/xiki/trunk/
|
|
37
|
+
| diff_log.rb
|
|
38
|
+
| :57
|
|
39
|
+
| +|#new
|
|
40
|
+
|".gsub(/^ *\|/, '')
|
|
41
|
+
assert_equal(result, formatted)
|
|
42
|
+
end
|
|
43
|
+
end
|
data/tests/el_mixin.rb
ADDED
data/tests/git_test.rb
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
require 'test/unit'
|
|
2
|
+
$:.unshift "../"
|
|
3
|
+
require 'ol'
|
|
4
|
+
require 'core_ext'
|
|
5
|
+
require 'yaml'
|
|
6
|
+
require 'git'
|
|
7
|
+
|
|
8
|
+
class GitTest < Test::Unit::TestCase
|
|
9
|
+
|
|
10
|
+
@@status_raw = '
|
|
11
|
+
# On branch master
|
|
12
|
+
# Changes to be committed:
|
|
13
|
+
# (use "git reset HEAD <file>..." to unstage)
|
|
14
|
+
#
|
|
15
|
+
# new file: unadded.txt
|
|
16
|
+
# modified: modified.rb
|
|
17
|
+
#
|
|
18
|
+
# Changed but not updated:
|
|
19
|
+
# (use "git add <file>..." to update what will be committed)
|
|
20
|
+
#
|
|
21
|
+
# modified: changed.rb
|
|
22
|
+
# modified: modifiedandadded.rb
|
|
23
|
+
#
|
|
24
|
+
# Untracked files:
|
|
25
|
+
# (use "git add <file>..." to include in what will be committed)
|
|
26
|
+
#
|
|
27
|
+
# untracked.rb
|
|
28
|
+
# untracked2.rb
|
|
29
|
+
'.unindent
|
|
30
|
+
|
|
31
|
+
@@status_parsed = '
|
|
32
|
+
| On branch master
|
|
33
|
+
| Changes to be committed:
|
|
34
|
+
| (use "git reset HEAD <file>..." to unstage)
|
|
35
|
+
- new file: unadded.txt
|
|
36
|
+
- modified: modified.rb
|
|
37
|
+
| Changed but not updated:
|
|
38
|
+
| (use "git add <file>..." to update what will be committed)
|
|
39
|
+
- modified: changed.rb
|
|
40
|
+
- modified: modifiedandadded.rb
|
|
41
|
+
| Untracked files:
|
|
42
|
+
| (use "git add <file>..." to include in what will be committed)
|
|
43
|
+
- untracked.rb
|
|
44
|
+
- untracked2.rb
|
|
45
|
+
'.unindent
|
|
46
|
+
|
|
47
|
+
@@status_parsed_only_new = '
|
|
48
|
+
| On branch master
|
|
49
|
+
| Initial commit
|
|
50
|
+
| Untracked files:
|
|
51
|
+
| (use "git add <file>..." to include in what will be committed)
|
|
52
|
+
- a.txt
|
|
53
|
+
nothing added to commit but untracked files present (use "git add" to track)
|
|
54
|
+
'.unindent
|
|
55
|
+
|
|
56
|
+
# Should parse status initially
|
|
57
|
+
def test_status_internal
|
|
58
|
+
result = Git.status_internal @@status_raw
|
|
59
|
+
assert_equal @@status_parsed, result
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# Should parse status into hash of arrays
|
|
63
|
+
def test_status_to_hash
|
|
64
|
+
|
|
65
|
+
# Parse it
|
|
66
|
+
hash = Git.status_to_hash @@status_parsed
|
|
67
|
+
|
|
68
|
+
assert hash[:unadded]
|
|
69
|
+
assert_equal [
|
|
70
|
+
['modified', 'changed.rb'],
|
|
71
|
+
['modified', 'modifiedandadded.rb']],
|
|
72
|
+
hash[:unadded]
|
|
73
|
+
|
|
74
|
+
assert hash[:added]
|
|
75
|
+
assert_equal [
|
|
76
|
+
['new file', 'unadded.txt'],
|
|
77
|
+
['modified', 'modified.rb']],
|
|
78
|
+
hash[:added]
|
|
79
|
+
|
|
80
|
+
assert hash[:untracked]
|
|
81
|
+
assert_equal [
|
|
82
|
+
['untracked', 'untracked.rb'],
|
|
83
|
+
['untracked', 'untracked2.rb']],
|
|
84
|
+
hash[:untracked]
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# Should handle only new
|
|
88
|
+
def test_status_to_hash_only_new
|
|
89
|
+
# Parse it
|
|
90
|
+
hash = Git.status_to_hash @@status_parsed_only_new
|
|
91
|
+
|
|
92
|
+
assert hash[:untracked]
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
end
|
data/tests/keys_test.rb
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require 'test/unit'
|
|
2
|
+
$:.unshift "../"
|
|
3
|
+
require 'ol'
|
|
4
|
+
require 'core_ext'
|
|
5
|
+
require 'yaml'
|
|
6
|
+
require 'keys'
|
|
7
|
+
|
|
8
|
+
class GitTest < Test::Unit::TestCase
|
|
9
|
+
|
|
10
|
+
def test_words_to_letters
|
|
11
|
+
assert_equal "TE", Keys.words_to_letters("to_end")
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_status_to_hash
|
|
15
|
+
assert_equal "C-t C-e", Keys.translate_keys("TE")
|
|
16
|
+
assert_equal "M-t C-e", Keys.translate_keys("_TE")
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
data/tests/line_test.rb
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
require 'test/unit'
|
|
2
|
+
$:.unshift "../"
|
|
3
|
+
require 'line'
|
|
4
|
+
require 'core_ext'
|
|
5
|
+
|
|
6
|
+
class LineTest < Test::Unit::TestCase
|
|
7
|
+
|
|
8
|
+
def test_normal
|
|
9
|
+
assert_equal "you", Line.without_label(:line=>"- hey: you")
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def test_just_bullet
|
|
13
|
+
assert_equal "you", Line.without_label(:line=>"- you")
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_blank
|
|
17
|
+
assert_equal "", Line.without_label(:line=>"- hey: ")
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def test_with_indent
|
|
21
|
+
assert_equal "you", Line.without_label(:line=>" - hey: you")
|
|
22
|
+
assert_equal "", Line.without_label(:line=>" - hey: ")
|
|
23
|
+
assert_equal "you", Line.without_label(:line=>" - you")
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def test_leave_indent
|
|
27
|
+
assert_equal " you", Line.without_label(:line=>" - hey: you", :leave_indent=>true)
|
|
28
|
+
assert_equal " ", Line.without_label(:line=>" - hey: ", :leave_indent=>true)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Make sure it doesn't mess up the string
|
|
32
|
+
def test_side_effects
|
|
33
|
+
before = " - label: hey1"
|
|
34
|
+
Line.without_label(:line=>before)
|
|
35
|
+
assert_equal " - label: hey1", before
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
end
|
data/tests/merb_test.rb
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
require 'test/unit'
|
|
2
|
+
$:.unshift "../"
|
|
3
|
+
require 'redmine'
|
|
4
|
+
require 'core_ext'
|
|
5
|
+
|
|
6
|
+
class RedmineTest < Test::Unit::TestCase
|
|
7
|
+
|
|
8
|
+
# Should correctly format simple diff
|
|
9
|
+
def test_redmine_to_xiki
|
|
10
|
+
before =
|
|
11
|
+
"#Dev Team Todo
|
|
12
|
+
##h2
|
|
13
|
+
* Ad
|
|
14
|
+
* 70
|
|
15
|
+
** Make them show
|
|
16
|
+
".unindent
|
|
17
|
+
|
|
18
|
+
after =
|
|
19
|
+
"| Dev Team Todo
|
|
20
|
+
|| h2
|
|
21
|
+
- Ad
|
|
22
|
+
- 70
|
|
23
|
+
- Make them show
|
|
24
|
+
".unindent
|
|
25
|
+
|
|
26
|
+
assert_equal(after, Redmine.redmine_to_xiki(before))
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Should correctly format simple diff
|
|
30
|
+
def test_xiki_to_redmine
|
|
31
|
+
before =
|
|
32
|
+
"| Dev Team Todo
|
|
33
|
+
|| h2
|
|
34
|
+
- Ad
|
|
35
|
+
- 70
|
|
36
|
+
- Make them show
|
|
37
|
+
".unindent
|
|
38
|
+
|
|
39
|
+
after =
|
|
40
|
+
"#Dev Team Todo
|
|
41
|
+
##h2
|
|
42
|
+
* Ad
|
|
43
|
+
* 70
|
|
44
|
+
** Make them show
|
|
45
|
+
".unindent
|
|
46
|
+
|
|
47
|
+
assert_equal(after, Redmine.xiki_to_redmine(before))
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'rubygems'
|
|
2
|
+
require 'test/unit'
|
|
3
|
+
$:.unshift "../"
|
|
4
|
+
require 'remote'
|
|
5
|
+
|
|
6
|
+
class RemoteTest < Test::Unit::TestCase
|
|
7
|
+
|
|
8
|
+
def test_split_root
|
|
9
|
+
assert_equal(['user', 'foo.com', '2122', '/var/main'], Remote.split_root('user@foo.com:2122/var/main'))
|
|
10
|
+
assert_equal(['user', 'foo.com', '2122', '/'], Remote.split_root('user@foo.com:2122/'))
|
|
11
|
+
assert_equal(['user', 'foo.com', '2122', '/'], Remote.split_root('user@foo.com:2122'))
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_sort
|
|
15
|
+
txt = "ajax/
|
|
16
|
+
apcx.orig
|
|
17
|
+
css/
|
|
18
|
+
f.wav
|
|
19
|
+
".gsub(/^ +/, '')
|
|
20
|
+
|
|
21
|
+
expected = ["ajax/", "css/", "apcx.orig", "f.wav"]
|
|
22
|
+
assert_equal(expected, Remote.sort(txt))
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def test_split_root
|
|
26
|
+
assert_equal(["xiki", "xiki.org", "222", "/tmp"], Remote.split_root("xiki@xiki.org:222/tmp/"))
|
|
27
|
+
assert_equal(["xiki", "xiki.org", "22", "/tmp"], Remote.split_root("xiki@xiki.org/tmp/"))
|
|
28
|
+
assert_equal(["xiki", "xiki.org", "22", "/tmp"], Remote.split_root("/xiki@xiki.org/tmp/"))
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
require 'test/unit'
|
|
2
|
+
$:.unshift File.expand_path("..")
|
|
3
|
+
require 'rest_tree'
|
|
4
|
+
require 'ol'
|
|
5
|
+
|
|
6
|
+
class RestTreeTest < Test::Unit::TestCase
|
|
7
|
+
|
|
8
|
+
def test_handles?
|
|
9
|
+
assert RestTree.handles?(['GET http://foo.com', 'hey'])
|
|
10
|
+
assert ! RestTree.handles?(['HEY http://foo.com', 'hey'])
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def test_extract_root_verb
|
|
14
|
+
list = ['POST http://foo.com', 'PUT hey']
|
|
15
|
+
assert_equal 'POST', RestTree.extract_root_verb(list)
|
|
16
|
+
assert_equal ['http://foo.com', 'PUT hey'], list
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_extract_verb
|
|
20
|
+
line = 'POST hey'
|
|
21
|
+
assert_equal 'POST', RestTree.extract_verb(line)
|
|
22
|
+
assert_equal 'hey', line
|
|
23
|
+
|
|
24
|
+
line = 'DELETE'
|
|
25
|
+
assert_equal 'DELETE', RestTree.extract_verb(line)
|
|
26
|
+
assert line.empty? # Should be nothing left
|
|
27
|
+
|
|
28
|
+
assert_equal nil, RestTree.extract_verb('hiya')
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def test_launch_inner
|
|
32
|
+
# Single line
|
|
33
|
+
verb, path, body = RestTree.launch_inner ["PUT http://localhost:5984/foo/"], nil
|
|
34
|
+
assert_equal ['PUT', 'http://localhost:5984/foo/', nil], [verb, path, body]
|
|
35
|
+
|
|
36
|
+
# More path
|
|
37
|
+
verb, path, body = RestTree.launch_inner ["GET http://localhost:5984/foo/", "bar/"], nil
|
|
38
|
+
assert_equal ['GET', 'http://localhost:5984/foo/bar/', nil], [verb, path, body]
|
|
39
|
+
|
|
40
|
+
# More path and verb
|
|
41
|
+
verb, path, body = RestTree.launch_inner ['GET http://localhost:5984/foo/', 'bar/', 'POST'], nil
|
|
42
|
+
assert_equal ['POST', 'http://localhost:5984/foo/bar/', nil], [verb, path, body]
|
|
43
|
+
|
|
44
|
+
# More path, verb, and body
|
|
45
|
+
verb, path, body = RestTree.launch_inner ['GET http://localhost:5984/foo/', 'bar/', 'POST ["txt"]'], nil
|
|
46
|
+
assert_equal ['POST', 'http://localhost:5984/foo/bar/', '["txt"]'], [verb, path, body]
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def test_launch_inner_with_children
|
|
50
|
+
# TODO Just verb with children
|
|
51
|
+
verb, path, body = RestTree.launch_inner ['GET http://localhost:5984/foo/', 'POST'], ['a', 'b']
|
|
52
|
+
assert_equal ['POST', 'http://localhost:5984/foo/', "a\nb\n"], [verb, path, body]
|
|
53
|
+
|
|
54
|
+
# TODO Quoted children (should be ignored)
|
|
55
|
+
verb, path, body = RestTree.launch_inner ['GET http://localhost:5984/foo/', 'POST'], ['|a', '|b']
|
|
56
|
+
assert_equal ['POST', 'http://localhost:5984/foo/', nil], [verb, path, body]
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def test_remove_before_root
|
|
62
|
+
# No root anywhere
|
|
63
|
+
assert_equal [], RestTree.remove_before_root(["CodeTree.menu/"])
|
|
64
|
+
assert_equal ["GET http://foo.com"], RestTree.remove_before_root(['GET http://foo.com'])
|
|
65
|
+
assert_equal ["GET http://foo.com"], RestTree.remove_before_root(['crap', 'GET http://foo.com'])
|
|
66
|
+
assert_equal ["GET http://localhost:5984/mem/"], RestTree.remove_before_root(["CodeTree.menu/", "CouchDb.menu/", ".rest/", "mem/", "GET http://localhost:5984/mem/"])
|
|
67
|
+
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
end
|
data/xiki.gemspec
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Generated by jeweler
|
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
|
4
|
+
# -*- encoding: utf-8 -*-
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |s|
|
|
7
|
+
s.name = "xiki"
|
|
8
|
+
s.version = "0.5.0a"
|
|
9
|
+
|
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
|
+
s.authors = ["Craig Muth"]
|
|
12
|
+
s.date = "2011-08-24"
|
|
13
|
+
s.executables = ["xiki"]
|
|
14
|
+
s.summary = "A shell console with GUI features."
|
|
15
|
+
s.description = "Xiki does what shell consoles do, but lets you edit everything at any time. It's trivial to make your own commands and menus to access other tools."
|
|
16
|
+
s.email = "craig.muth@gmail.com"
|
|
17
|
+
s.extra_rdoc_files = [
|
|
18
|
+
"LICENSE",
|
|
19
|
+
"README.markdown"
|
|
20
|
+
]
|
|
21
|
+
files = `git ls-files`.split("\n")
|
|
22
|
+
|
|
23
|
+
# TMP
|
|
24
|
+
files = files.select{|o| o !~ /^etc\/xiki/}
|
|
25
|
+
|
|
26
|
+
s.files = files
|
|
27
|
+
s.homepage = "http://xiki.org"
|
|
28
|
+
s.licenses = ["MIT"]
|
|
29
|
+
s.require_paths = ["."]
|
|
30
|
+
# s.rubygems_version = "1.8.24"
|
|
31
|
+
|
|
32
|
+
# current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
|
33
|
+
# s.specification_version = 3
|
|
34
|
+
|
|
35
|
+
s.add_development_dependency("rspec", ["~> 2.3.0"])
|
|
36
|
+
|
|
37
|
+
end
|