spline 0.0.5 → 0.0.6

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 (130) hide show
  1. checksums.yaml +4 -4
  2. data/bin/spline +11 -9
  3. data/lib/spline/version.rb +1 -1
  4. data/lib/spline.rb +1 -8
  5. data/vendor/bundle/ruby/2.1.0/bin/rake +23 -0
  6. data/vendor/bundle/ruby/2.1.0/bin/spline +23 -0
  7. data/vendor/bundle/ruby/2.1.0/build_info/rake-10.3.2.info +1 -0
  8. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/.autotest +7 -0
  9. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/.gemtest +0 -0
  10. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/.rubocop.yml +27 -0
  11. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/.togglerc +7 -0
  12. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/CONTRIBUTING.rdoc +34 -0
  13. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/History.rdoc +609 -0
  14. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/MIT-LICENSE +21 -0
  15. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/Manifest.txt +162 -0
  16. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/README.rdoc +137 -0
  17. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/Rakefile +81 -0
  18. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/bin/rake +33 -0
  19. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/alt_system.rb +110 -0
  20. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/application.rb +783 -0
  21. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/backtrace.rb +23 -0
  22. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/clean.rb +76 -0
  23. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/cloneable.rb +16 -0
  24. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/.document +0 -0
  25. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/compositepublisher.rb +21 -0
  26. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/ftptools.rb +137 -0
  27. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/publisher.rb +81 -0
  28. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/rubyforgepublisher.rb +18 -0
  29. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/sshpublisher.rb +61 -0
  30. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/sys.rb +4 -0
  31. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/cpu_counter.rb +109 -0
  32. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/default_loader.rb +14 -0
  33. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/dsl_definition.rb +198 -0
  34. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/early_time.rb +21 -0
  35. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/ext/core.rb +25 -0
  36. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/ext/module.rb +1 -0
  37. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/ext/string.rb +173 -0
  38. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/ext/time.rb +15 -0
  39. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/file_creation_task.rb +24 -0
  40. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/file_list.rb +414 -0
  41. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/file_task.rb +46 -0
  42. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/file_utils.rb +116 -0
  43. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/file_utils_ext.rb +144 -0
  44. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/gempackagetask.rb +4 -0
  45. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/invocation_chain.rb +56 -0
  46. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/invocation_exception_mixin.rb +16 -0
  47. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/linked_list.rb +103 -0
  48. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/loaders/makefile.rb +40 -0
  49. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/multi_task.rb +13 -0
  50. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/name_space.rb +38 -0
  51. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/packagetask.rb +202 -0
  52. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/pathmap.rb +3 -0
  53. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/phony.rb +15 -0
  54. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/private_reader.rb +20 -0
  55. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/promise.rb +99 -0
  56. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/pseudo_status.rb +29 -0
  57. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/rake_module.rb +38 -0
  58. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/rake_test_loader.rb +22 -0
  59. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/rdoctask.rb +4 -0
  60. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/ruby182_test_unit_fix.rb +29 -0
  61. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/rule_recursion_overflow_error.rb +20 -0
  62. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/runtest.rb +27 -0
  63. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/scope.rb +42 -0
  64. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/task.rb +383 -0
  65. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/task_argument_error.rb +7 -0
  66. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/task_arguments.rb +98 -0
  67. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/task_manager.rb +310 -0
  68. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/tasklib.rb +24 -0
  69. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/testtask.rb +212 -0
  70. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/thread_history_display.rb +48 -0
  71. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/thread_pool.rb +164 -0
  72. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/trace_output.rb +22 -0
  73. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/version.rb +7 -0
  74. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/win32.rb +56 -0
  75. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake.rb +78 -0
  76. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/rakelib/publish.rake +20 -0
  77. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/rakelib/test_times.rake +25 -0
  78. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/file_creation.rb +34 -0
  79. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/helper.rb +127 -0
  80. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/support/rakefile_definitions.rb +478 -0
  81. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/support/ruby_runner.rb +33 -0
  82. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_private_reader.rb +42 -0
  83. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake.rb +40 -0
  84. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_application.rb +641 -0
  85. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_application_options.rb +466 -0
  86. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_backtrace.rb +119 -0
  87. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_clean.rb +55 -0
  88. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_cpu_counter.rb +50 -0
  89. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_definitions.rb +79 -0
  90. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_directory_task.rb +63 -0
  91. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_dsl.rb +40 -0
  92. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_early_time.rb +31 -0
  93. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_extension.rb +59 -0
  94. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_file_creation_task.rb +56 -0
  95. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_file_list.rb +627 -0
  96. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_file_list_path_map.rb +8 -0
  97. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_file_task.rb +186 -0
  98. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_file_utils.rb +309 -0
  99. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_ftp_file.rb +74 -0
  100. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_functional.rb +482 -0
  101. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_invocation_chain.rb +64 -0
  102. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_linked_list.rb +84 -0
  103. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_makefile_loader.rb +46 -0
  104. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_multi_task.rb +58 -0
  105. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_name_space.rb +57 -0
  106. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_package_task.rb +79 -0
  107. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_path_map.rb +168 -0
  108. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_path_map_explode.rb +34 -0
  109. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_path_map_partial.rb +18 -0
  110. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_pseudo_status.rb +21 -0
  111. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_rake_test_loader.rb +20 -0
  112. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_reduce_compat.rb +26 -0
  113. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_require.rb +40 -0
  114. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_rules.rb +388 -0
  115. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_scope.rb +44 -0
  116. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task.rb +392 -0
  117. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_argument_parsing.rb +109 -0
  118. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_arguments.rb +127 -0
  119. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_lib.rb +9 -0
  120. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_manager.rb +178 -0
  121. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_manager_argument_resolution.rb +19 -0
  122. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_with_arguments.rb +171 -0
  123. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_test_task.rb +141 -0
  124. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_thread_pool.rb +142 -0
  125. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_top_level_functions.rb +71 -0
  126. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_win32.rb +72 -0
  127. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_thread_history_display.rb +101 -0
  128. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_trace_output.rb +52 -0
  129. data/vendor/bundle/ruby/2.1.0/specifications/rake-10.3.2.gemspec +45 -0
  130. metadata +127 -2
@@ -0,0 +1,58 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+ require 'thread'
3
+
4
+ class TestRakeMultiTask < Rake::TestCase
5
+ include Rake
6
+ include Rake::DSL
7
+
8
+ def setup
9
+ super
10
+
11
+ Task.clear
12
+ @runs = Array.new
13
+ @mutex = Mutex.new
14
+ end
15
+
16
+ def add_run(obj)
17
+ @mutex.synchronize do
18
+ @runs << obj
19
+ end
20
+ end
21
+
22
+ def test_running_multitasks
23
+ task :a do 3.times do |i| add_run("A#{i}"); sleep 0.01; end end
24
+ task :b do 3.times do |i| add_run("B#{i}"); sleep 0.01; end end
25
+ multitask :both => [:a, :b]
26
+ Task[:both].invoke
27
+ assert_equal 6, @runs.size
28
+ assert @runs.index("A0") < @runs.index("A1")
29
+ assert @runs.index("A1") < @runs.index("A2")
30
+ assert @runs.index("B0") < @runs.index("B1")
31
+ assert @runs.index("B1") < @runs.index("B2")
32
+ end
33
+
34
+ def test_all_multitasks_wait_on_slow_prerequisites
35
+ task :slow do 3.times do |i| add_run("S#{i}"); sleep 0.05 end end
36
+ task :a => [:slow] do 3.times do |i| add_run("A#{i}"); sleep 0.01 end end
37
+ task :b => [:slow] do 3.times do |i| add_run("B#{i}"); sleep 0.01 end end
38
+ multitask :both => [:a, :b]
39
+ Task[:both].invoke
40
+ assert_equal 9, @runs.size
41
+ assert @runs.index("S0") < @runs.index("S1")
42
+ assert @runs.index("S1") < @runs.index("S2")
43
+ assert @runs.index("S2") < @runs.index("A0")
44
+ assert @runs.index("S2") < @runs.index("B0")
45
+ assert @runs.index("A0") < @runs.index("A1")
46
+ assert @runs.index("A1") < @runs.index("A2")
47
+ assert @runs.index("B0") < @runs.index("B1")
48
+ assert @runs.index("B1") < @runs.index("B2")
49
+ end
50
+
51
+ def test_multitasks_with_parameters
52
+ task :a, [:arg] do |t, args| add_run(args[:arg]) end
53
+ multitask :b, [:arg] => [:a] do |t, args| add_run(args[:arg] + 'mt') end
54
+ Task[:b].invoke "b"
55
+ assert @runs[0] == "b"
56
+ assert @runs[1] == "bmt"
57
+ end
58
+ end
@@ -0,0 +1,57 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+
3
+ class TestRakeNameSpace < Rake::TestCase
4
+
5
+ class TM
6
+ include Rake::TaskManager
7
+ end
8
+
9
+ def test_namespace_creation
10
+ mgr = TM.new
11
+ ns = Rake::NameSpace.new(mgr, [])
12
+ refute_nil ns
13
+ end
14
+
15
+ def test_namespace_lookup
16
+ mgr = TM.new
17
+ ns = mgr.in_namespace("n") do
18
+ mgr.define_task(Rake::Task, "t")
19
+ end
20
+
21
+ refute_nil ns["t"]
22
+ assert_equal mgr["n:t"], ns["t"]
23
+ end
24
+
25
+ def test_namespace_reports_tasks_it_owns
26
+ mgr = TM.new
27
+ nns = nil
28
+ ns = mgr.in_namespace("n") do
29
+ mgr.define_task(Rake::Task, :x)
30
+ mgr.define_task(Rake::Task, :y)
31
+ nns = mgr.in_namespace("nn") do
32
+ mgr.define_task(Rake::Task, :z)
33
+ end
34
+ end
35
+ mgr.in_namespace("m") do
36
+ mgr.define_task(Rake::Task, :x)
37
+ end
38
+
39
+ assert_equal ["n:nn:z", "n:x", "n:y"],
40
+ ns.tasks.map { |tsk| tsk.name }
41
+ assert_equal ["n:nn:z"], nns.tasks.map { |t| t.name }
42
+ end
43
+
44
+ def test_scope
45
+ mgr = TM.new
46
+
47
+ scope = Rake::LinkedList.new 'b'
48
+ scope = scope.conj 'a'
49
+
50
+ ns = Rake::NameSpace.new mgr, scope
51
+
52
+ assert_equal scope, ns.scope
53
+
54
+ refute_same scope, ns.scope
55
+ end
56
+
57
+ end
@@ -0,0 +1,79 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+ require 'rake/packagetask'
3
+
4
+ class TestRakePackageTask < Rake::TestCase
5
+
6
+ def test_initialize
7
+ touch 'install.rb'
8
+ touch 'a.c'
9
+ touch 'b.c'
10
+ mkdir 'CVS'
11
+ touch 'a.rb~'
12
+
13
+ pkg = Rake::PackageTask.new("pkgr", "1.2.3") { |p|
14
+ p.package_files << "install.rb"
15
+ p.package_files.include '*.c'
16
+ p.package_files.exclude(/\bCVS\b/)
17
+ p.package_files.exclude(/~$/)
18
+ p.package_dir = 'pkg'
19
+ p.need_tar = true
20
+ p.need_tar_gz = true
21
+ p.need_tar_bz2 = true
22
+ p.need_zip = true
23
+ }
24
+
25
+ assert_equal "pkg", pkg.package_dir
26
+
27
+ assert_includes pkg.package_files, 'a.c'
28
+
29
+ assert_equal 'pkgr', pkg.name
30
+ assert_equal '1.2.3', pkg.version
31
+ assert Rake::Task[:package]
32
+ assert Rake::Task['pkg/pkgr-1.2.3.tgz']
33
+ assert Rake::Task['pkg/pkgr-1.2.3.tar.gz']
34
+ assert Rake::Task['pkg/pkgr-1.2.3.tar.bz2']
35
+ assert Rake::Task['pkg/pkgr-1.2.3.zip']
36
+ assert Rake::Task['pkg/pkgr-1.2.3']
37
+ assert Rake::Task[:clobber_package]
38
+ assert Rake::Task[:repackage]
39
+ end
40
+
41
+ def test_initialize_no_version
42
+ e = assert_raises RuntimeError do
43
+ Rake::PackageTask.new 'pkgr'
44
+ end
45
+
46
+ assert_equal 'Version required (or :noversion)', e.message
47
+ end
48
+
49
+ def test_initialize_noversion
50
+ pkg = Rake::PackageTask.new 'pkgr', :noversion
51
+
52
+ assert_equal 'pkg', pkg.package_dir
53
+ assert_equal 'pkgr', pkg.name
54
+ assert_equal nil, pkg.version
55
+ end
56
+
57
+ def test_clone
58
+ pkg = Rake::PackageTask.new("x", :noversion)
59
+ p2 = pkg.clone
60
+ pkg.package_files << "y"
61
+ p2.package_files << "x"
62
+ assert_equal ["y"], pkg.package_files
63
+ assert_equal ["x"], p2.package_files
64
+ end
65
+
66
+ def test_package_name
67
+ pkg = Rake::PackageTask.new 'a', '1'
68
+
69
+ assert_equal 'a-1', pkg.package_name
70
+ end
71
+
72
+ def test_package_name_noversion
73
+ pkg = Rake::PackageTask.new 'a', :noversion
74
+
75
+ assert_equal 'a', pkg.package_name
76
+ end
77
+
78
+ end
79
+
@@ -0,0 +1,168 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+
3
+ class TestRakePathMap < Rake::TestCase
4
+
5
+ def test_returns_self_with_no_args
6
+ assert_equal "abc.rb", "abc.rb".pathmap
7
+ end
8
+
9
+ def test_s_returns_file_separator
10
+ sep = File::ALT_SEPARATOR || File::SEPARATOR
11
+ assert_equal sep, "abc.rb".pathmap("%s")
12
+ assert_equal sep, "".pathmap("%s")
13
+ assert_equal "a#{sep}b", "a/b".pathmap("%d%s%f")
14
+ end
15
+
16
+ def test_f_returns_basename
17
+ assert_equal "abc.rb", "abc.rb".pathmap("%f")
18
+ assert_equal "abc.rb", "this/is/a/dir/abc.rb".pathmap("%f")
19
+ assert_equal "abc.rb", "/this/is/a/dir/abc.rb".pathmap("%f")
20
+ end
21
+
22
+ def test_n_returns_basename_without_extension
23
+ assert_equal "abc", "abc.rb".pathmap("%n")
24
+ assert_equal "abc", "abc".pathmap("%n")
25
+ assert_equal "abc", "this/is/a/dir/abc.rb".pathmap("%n")
26
+ assert_equal "abc", "/this/is/a/dir/abc.rb".pathmap("%n")
27
+ assert_equal "abc", "/this/is/a/dir/abc".pathmap("%n")
28
+ end
29
+
30
+ def test_d_returns_dirname
31
+ assert_equal ".", "abc.rb".pathmap("%d")
32
+ assert_equal "/", "/abc".pathmap("%d")
33
+ assert_equal "this/is/a/dir", "this/is/a/dir/abc.rb".pathmap("%d")
34
+ assert_equal "/this/is/a/dir", "/this/is/a/dir/abc.rb".pathmap("%d")
35
+ end
36
+
37
+ def test_9d_returns_partial_dirname
38
+ assert_equal "this/is", "this/is/a/dir/abc.rb".pathmap("%2d")
39
+ assert_equal "this", "this/is/a/dir/abc.rb".pathmap("%1d")
40
+ assert_equal ".", "this/is/a/dir/abc.rb".pathmap("%0d")
41
+ assert_equal "dir", "this/is/a/dir/abc.rb".pathmap("%-1d")
42
+ assert_equal "a/dir", "this/is/a/dir/abc.rb".pathmap("%-2d")
43
+ assert_equal "this/is/a/dir", "this/is/a/dir/abc.rb".pathmap("%100d")
44
+ assert_equal "this/is/a/dir", "this/is/a/dir/abc.rb".pathmap("%-100d")
45
+ end
46
+
47
+ def test_x_returns_extension
48
+ assert_equal "", "abc".pathmap("%x")
49
+ assert_equal ".rb", "abc.rb".pathmap("%x")
50
+ assert_equal ".rb", "abc.xyz.rb".pathmap("%x")
51
+ assert_equal "", ".depends".pathmap("%x")
52
+ assert_equal "", "dir/.depends".pathmap("%x")
53
+ end
54
+
55
+ def test_x_returns_everything_but_extension
56
+ assert_equal "abc", "abc".pathmap("%X")
57
+ assert_equal "abc", "abc.rb".pathmap("%X")
58
+ assert_equal "abc.xyz", "abc.xyz.rb".pathmap("%X")
59
+ assert_equal "ab.xyz", "ab.xyz.rb".pathmap("%X")
60
+ assert_equal "a.xyz", "a.xyz.rb".pathmap("%X")
61
+ assert_equal "abc", "abc.rb".pathmap("%X")
62
+ assert_equal "ab", "ab.rb".pathmap("%X")
63
+ assert_equal "a", "a.rb".pathmap("%X")
64
+ assert_equal ".depends", ".depends".pathmap("%X")
65
+ assert_equal "a/dir/.depends", "a/dir/.depends".pathmap("%X")
66
+ assert_equal "/.depends", "/.depends".pathmap("%X")
67
+ end
68
+
69
+ def test_p_returns_entire_pathname
70
+ assert_equal "abc.rb", "abc.rb".pathmap("%p")
71
+ assert_equal "this/is/a/dir/abc.rb", "this/is/a/dir/abc.rb".pathmap("%p")
72
+ assert_equal "/this/is/a/dir/abc.rb", "/this/is/a/dir/abc.rb".pathmap("%p")
73
+ end
74
+
75
+ def test_dash_returns_empty_string
76
+ assert_equal "", "abc.rb".pathmap("%-")
77
+ assert_equal "abc.rb", "abc.rb".pathmap("%X%-%x")
78
+ end
79
+
80
+ def test_percent_percent_returns_percent
81
+ assert_equal "a%b", "".pathmap("a%%b")
82
+ end
83
+
84
+ def test_undefined_percent_causes_error
85
+ assert_raises(ArgumentError) {
86
+ "dir/abc.rb".pathmap("%z")
87
+ }
88
+ end
89
+
90
+ def test_pattern_returns_substitutions
91
+ assert_equal "bin/org/osb",
92
+ "src/org/osb/Xyz.java".pathmap("%{src,bin}d")
93
+ end
94
+
95
+ def test_pattern_can_use_backreferences
96
+ assert_equal "dir/hi/is", "dir/this/is".pathmap("%{t(hi)s,\\1}p")
97
+ end
98
+
99
+ def test_pattern_with_star_replacement_string_uses_block
100
+ assert_equal "src/ORG/osb",
101
+ "src/org/osb/Xyz.java".pathmap("%{/org,*}d") { |d| d.upcase }
102
+ assert_equal "Xyz.java",
103
+ "src/org/osb/Xyz.java".pathmap("%{.*,*}f") { |f| f.capitalize }
104
+ end
105
+
106
+ def test_pattern_with_no_replacement_nor_block_substitutes_empty_string
107
+ assert_equal "bc.rb", "abc.rb".pathmap("%{a}f")
108
+ end
109
+
110
+ def test_pattern_works_with_certain_valid_operators
111
+ assert_equal "dir/xbc.rb", "dir/abc.rb".pathmap("%{a,x}p")
112
+ assert_equal "d1r", "dir/abc.rb".pathmap("%{i,1}d")
113
+ assert_equal "xbc.rb", "dir/abc.rb".pathmap("%{a,x}f")
114
+ assert_equal ".Rb", "dir/abc.rb".pathmap("%{r,R}x")
115
+ assert_equal "xbc", "dir/abc.rb".pathmap("%{a,x}n")
116
+ end
117
+
118
+ def test_multiple_patterns
119
+ assert_equal "this/is/b/directory/abc.rb",
120
+ "this/is/a/dir/abc.rb".pathmap("%{a,b;dir,\\0ectory}p")
121
+ end
122
+
123
+ def test_partial_directory_selection_works_with_patterns
124
+ assert_equal "this/is/a/long",
125
+ "this/is/a/really/long/path/ok.rb".pathmap("%{/really/,/}5d")
126
+ end
127
+
128
+ def test_pattern_with_invalid_operator
129
+ ex = assert_raises(ArgumentError) do
130
+ "abc.xyz".pathmap("%{src,bin}z")
131
+ end
132
+ assert_match(/unknown.*pathmap.*spec.*z/i, ex.message)
133
+ end
134
+
135
+ def test_works_with_windows_separators
136
+ if File::ALT_SEPARATOR
137
+ assert_equal "abc", 'dir\abc.rb'.pathmap("%n")
138
+ assert_equal 'this\is\a\dir',
139
+ 'this\is\a\dir\abc.rb'.pathmap("%d")
140
+ end
141
+ end
142
+
143
+ def test_complex_patterns
144
+ sep = "".pathmap("%s")
145
+ assert_equal(
146
+ "dir/abc.rb",
147
+ "dir/abc.rb".pathmap("%d/%n%x"))
148
+ assert_equal(
149
+ "./abc.rb",
150
+ "abc.rb".pathmap("%d/%n%x"))
151
+ assert_equal(
152
+ "Your file extension is '.rb'",
153
+ "dir/abc.rb".pathmap("Your file extension is '%x'"))
154
+ assert_equal(
155
+ "bin/org/onstepback/proj/A.class",
156
+ "src/org/onstepback/proj/A.java".pathmap("%{src,bin}d/%n.class"))
157
+ assert_equal(
158
+ "src_work/bin/org/onstepback/proj/A.class",
159
+ "src_work/src/org/onstepback/proj/A.java".
160
+ pathmap('%{\bsrc\b,bin}X.class'))
161
+ assert_equal(
162
+ ".depends.bak",
163
+ ".depends".pathmap("%X.bak"))
164
+ assert_equal(
165
+ "d#{sep}a/b/c#{sep}file.txt",
166
+ "a/b/c/d/file.txt".pathmap("%-1d%s%3d%s%f"))
167
+ end
168
+ end
@@ -0,0 +1,34 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+
3
+ class TestRakePathMapExplode < Rake::TestCase
4
+ def setup
5
+ super
6
+
7
+ String.class_eval { public :pathmap_explode }
8
+ end
9
+
10
+ def teardown
11
+ String.class_eval { protected :pathmap_explode }
12
+
13
+ super
14
+ end
15
+
16
+ def test_explode
17
+ assert_equal ['a'], 'a'.pathmap_explode
18
+ assert_equal ['a', 'b'], 'a/b'.pathmap_explode
19
+ assert_equal ['a', 'b', 'c'], 'a/b/c'.pathmap_explode
20
+ assert_equal ['/', 'a'], '/a'.pathmap_explode
21
+ assert_equal ['/', 'a', 'b'], '/a/b'.pathmap_explode
22
+ assert_equal ['/', 'a', 'b', 'c'], '/a/b/c'.pathmap_explode
23
+
24
+ if File::ALT_SEPARATOR
25
+ assert_equal ['c:.', 'a'], 'c:a'.pathmap_explode
26
+ assert_equal ['c:.', 'a', 'b'], 'c:a/b'.pathmap_explode
27
+ assert_equal ['c:.', 'a', 'b', 'c'], 'c:a/b/c'.pathmap_explode
28
+ assert_equal ['c:/', 'a'], 'c:/a'.pathmap_explode
29
+ assert_equal ['c:/', 'a', 'b'], 'c:/a/b'.pathmap_explode
30
+ assert_equal ['c:/', 'a', 'b', 'c'], 'c:/a/b/c'.pathmap_explode
31
+ end
32
+ end
33
+ end
34
+
@@ -0,0 +1,18 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+
3
+ class TestRakePathMapPartial < Rake::TestCase
4
+ def test_pathmap_partial
5
+ @path = "1/2/file"
6
+ def @path.call(n)
7
+ pathmap_partial(n)
8
+ end
9
+ assert_equal("1", @path.call(1))
10
+ assert_equal("1/2", @path.call(2))
11
+ assert_equal("1/2", @path.call(3))
12
+ assert_equal(".", @path.call(0))
13
+ assert_equal("2", @path.call(-1))
14
+ assert_equal("1/2", @path.call(-2))
15
+ assert_equal("1/2", @path.call(-3))
16
+ end
17
+ end
18
+
@@ -0,0 +1,21 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+
3
+ class TestRakePseudoStatus < Rake::TestCase
4
+ def test_with_zero_exit_status
5
+ s = Rake::PseudoStatus.new
6
+ assert_equal 0, s.exitstatus
7
+ assert_equal 0, s.to_i
8
+ assert_equal 0, s >> 8
9
+ refute s.stopped?
10
+ assert s.exited?
11
+ end
12
+
13
+ def test_with_99_exit_status
14
+ s = Rake::PseudoStatus.new(99)
15
+ assert_equal 99, s.exitstatus
16
+ assert_equal 25344, s.to_i
17
+ assert_equal 99, s >> 8
18
+ refute s.stopped?
19
+ assert s.exited?
20
+ end
21
+ end
@@ -0,0 +1,20 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+
3
+ class TestRakeRakeTestLoader < Rake::TestCase
4
+
5
+ def test_pattern
6
+ orig_loaded_features = $:.dup
7
+ FileUtils.touch 'foo.rb'
8
+ FileUtils.touch 'test_a.rb'
9
+ FileUtils.touch 'test_b.rb'
10
+
11
+ ARGV.replace %w[foo.rb test_*.rb -v]
12
+
13
+ load File.join(@rake_lib, 'rake/rake_test_loader.rb')
14
+
15
+ assert_equal %w[-v], ARGV
16
+ ensure
17
+ $:.replace orig_loaded_features
18
+ end
19
+
20
+ end
@@ -0,0 +1,26 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+ require 'open3'
3
+
4
+ class TestRakeReduceCompat < Rake::TestCase
5
+ include RubyRunner
6
+
7
+ def invoke_normal(task_name)
8
+ rake task_name.to_s
9
+ @out
10
+ end
11
+
12
+ def test_no_deprecated_dsl
13
+ rakefile %q{
14
+ task :check_task do
15
+ Module.new { p defined?(task) }
16
+ end
17
+
18
+ task :check_file do
19
+ Module.new { p defined?(file) }
20
+ end
21
+ }
22
+
23
+ assert_equal "nil", invoke_normal(:check_task).chomp
24
+ assert_equal "nil", invoke_normal(:check_file).chomp
25
+ end
26
+ end
@@ -0,0 +1,40 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+
3
+ class TestRakeRequire < Rake::TestCase
4
+
5
+ def test_can_load_rake_library
6
+ rakefile_rakelib
7
+ app = Rake::Application.new
8
+
9
+ assert app.instance_eval {
10
+ rake_require("test2", ['rakelib'], [])
11
+ }
12
+ end
13
+
14
+ def test_wont_reload_rake_library
15
+ rakefile_rakelib
16
+ app = Rake::Application.new
17
+
18
+ paths = ['rakelib']
19
+ loaded_files = []
20
+ app.rake_require("test2", paths, loaded_files)
21
+
22
+ assert ! app.instance_eval {
23
+ rake_require("test2", paths, loaded_files)
24
+ }
25
+ end
26
+
27
+ def test_throws_error_if_library_not_found
28
+ rakefile_rakelib
29
+
30
+ app = Rake::Application.new
31
+ ex = assert_raises(LoadError) {
32
+ assert app.instance_eval {
33
+ rake_require("testx", ['rakelib'], [])
34
+ }
35
+ }
36
+ assert_match(/(can *not|can't)\s+find/i, ex.message)
37
+ assert_match(/testx/, ex.message)
38
+ end
39
+ end
40
+