amp 0.5.2 → 0.5.3
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/.gitignore +12 -0
- data/.hgignore +3 -0
- data/AUTHORS +1 -1
- data/Manifest.txt +99 -38
- data/README.md +3 -3
- data/Rakefile +53 -18
- data/SCHEDULE.markdown +5 -1
- data/TODO.markdown +120 -149
- data/ampfile.rb +3 -1
- data/bin/amp +4 -1
- data/ext/amp/bz2/extconf.rb +1 -1
- data/ext/amp/mercurial_patch/extconf.rb +1 -1
- data/ext/amp/mercurial_patch/mpatch.c +4 -3
- data/ext/amp/priority_queue/extconf.rb +1 -1
- data/ext/amp/support/extconf.rb +1 -1
- data/ext/amp/support/support.c +1 -1
- data/lib/amp.rb +125 -67
- data/lib/amp/commands/command.rb +12 -10
- data/lib/amp/commands/command_support.rb +8 -1
- data/lib/amp/commands/commands/help.rb +2 -20
- data/lib/amp/commands/commands/init.rb +14 -2
- data/lib/amp/commands/commands/templates.rb +6 -4
- data/lib/amp/commands/commands/version.rb +15 -1
- data/lib/amp/commands/commands/workflow.rb +3 -3
- data/lib/amp/commands/commands/workflows/git/add.rb +3 -3
- data/lib/amp/commands/commands/workflows/git/copy.rb +1 -1
- data/lib/amp/commands/commands/workflows/git/rm.rb +4 -2
- data/lib/amp/commands/commands/workflows/hg/add.rb +1 -1
- data/lib/amp/commands/commands/workflows/hg/addremove.rb +2 -2
- data/lib/amp/commands/commands/workflows/hg/annotate.rb +8 -2
- data/lib/amp/commands/commands/workflows/hg/bisect.rb +253 -0
- data/lib/amp/commands/commands/workflows/hg/branch.rb +1 -1
- data/lib/amp/commands/commands/workflows/hg/branches.rb +3 -3
- data/lib/amp/commands/commands/workflows/hg/bundle.rb +3 -3
- data/lib/amp/commands/commands/workflows/hg/clone.rb +4 -5
- data/lib/amp/commands/commands/workflows/hg/commit.rb +37 -1
- data/lib/amp/commands/commands/workflows/hg/copy.rb +2 -1
- data/lib/amp/commands/commands/workflows/hg/debug/index.rb +1 -1
- data/lib/amp/commands/commands/workflows/hg/diff.rb +3 -8
- data/lib/amp/commands/commands/workflows/hg/forget.rb +5 -4
- data/lib/amp/commands/commands/workflows/hg/identify.rb +6 -6
- data/lib/amp/commands/commands/workflows/hg/import.rb +1 -1
- data/lib/amp/commands/commands/workflows/hg/incoming.rb +2 -2
- data/lib/amp/commands/commands/workflows/hg/log.rb +5 -4
- data/lib/amp/commands/commands/workflows/hg/merge.rb +1 -1
- data/lib/amp/commands/commands/workflows/hg/move.rb +5 -3
- data/lib/amp/commands/commands/workflows/hg/outgoing.rb +1 -1
- data/lib/amp/commands/commands/workflows/hg/push.rb +6 -7
- data/lib/amp/commands/commands/workflows/hg/remove.rb +2 -2
- data/lib/amp/commands/commands/workflows/hg/resolve.rb +6 -23
- data/lib/amp/commands/commands/workflows/hg/root.rb +1 -2
- data/lib/amp/commands/commands/workflows/hg/status.rb +21 -12
- data/lib/amp/commands/commands/workflows/hg/tag.rb +2 -2
- data/lib/amp/commands/commands/workflows/hg/untrack.rb +12 -0
- data/lib/amp/commands/commands/workflows/hg/verify.rb +13 -3
- data/lib/amp/commands/commands/workflows/hg/what_changed.rb +18 -0
- data/lib/amp/commands/dispatch.rb +12 -13
- data/lib/amp/dependencies/amp_support.rb +1 -1
- data/lib/amp/dependencies/amp_support/ruby_amp_support.rb +1 -0
- data/lib/amp/dependencies/maruku.rb +136 -0
- data/lib/amp/dependencies/maruku/attributes.rb +227 -0
- data/lib/amp/dependencies/maruku/defaults.rb +71 -0
- data/lib/amp/dependencies/maruku/errors_management.rb +92 -0
- data/lib/amp/dependencies/maruku/helpers.rb +260 -0
- data/lib/amp/dependencies/maruku/input/charsource.rb +326 -0
- data/lib/amp/dependencies/maruku/input/extensions.rb +69 -0
- data/lib/amp/dependencies/maruku/input/html_helper.rb +189 -0
- data/lib/amp/dependencies/maruku/input/linesource.rb +111 -0
- data/lib/amp/dependencies/maruku/input/parse_block.rb +615 -0
- data/lib/amp/dependencies/maruku/input/parse_doc.rb +234 -0
- data/lib/amp/dependencies/maruku/input/parse_span_better.rb +746 -0
- data/lib/amp/dependencies/maruku/input/rubypants.rb +225 -0
- data/lib/amp/dependencies/maruku/input/type_detection.rb +147 -0
- data/lib/amp/dependencies/maruku/input_textile2/t2_parser.rb +163 -0
- data/lib/amp/dependencies/maruku/maruku.rb +33 -0
- data/lib/amp/dependencies/maruku/output/to_ansi.rb +223 -0
- data/lib/amp/dependencies/maruku/output/to_html.rb +991 -0
- data/lib/amp/dependencies/maruku/output/to_markdown.rb +164 -0
- data/lib/amp/dependencies/maruku/output/to_s.rb +56 -0
- data/lib/amp/dependencies/maruku/string_utils.rb +191 -0
- data/lib/amp/dependencies/maruku/structures.rb +167 -0
- data/lib/amp/dependencies/maruku/structures_inspect.rb +87 -0
- data/lib/amp/dependencies/maruku/structures_iterators.rb +61 -0
- data/lib/amp/dependencies/maruku/textile2.rb +1 -0
- data/lib/amp/dependencies/maruku/toc.rb +199 -0
- data/lib/amp/dependencies/maruku/usage/example1.rb +33 -0
- data/lib/amp/dependencies/maruku/version.rb +40 -0
- data/lib/amp/dependencies/priority_queue.rb +2 -1
- data/lib/amp/dependencies/python_config.rb +2 -1
- data/lib/amp/graphs/ancestor.rb +2 -1
- data/lib/amp/graphs/copies.rb +236 -233
- data/lib/amp/help/entries/__default__.erb +31 -0
- data/lib/amp/help/entries/commands.erb +6 -0
- data/lib/amp/help/entries/mdtest.md +35 -0
- data/lib/amp/help/entries/silly +3 -0
- data/lib/amp/help/help.rb +288 -0
- data/lib/amp/profiling_hacks.rb +5 -3
- data/lib/amp/repository/abstract/abstract_changeset.rb +97 -0
- data/lib/amp/repository/abstract/abstract_local_repo.rb +181 -0
- data/lib/amp/repository/abstract/abstract_staging_area.rb +180 -0
- data/lib/amp/repository/abstract/abstract_versioned_file.rb +100 -0
- data/lib/amp/repository/abstract/common_methods/changeset.rb +75 -0
- data/lib/amp/repository/abstract/common_methods/local_repo.rb +277 -0
- data/lib/amp/repository/abstract/common_methods/staging_area.rb +233 -0
- data/lib/amp/repository/abstract/common_methods/versioned_file.rb +71 -0
- data/lib/amp/repository/generic_repo_picker.rb +78 -0
- data/lib/amp/repository/git/repo_format/changeset.rb +336 -0
- data/lib/amp/repository/git/repo_format/staging_area.rb +192 -0
- data/lib/amp/repository/git/repo_format/versioned_file.rb +119 -0
- data/lib/amp/repository/git/repositories/local_repository.rb +164 -0
- data/lib/amp/repository/git/repository.rb +41 -0
- data/lib/amp/repository/mercurial/encoding/mercurial_diff.rb +382 -0
- data/lib/amp/repository/mercurial/encoding/mercurial_patch.rb +1 -0
- data/lib/amp/repository/mercurial/encoding/patch.rb +294 -0
- data/lib/amp/repository/mercurial/encoding/pure_ruby/ruby_mercurial_patch.rb +124 -0
- data/lib/amp/repository/mercurial/merging/merge_ui.rb +327 -0
- data/lib/amp/repository/mercurial/merging/simple_merge.rb +452 -0
- data/lib/amp/repository/mercurial/repo_format/branch_manager.rb +266 -0
- data/lib/amp/repository/mercurial/repo_format/changeset.rb +768 -0
- data/lib/amp/repository/mercurial/repo_format/dir_state.rb +716 -0
- data/lib/amp/repository/mercurial/repo_format/journal.rb +218 -0
- data/lib/amp/repository/mercurial/repo_format/lock.rb +210 -0
- data/lib/amp/repository/mercurial/repo_format/merge_state.rb +228 -0
- data/lib/amp/repository/mercurial/repo_format/staging_area.rb +367 -0
- data/lib/amp/repository/mercurial/repo_format/store.rb +487 -0
- data/lib/amp/repository/mercurial/repo_format/tag_manager.rb +322 -0
- data/lib/amp/repository/mercurial/repo_format/updatable.rb +543 -0
- data/lib/amp/repository/mercurial/repo_format/updater.rb +848 -0
- data/lib/amp/repository/mercurial/repo_format/verification.rb +433 -0
- data/lib/amp/repository/mercurial/repositories/bundle_repository.rb +216 -0
- data/lib/amp/repository/mercurial/repositories/http_repository.rb +386 -0
- data/lib/amp/repository/mercurial/repositories/local_repository.rb +2034 -0
- data/lib/amp/repository/mercurial/repository.rb +119 -0
- data/lib/amp/repository/mercurial/revlogs/bundle_revlogs.rb +249 -0
- data/lib/amp/repository/mercurial/revlogs/changegroup.rb +217 -0
- data/lib/amp/repository/mercurial/revlogs/changelog.rb +339 -0
- data/lib/amp/repository/mercurial/revlogs/file_log.rb +152 -0
- data/lib/amp/repository/mercurial/revlogs/index.rb +500 -0
- data/lib/amp/repository/mercurial/revlogs/manifest.rb +201 -0
- data/lib/amp/repository/mercurial/revlogs/node.rb +20 -0
- data/lib/amp/repository/mercurial/revlogs/revlog.rb +1026 -0
- data/lib/amp/repository/mercurial/revlogs/revlog_support.rb +129 -0
- data/lib/amp/repository/mercurial/revlogs/versioned_file.rb +597 -0
- data/lib/amp/repository/repository.rb +11 -88
- data/lib/amp/server/extension/amp_extension.rb +3 -3
- data/lib/amp/server/fancy_http_server.rb +1 -1
- data/lib/amp/server/fancy_views/_browser.haml +1 -1
- data/lib/amp/server/fancy_views/_diff_file.haml +1 -8
- data/lib/amp/server/fancy_views/changeset.haml +2 -2
- data/lib/amp/server/fancy_views/file.haml +1 -1
- data/lib/amp/server/fancy_views/file_diff.haml +1 -1
- data/lib/amp/support/amp_ui.rb +13 -29
- data/lib/amp/support/generator.rb +1 -1
- data/lib/amp/support/loaders.rb +1 -2
- data/lib/amp/support/logger.rb +10 -16
- data/lib/amp/support/match.rb +18 -4
- data/lib/amp/support/mercurial/ignore.rb +151 -0
- data/lib/amp/support/openers.rb +8 -3
- data/lib/amp/support/support.rb +91 -46
- data/lib/amp/templates/{blank.commit.erb → mercurial/blank.commit.erb} +0 -0
- data/lib/amp/templates/{blank.log.erb → mercurial/blank.log.erb} +0 -0
- data/lib/amp/templates/{default.commit.erb → mercurial/default.commit.erb} +0 -0
- data/lib/amp/templates/{default.log.erb → mercurial/default.log.erb} +0 -0
- data/lib/amp/templates/template.rb +18 -18
- data/man/amp.1 +51 -0
- data/site/src/about/commands.haml +1 -1
- data/site/src/css/amp.css +1 -1
- data/site/src/index.haml +3 -3
- data/tasks/man.rake +39 -0
- data/tasks/stats.rake +1 -10
- data/tasks/yard.rake +1 -50
- data/test/dirstate_tests/test_dir_state.rb +10 -8
- data/test/functional_tests/annotate.out +31 -0
- data/test/functional_tests/test_functional.rb +155 -63
- data/test/localrepo_tests/ampfile.rb +12 -0
- data/test/localrepo_tests/test_local_repo.rb +56 -57
- data/test/manifest_tests/test_manifest.rb +3 -5
- data/test/merge_tests/test_merge.rb +3 -3
- data/test/revlog_tests/test_revlog.rb +14 -6
- data/test/store_tests/test_fncache_store.rb +19 -19
- data/test/test_19_compatibility.rb +46 -0
- data/test/test_base85.rb +2 -2
- data/test/test_bdiff.rb +2 -2
- data/test/test_changegroup.rb +59 -0
- data/test/test_commands.rb +2 -2
- data/test/test_difflib.rb +2 -2
- data/test/test_generator.rb +34 -0
- data/test/test_ignore.rb +203 -0
- data/test/test_journal.rb +18 -13
- data/test/test_match.rb +2 -2
- data/test/test_mdiff.rb +3 -3
- data/test/test_mpatch.rb +3 -3
- data/test/test_multi_io.rb +40 -0
- data/test/test_support.rb +18 -2
- data/test/test_templates.rb +38 -0
- data/test/test_ui.rb +79 -0
- data/test/testutilities.rb +56 -0
- metadata +168 -49
- data/ext/amp/bz2/mkmf.log +0 -38
- data/lib/amp/encoding/mercurial_diff.rb +0 -378
- data/lib/amp/encoding/mercurial_patch.rb +0 -1
- data/lib/amp/encoding/patch.rb +0 -292
- data/lib/amp/encoding/pure_ruby/ruby_mercurial_patch.rb +0 -123
- data/lib/amp/merges/merge_state.rb +0 -164
- data/lib/amp/merges/merge_ui.rb +0 -322
- data/lib/amp/merges/simple_merge.rb +0 -450
- data/lib/amp/repository/branch_manager.rb +0 -234
- data/lib/amp/repository/dir_state.rb +0 -950
- data/lib/amp/repository/journal.rb +0 -203
- data/lib/amp/repository/lock.rb +0 -207
- data/lib/amp/repository/repositories/bundle_repository.rb +0 -214
- data/lib/amp/repository/repositories/http_repository.rb +0 -377
- data/lib/amp/repository/repositories/local_repository.rb +0 -2661
- data/lib/amp/repository/store.rb +0 -485
- data/lib/amp/repository/tag_manager.rb +0 -319
- data/lib/amp/repository/updatable.rb +0 -532
- data/lib/amp/repository/verification.rb +0 -431
- data/lib/amp/repository/versioned_file.rb +0 -475
- data/lib/amp/revlogs/bundle_revlogs.rb +0 -246
- data/lib/amp/revlogs/changegroup.rb +0 -217
- data/lib/amp/revlogs/changelog.rb +0 -338
- data/lib/amp/revlogs/changeset.rb +0 -521
- data/lib/amp/revlogs/file_log.rb +0 -165
- data/lib/amp/revlogs/index.rb +0 -493
- data/lib/amp/revlogs/manifest.rb +0 -195
- data/lib/amp/revlogs/node.rb +0 -18
- data/lib/amp/revlogs/revlog.rb +0 -1045
- data/lib/amp/revlogs/revlog_support.rb +0 -126
- data/lib/amp/support/ignore.rb +0 -144
- data/site/Rakefile +0 -38
- data/test/test_amp.rb +0 -9
- data/test/test_helper.rb +0 -15
data/test/test_commands.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
require
|
|
1
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), 'testutilities')
|
|
2
2
|
require File.expand_path(File.join(File.dirname(__FILE__), "../lib/amp"))
|
|
3
3
|
require File.expand_path(File.join(File.dirname(__FILE__), "../lib/amp/commands/command.rb"))
|
|
4
4
|
|
|
5
|
-
class TestCommmands <
|
|
5
|
+
class TestCommmands < AmpTestCase
|
|
6
6
|
include Amp
|
|
7
7
|
include Amp::KernelMethods
|
|
8
8
|
extend Amp::KernelMethods
|
data/test/test_difflib.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
require
|
|
1
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), 'testutilities')
|
|
2
2
|
require File.expand_path(File.join(File.dirname(__FILE__), "../lib/amp"))
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
class TestDifflib <
|
|
5
|
+
class TestDifflib < AmpTestCase
|
|
6
6
|
include Amp::Diffs
|
|
7
7
|
def test_one_match
|
|
8
8
|
matcher = SequenceMatcher.new("hi there my name is mike i hope you like me",
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), 'testutilities')
|
|
2
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "../lib/amp/support/generator"))
|
|
3
|
+
|
|
4
|
+
class FibonacciGeneratorTester < Generator
|
|
5
|
+
def generator_loop
|
|
6
|
+
a, b = 0, 1
|
|
7
|
+
while true
|
|
8
|
+
yield_gen b
|
|
9
|
+
a, b = b, a + b
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
class TestGenerator < AmpTestCase
|
|
15
|
+
def setup
|
|
16
|
+
@generator = FibonacciGeneratorTester.new
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_next
|
|
20
|
+
assert_equal 1, @generator.next
|
|
21
|
+
assert_equal 1, @generator.next
|
|
22
|
+
assert_equal 2, @generator.next
|
|
23
|
+
assert_equal 3, @generator.next
|
|
24
|
+
assert_equal 5, @generator.next
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_reset
|
|
28
|
+
10.times { @generator.next }
|
|
29
|
+
#reset it, first num should be 1
|
|
30
|
+
@generator.reset
|
|
31
|
+
assert_equal 1, @generator.next
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end
|
data/test/test_ignore.rb
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), 'testutilities')
|
|
2
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "../lib/amp"))
|
|
3
|
+
|
|
4
|
+
class TestIgnore < AmpTestCase
|
|
5
|
+
include Amp::Mercurial::Ignore
|
|
6
|
+
|
|
7
|
+
def setup
|
|
8
|
+
super
|
|
9
|
+
@ignore_path = self.write_file "ignore" do |io|
|
|
10
|
+
io << "syntax: glob\n" << "test/**/test_*.rb\n" << "doc/*\n"
|
|
11
|
+
io << "syntax: regexp\n\.DS_Store\n"
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
#### parse_line #############
|
|
16
|
+
|
|
17
|
+
def test_parse_line_no_sym
|
|
18
|
+
assert_nil parse_line(nil, "doc/*")
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_parse_line_regexp
|
|
22
|
+
expected = /doc\/(\d\d\d)/
|
|
23
|
+
assert_regexp_equal expected, parse_line(:regexp, "doc/(\\d\\d\\d)")
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def test_parse_line_glob_one_star
|
|
27
|
+
input = "test/*/test_*.rb"
|
|
28
|
+
expected = /^test\/[^\/]*\/test_[^\/]*\.rb/
|
|
29
|
+
result = parse_line(:glob, input)
|
|
30
|
+
assert_regexp_equal expected, result
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def test_glob_one_star_matches
|
|
34
|
+
input = "test/*/test_*.rb"
|
|
35
|
+
result = parse_line(:glob, input)
|
|
36
|
+
assert_match(result, "test/silly/test_crazy.rb")
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def test_glob_one_star_is_not_relative
|
|
40
|
+
input = "test/*/test_*.rb"
|
|
41
|
+
result = parse_line(:glob, input)
|
|
42
|
+
refute_match(result, "some/test/silly/test_crazy.rb")
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def test_parse_line_relglob_one_star
|
|
46
|
+
input = "test/*/test_*.rb"
|
|
47
|
+
expected = /test\/[^\/]*\/test_[^\/]*\.rb/
|
|
48
|
+
result = parse_line(:relglob, input)
|
|
49
|
+
assert_regexp_equal expected, result
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def test_relglob_one_star_matches
|
|
53
|
+
input = "test/*/test_*.rb"
|
|
54
|
+
result = parse_line(:relglob, input)
|
|
55
|
+
assert_match(result, "test/silly/test_crazy.rb")
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def test_relglob_one_star_also_relative
|
|
59
|
+
input = "test/*/test_*.rb"
|
|
60
|
+
result = parse_line(:relglob, input)
|
|
61
|
+
assert_match(result, "some/test/silly/test_crazy.rb")
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def test_parse_line_glob_two_star
|
|
65
|
+
input = "test/**/test_*.rb"
|
|
66
|
+
expected = /^test\/(?:.*\/)*test_[^\/]*\.rb/
|
|
67
|
+
result = parse_line(:glob, input)
|
|
68
|
+
assert_regexp_equal expected, result
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def test_glob_two_star_matches_subdirs
|
|
72
|
+
input = "test/**/test_*.rb"
|
|
73
|
+
result = parse_line(:glob, input)
|
|
74
|
+
assert_match(result, "test/first/second/third/fourth/test_filez.rb")
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def test_glob_two_star_matches_no_subdirs
|
|
78
|
+
input = "test/**/test_*.rb"
|
|
79
|
+
result = parse_line(:glob, input)
|
|
80
|
+
assert_match(result, "test/test_filez.rb")
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
#### matcher_for_string #############
|
|
84
|
+
|
|
85
|
+
# defaults to regexp
|
|
86
|
+
def test_matcher_for_string_nilcase
|
|
87
|
+
expected = /doc\/(\d\d\d)/
|
|
88
|
+
result = matcher_for_string("doc/(\\d\\d\\d)")
|
|
89
|
+
assert_regexp_equal expected, result
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def test_matcher_for_string_glob
|
|
93
|
+
input = "glob: test/**/test_*.rb"
|
|
94
|
+
expected = /^test\/(?:.*\/)*test_[^\/]*\.rb/
|
|
95
|
+
result = matcher_for_string(input)
|
|
96
|
+
assert_regexp_equal expected, result
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def test_matcher_for_string_relglob
|
|
100
|
+
input = "relglob: test/**/test_*.rb"
|
|
101
|
+
expected = /test\/(?:.*\/)*test_[^\/]*\.rb/
|
|
102
|
+
result = matcher_for_string(input)
|
|
103
|
+
assert_regexp_equal expected, result
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
def test_matcher_for_string_regexp
|
|
107
|
+
expected = /doc\/(\d\d\d)/
|
|
108
|
+
result = matcher_for_string("regexp: doc/(\\d\\d\\d)")
|
|
109
|
+
assert_regexp_equal expected, result
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
#### regexps_to_proc #############
|
|
113
|
+
|
|
114
|
+
def test_regexps_to_proc_matches
|
|
115
|
+
prok = regexps_to_proc(/abc/, /bcd/, /a*bc/)
|
|
116
|
+
assert prok.call("abc")
|
|
117
|
+
assert prok.call("aaaaabc")
|
|
118
|
+
assert prok.call("bcd")
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def test_regexps_to_proc_doesnt_match
|
|
122
|
+
prok = regexps_to_proc(/abc/, /bcd/, /a*bc/)
|
|
123
|
+
assert_false prok.call("cde")
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
#### strip_comment #############
|
|
127
|
+
|
|
128
|
+
def test_strip_comment_simple
|
|
129
|
+
assert_equal "", strip_comment("# hello there")
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def test_strip_comment_other_stuff
|
|
133
|
+
assert_equal "hello ", strip_comment("hello # there")
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
def test_strip_comment_no_comment
|
|
137
|
+
assert_equal "hello there", strip_comment("hello there")
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def test_strip_comment_escaped_hashes
|
|
141
|
+
assert_equal "hello # there", strip_comment("hello \\# there")
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
def test_strip_comment_complex
|
|
145
|
+
assert_equal "hello # there ##", strip_comment("hello \\# there \\#\\## some comment")
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
#### parse_lines #############
|
|
149
|
+
|
|
150
|
+
def test_parse_lines_simple
|
|
151
|
+
input = "hello\nthere\nhow\nare\nyou"
|
|
152
|
+
assert_equal %w[hello there how are you], parse_lines(input)
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
def test_parse_lines_strip_whitespace
|
|
156
|
+
input = "hello \t\nthere\t \nhow\t\t \t\nare \t\t \nyou \t\t \t"
|
|
157
|
+
assert_equal %w[hello there how are you], parse_lines(input)
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
def test_parse_lines_remove_empty
|
|
161
|
+
input = "hello\n\nthere\n\ni\n \nam\n\n\n\n\nmike"
|
|
162
|
+
assert_equal %w[hello there i am mike], parse_lines(input)
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
def test_parse_lines_strip_comments
|
|
166
|
+
input = <<-EOF
|
|
167
|
+
hi there # introduction
|
|
168
|
+
my name
|
|
169
|
+
|
|
170
|
+
is mike
|
|
171
|
+
EOF
|
|
172
|
+
expected = ["hi there", "my name", "is mike"]
|
|
173
|
+
assert_equal expected, parse_lines(input)
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
#### matcher_for_text #############
|
|
177
|
+
|
|
178
|
+
def test_matcher_for_text_simple
|
|
179
|
+
input = "syntax: regexp\n\\.DS_Store # God damn OS X files\ndoc/\\d\\d\\d.txt\n\n"
|
|
180
|
+
expected = [/\.DS_Store/, /doc\/\d\d\d.txt/]
|
|
181
|
+
result = matcher_for_text input
|
|
182
|
+
expected.zip(result).each {|a,b| assert_regexp_equal a,b}
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
def test_matcher_for_text_mixed
|
|
186
|
+
input = "syntax: regexp\n\\.DS_Store # God damn OS X files\nsyntax: glob \ntest/**/test_*.rb\n\n"
|
|
187
|
+
expected = [/\.DS_Store/, /^test\/(?:.*\/)*test_[^\/]*\.rb/]
|
|
188
|
+
result = matcher_for_text input
|
|
189
|
+
expected.zip(result).each {|a,b| assert_regexp_equal a,b}
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
#### parse_ignore #############
|
|
193
|
+
|
|
194
|
+
def test_parse_ignore
|
|
195
|
+
proc = parse_ignore File.dirname(@ignore_path), "ignore"
|
|
196
|
+
assert proc.call("test/some/test/dir/test_crazy.rb")
|
|
197
|
+
assert proc.call("test/test_crazy.rb")
|
|
198
|
+
assert proc.call("doc/file.html")
|
|
199
|
+
assert_false proc.call("dir/doc/dir/file.html")
|
|
200
|
+
assert proc.call(".DS_Store")
|
|
201
|
+
assert proc.call("some/dir/.DS_Store")
|
|
202
|
+
end
|
|
203
|
+
end
|
data/test/test_journal.rb
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
require
|
|
1
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), 'testutilities')
|
|
2
2
|
require File.expand_path(File.join(File.dirname(__FILE__), "../lib/amp"))
|
|
3
3
|
|
|
4
|
-
class TestJournal <
|
|
4
|
+
class TestJournal < AmpTestCase
|
|
5
5
|
def test_journal
|
|
6
6
|
tfile = "tempjournal"
|
|
7
|
-
j = Amp::Journal.new(Amp::StandardErrorReporter, tfile,
|
|
8
|
-
j <<
|
|
7
|
+
j = Amp::Mercurial::Journal.new(:reporter => Amp::StandardErrorReporter, :journal => tfile, :opener => simple_opener)
|
|
8
|
+
j << {:file => "file", :offset => 12345}
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
test_open.close
|
|
10
|
+
open(tfile) do |input|
|
|
11
|
+
assert_equal("file\0#{12345}\n", input.read)
|
|
12
|
+
end
|
|
14
13
|
j.close
|
|
15
14
|
|
|
16
15
|
assert !File.exists?(tfile)
|
|
@@ -18,12 +17,18 @@ class TestJournal < Test::Unit::TestCase
|
|
|
18
17
|
|
|
19
18
|
def test_journal_start_mode
|
|
20
19
|
tfile = "tempjournal"
|
|
21
|
-
Amp::Journal.start
|
|
22
|
-
j <<
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
Amp::Mercurial::Journal.start(tfile, :opener => simple_opener) do |j|
|
|
21
|
+
j << {:file => "file", :offset => 12345}
|
|
22
|
+
open(tfile) do |input|
|
|
23
|
+
assert_equal("file\0#{12345}\n", input.read)
|
|
24
|
+
end
|
|
26
25
|
end
|
|
27
26
|
assert !File.exists?(tfile)
|
|
28
27
|
end
|
|
28
|
+
|
|
29
|
+
def simple_opener
|
|
30
|
+
opener = Amp::Opener.new(Dir.pwd)
|
|
31
|
+
opener.default = :open_file
|
|
32
|
+
opener
|
|
33
|
+
end
|
|
29
34
|
end
|
data/test/test_match.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
require
|
|
1
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), 'testutilities')
|
|
2
2
|
require File.expand_path(File.join(File.dirname(__FILE__), "../lib/amp"))
|
|
3
3
|
|
|
4
|
-
class TestMatch <
|
|
4
|
+
class TestMatch < AmpTestCase
|
|
5
5
|
|
|
6
6
|
def setup
|
|
7
7
|
@all_files = ["silly.rb", "code/lib.rb", "code/support.yml", "bin/amp.rb", "test/test_bdiff.rb"]
|
data/test/test_mdiff.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
require
|
|
1
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), 'testutilities')
|
|
2
2
|
require File.expand_path(File.join(File.dirname(__FILE__), "../lib/amp"))
|
|
3
3
|
|
|
4
|
-
class TestMdiff <
|
|
5
|
-
include Amp::Diffs
|
|
4
|
+
class TestMdiff < AmpTestCase
|
|
5
|
+
include Amp::Diffs::Mercurial
|
|
6
6
|
|
|
7
7
|
def test_default_whitespace_clean
|
|
8
8
|
opts = MercurialDiff::DEFAULT_OPTIONS.dup
|
data/test/test_mpatch.rb
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# -*- coding: us-ascii -*-
|
|
2
2
|
require 'stringio'
|
|
3
|
-
require
|
|
3
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), 'testutilities')
|
|
4
4
|
require File.expand_path(File.join(File.dirname(__FILE__), "../lib/amp"))
|
|
5
5
|
|
|
6
|
-
class TestMpatch <
|
|
7
|
-
include Amp::Diffs
|
|
6
|
+
class TestMpatch < AmpTestCase
|
|
7
|
+
include Amp::Diffs::Mercurial
|
|
8
8
|
def test_apply_patch
|
|
9
9
|
patch = "\000\000\000\t\000\000\000\021\000\000\000\ni'm stupid"
|
|
10
10
|
input = "hi there\ni'm cool"
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
require 'stringio'
|
|
2
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), 'testutilities')
|
|
3
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "../lib/amp/support/multi_io"))
|
|
4
|
+
|
|
5
|
+
class TestMultiIO < AmpTestCase
|
|
6
|
+
def setup
|
|
7
|
+
input1 = StringIO.new("input1")
|
|
8
|
+
input2 = StringIO.new("input2input2")
|
|
9
|
+
input3 = StringIO.new("input3")
|
|
10
|
+
@multi_io = Amp::Support::MultiIO.new(input1, input2, input3)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def test_read_all
|
|
14
|
+
assert_equal "input1input2input2input3", @multi_io.read
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_read_3_bytes
|
|
18
|
+
assert_equal "inp", @multi_io.read(3)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_rewind
|
|
22
|
+
@multi_io.read(3)
|
|
23
|
+
@multi_io.rewind
|
|
24
|
+
assert_equal 0, @multi_io.tell
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_pos
|
|
28
|
+
@multi_io.read(7)
|
|
29
|
+
assert_equal 7, @multi_io.tell
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def test_read_crossing_ios
|
|
33
|
+
assert_equal "input1inp", @multi_io.read(9)
|
|
34
|
+
assert_equal "ut2input2in", @multi_io.read(11)
|
|
35
|
+
assert_equal "put3", @multi_io.read
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
end
|
data/test/test_support.rb
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
require
|
|
1
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), 'testutilities')
|
|
2
2
|
require File.expand_path(File.join(File.dirname(__FILE__), "../lib/amp"))
|
|
3
3
|
|
|
4
|
-
class
|
|
4
|
+
class OppositeMethodTestKlass
|
|
5
|
+
def base(input)
|
|
6
|
+
!!input
|
|
7
|
+
end
|
|
8
|
+
opposite_method :opposite, :base
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
class TestSupport < AmpTestCase
|
|
5
12
|
def test_split_newlines
|
|
6
13
|
assert_equal(["hi there what's\n", "\r up there\r kids\n", " lol"], "hi there what's\n\r up there\r kids\n lol".split_newlines)
|
|
7
14
|
end
|
|
@@ -18,6 +25,15 @@ class TestSupport < Test::Unit::TestCase
|
|
|
18
25
|
end
|
|
19
26
|
end
|
|
20
27
|
|
|
28
|
+
def test_opposite_method
|
|
29
|
+
obj = OppositeMethodTestKlass.new
|
|
30
|
+
assert_respond_to obj, :opposite
|
|
31
|
+
assert obj.base(true)
|
|
32
|
+
assert_false obj.opposite(true)
|
|
33
|
+
assert_false obj.base(false)
|
|
34
|
+
assert obj.opposite(false)
|
|
35
|
+
end
|
|
36
|
+
|
|
21
37
|
end
|
|
22
38
|
|
|
23
39
|
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), 'testutilities')
|
|
2
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "../lib/amp/templates/template"))
|
|
3
|
+
|
|
4
|
+
class TestTemplates < AmpTestCase
|
|
5
|
+
include Amp::Support
|
|
6
|
+
|
|
7
|
+
def setup
|
|
8
|
+
@template = Template.new(:log, :test, :erb, "<%= name %> <%= age %>")
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def test_new_template
|
|
12
|
+
assert @template
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def test_unregister
|
|
16
|
+
Template.unregister(:log, :test)
|
|
17
|
+
assert_nil(Template[:log, :test])
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def test_render
|
|
21
|
+
name = "Steve"
|
|
22
|
+
age = 21
|
|
23
|
+
assert_equal "Steve 21", @template.render({}, binding)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def test_locals
|
|
27
|
+
locals = {:name => "Steve", :age => 21}
|
|
28
|
+
assert_equal("Steve 21", @template.render(locals))
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def test_loading_defaults
|
|
32
|
+
Template.ensure_templates_loaded
|
|
33
|
+
assert Template.templates_loaded?
|
|
34
|
+
assert_not_nil(Template[:mercurial, "default-commit"])
|
|
35
|
+
assert_not_nil(Template[:mercurial, "default-log"])
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
end
|