vcs 0.2.148 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (152) hide show
  1. data/AUTHORS +6 -0
  2. data/NEWS +9 -0
  3. data/README +82 -0
  4. data/Rakefile +7 -72
  5. data/SPEC.dyn.yml +10 -0
  6. data/SPEC.gemspec +14 -0
  7. data/SPEC.yml +39 -0
  8. data/bin/vcs +18 -16
  9. data/lib/vcs/changelog.rb +164 -0
  10. data/lib/vcs/conflict.rb +21 -0
  11. data/{src → lib/vcs}/cvs.rb +1 -1
  12. data/{src → lib/vcs}/diff.rb +2 -2
  13. data/lib/vcs/diffstat.rb +28 -0
  14. data/lib/vcs/edit.rb +16 -0
  15. data/{src → lib/vcs}/last_changed_date.rb +3 -5
  16. data/{src → lib/vcs}/mail.rb +4 -4
  17. data/lib/vcs/message.rb +79 -0
  18. data/{src → lib/vcs}/mycommit.rb +15 -15
  19. data/{src → lib/vcs}/news.rb +6 -6
  20. data/{src → lib/vcs}/prcs.rb +1 -1
  21. data/{src → lib/vcs}/revision.rb +3 -4
  22. data/lib/vcs/script.rb +19 -0
  23. data/{src → lib/vcs}/status.rb +1 -1
  24. data/{src → lib/vcs}/svn.rb +3 -5
  25. data/lib/vcs/url.rb +16 -0
  26. data/lib/vcs/vcs.rb +279 -0
  27. metadata +52 -150
  28. data/TODO +0 -19
  29. data/doc/jamis.rb +0 -564
  30. data/ruby_ex/abstract.rb +0 -254
  31. data/ruby_ex/abstract_node.rb +0 -85
  32. data/ruby_ex/algorithms/simulated_annealing.rb +0 -140
  33. data/ruby_ex/array_each_pair.rb +0 -18
  34. data/ruby_ex/ask.rb +0 -101
  35. data/ruby_ex/attributed_class.rb +0 -302
  36. data/ruby_ex/cache.rb +0 -373
  37. data/ruby_ex/checkout.rb +0 -12
  38. data/ruby_ex/choose.rb +0 -271
  39. data/ruby_ex/commands.rb +0 -18
  40. data/ruby_ex/commands/command.rb +0 -401
  41. data/ruby_ex/commands/datas.rb +0 -16
  42. data/ruby_ex/commands/datas/data.rb +0 -33
  43. data/ruby_ex/commands/datas/factory.rb +0 -66
  44. data/ruby_ex/commands/factory.rb +0 -66
  45. data/ruby_ex/commands/helpers.rb +0 -67
  46. data/ruby_ex/commands/pipe.rb +0 -64
  47. data/ruby_ex/commands/runners.rb +0 -17
  48. data/ruby_ex/commands/runners/exec.rb +0 -49
  49. data/ruby_ex/commands/runners/fork.rb +0 -97
  50. data/ruby_ex/commands/runners/runner.rb +0 -107
  51. data/ruby_ex/commands/seq.rb +0 -27
  52. data/ruby_ex/config_file.rb +0 -96
  53. data/ruby_ex/const_regexp.rb +0 -59
  54. data/ruby_ex/daemon.rb +0 -134
  55. data/ruby_ex/diff.rb +0 -667
  56. data/ruby_ex/dlogger.rb +0 -62
  57. data/ruby_ex/drb/dispatcher.rb +0 -252
  58. data/ruby_ex/drb/dispatcher_server_test.rb +0 -29
  59. data/ruby_ex/drb/drb_observable.rb +0 -97
  60. data/ruby_ex/drb/drb_observable_pool.rb +0 -27
  61. data/ruby_ex/drb/drb_service.rb +0 -43
  62. data/ruby_ex/drb/drb_undumped_attributes.rb +0 -55
  63. data/ruby_ex/drb/drb_undumped_indexed_object.rb +0 -54
  64. data/ruby_ex/drb/insecure_protected_methods.rb +0 -103
  65. data/ruby_ex/drb/session_client_test.rb +0 -40
  66. data/ruby_ex/drb/session_manager.rb +0 -246
  67. data/ruby_ex/drb/session_server.rb +0 -53
  68. data/ruby_ex/dtime.rb +0 -143
  69. data/ruby_ex/dumpable_proc.rb +0 -63
  70. data/ruby_ex/exception.rb +0 -32
  71. data/ruby_ex/filetype.rb +0 -229
  72. data/ruby_ex/fileutils_ex.rb +0 -44
  73. data/ruby_ex/fold.rb +0 -58
  74. data/ruby_ex/generate_id.rb +0 -44
  75. data/ruby_ex/hookable.rb +0 -262
  76. data/ruby_ex/hooker.rb +0 -54
  77. data/ruby_ex/inactive_timeout.rb +0 -137
  78. data/ruby_ex/indexed_node.rb +0 -66
  79. data/ruby_ex/io_marshal.rb +0 -100
  80. data/ruby_ex/ioo.rb +0 -194
  81. data/ruby_ex/labeled_node.rb +0 -63
  82. data/ruby_ex/logger_observer.rb +0 -23
  83. data/ruby_ex/md5sum.rb +0 -66
  84. data/ruby_ex/mktemp.rb +0 -208
  85. data/ruby_ex/module/attr_once.rb +0 -36
  86. data/ruby_ex/module/autoload_tree.rb +0 -75
  87. data/ruby_ex/module/hierarchy.rb +0 -335
  88. data/ruby_ex/module/instance_method_visibility.rb +0 -73
  89. data/ruby_ex/module_ex.rb +0 -11
  90. data/ruby_ex/node.rb +0 -80
  91. data/ruby_ex/object_monitor.rb +0 -145
  92. data/ruby_ex/object_monitor_activity.rb +0 -33
  93. data/ruby_ex/observable.rb +0 -140
  94. data/ruby_ex/observable_pool.rb +0 -293
  95. data/ruby_ex/orderedhash.rb +0 -252
  96. data/ruby_ex/pathname_ex.rb +0 -152
  97. data/ruby_ex/pp_hierarchy.rb +0 -29
  98. data/ruby_ex/pseudo_cache.rb +0 -190
  99. data/ruby_ex/queue.rb +0 -56
  100. data/ruby_ex/random_generators.rb +0 -25
  101. data/ruby_ex/random_generators/random_generator.rb +0 -31
  102. data/ruby_ex/random_generators/ruby.rb +0 -23
  103. data/ruby_ex/safe_eval.rb +0 -348
  104. data/ruby_ex/sendmail.rb +0 -215
  105. data/ruby_ex/service_manager.rb +0 -121
  106. data/ruby_ex/session/administrable.rb +0 -120
  107. data/ruby_ex/session/client.rb +0 -153
  108. data/ruby_ex/session/const.rb +0 -18
  109. data/ruby_ex/session/dispatcher.rb +0 -184
  110. data/ruby_ex/session/error.rb +0 -21
  111. data/ruby_ex/session/fetchable.rb +0 -57
  112. data/ruby_ex/session/fetcher.rb +0 -62
  113. data/ruby_ex/session/hookable.rb +0 -26
  114. data/ruby_ex/session/profile.rb +0 -110
  115. data/ruby_ex/session/server.rb +0 -582
  116. data/ruby_ex/session/test/administrable_test.rb +0 -337
  117. data/ruby_ex/session/test/basic_test.rb +0 -523
  118. data/ruby_ex/session/test/dispatcher_test.rb +0 -409
  119. data/ruby_ex/session/test/fetchable_test.rb +0 -119
  120. data/ruby_ex/session/test/sub_server_test.rb +0 -188
  121. data/ruby_ex/shuffle.rb +0 -30
  122. data/ruby_ex/spring.rb +0 -136
  123. data/ruby_ex/spring_set.rb +0 -137
  124. data/ruby_ex/string_ex.rb +0 -28
  125. data/ruby_ex/symtbl.rb +0 -106
  126. data/ruby_ex/synflow.rb +0 -474
  127. data/ruby_ex/test/unit/ui/yaml/testrunner.rb +0 -164
  128. data/ruby_ex/thread_mutex.rb +0 -10
  129. data/ruby_ex/timeout_ex.rb +0 -81
  130. data/ruby_ex/top_down.rb +0 -73
  131. data/ruby_ex/trace.rb +0 -26
  132. data/ruby_ex/uri/druby.rb +0 -81
  133. data/ruby_ex/uri/file.rb +0 -65
  134. data/ruby_ex/uri/ftp_ex.rb +0 -37
  135. data/ruby_ex/uri/http_ex.rb +0 -43
  136. data/ruby_ex/uri/ssh.rb +0 -92
  137. data/ruby_ex/uri/svn.rb +0 -118
  138. data/ruby_ex/uri_ex.rb +0 -45
  139. data/ruby_ex/verbose_object.rb +0 -30
  140. data/ruby_ex/version.rb +0 -66
  141. data/ruby_ex/yaml/basenode_ext.rb +0 -63
  142. data/ruby_ex/yaml/chop_header.rb +0 -23
  143. data/ruby_ex/yaml/transform.rb +0 -449
  144. data/ruby_ex/yaml/yregexpath.rb +0 -76
  145. data/src/ask.rb +0 -101
  146. data/src/changelog.rb +0 -117
  147. data/src/conflict.rb +0 -20
  148. data/src/diffstat.rb +0 -42
  149. data/src/message.rb +0 -64
  150. data/src/reply-mail.rb +0 -14
  151. data/src/tools.rb +0 -22
  152. data/src/vcs.rb +0 -176
@@ -1,164 +0,0 @@
1
- # Author:: Nicolas Despres <nicolas.despres@epita.fr>.
2
- # Copyright:: Copyright (c) 2004 TTK Team. All rights reserved.
3
- # License:: Ruby license.
4
-
5
- # $LastChangedBy: polrop $
6
- # $Id: testrunner.rb 197 2005-04-12 14:00:10Z polrop $
7
-
8
-
9
- require 'test/unit/ui/testrunnermediator'
10
- require 'test/unit/ui/testrunnerutilities'
11
- require 'dtime'
12
-
13
-
14
- module Test
15
-
16
- module Unit
17
-
18
- module UI
19
-
20
- module Yaml
21
-
22
- class TestRunner
23
- extend TestRunnerUtilities
24
-
25
- public
26
- def initialize(suite, output_level=NORMAL, io=STDOUT)
27
- if (suite.respond_to?(:suite))
28
- @suite = suite.suite
29
- else
30
- @suite = suite
31
- end
32
- @output_level = output_level
33
- @io = io
34
- @failures = []
35
- @errors = []
36
- end
37
-
38
- # Begins the test run.
39
- public
40
- def start
41
- setup_mediator
42
- attach_to_mediator
43
- return start_mediator
44
- end
45
-
46
- private
47
- def setup_mediator
48
- @mediator = create_mediator(@suite)
49
- suite_name = @suite.to_s
50
- if ( @suite.kind_of?(Module) )
51
- suite_name = @suite.name
52
- end
53
- @io.puts('---')
54
- @io.puts("suite_class: #{suite_name}")
55
- @io.puts('details:') if $VERBOSE
56
- @test_outcome = 'S'
57
- end
58
-
59
- private
60
- def create_mediator(suite)
61
- return TestRunnerMediator.new(suite)
62
- end
63
-
64
- private
65
- def attach_to_mediator
66
- @mediator.add_listener(TestResult::FAULT, &method(:add_fault))
67
- @mediator.add_listener(TestRunnerMediator::STARTED,
68
- &method(:started))
69
- @mediator.add_listener(TestRunnerMediator::FINISHED,
70
- &method(:finished))
71
- if $VERBOSE
72
- @mediator.add_listener(TestCase::STARTED,
73
- &method(:test_started))
74
- @mediator.add_listener(TestCase::FINISHED,
75
- &method(:test_finished))
76
- end
77
- end
78
-
79
- private
80
- def test_started(name)
81
- @test_start_time = Time.now
82
- @io.print(" #{name}:")
83
- @io.flush
84
- end
85
-
86
- private
87
- def test_finished(name)
88
- #FIXME: remove the double-quote when the TTK Dumper manages oneline
89
- # feature
90
- @io.puts(" \"[ #@test_outcome, #{Time.now - @test_start_time} ]\"")
91
- @test_outcome = 'S'
92
- @io.flush
93
- end
94
-
95
- private
96
- def start_mediator
97
- return @mediator.run_suite
98
- end
99
-
100
- private
101
- def add_fault(fault)
102
- case fault.class.to_s
103
- when 'Test::Unit::Failure'
104
- @test_outcome = 'F'
105
- @failures << fault
106
- when 'Test::Unit::Error'
107
- @test_outcome = 'E'
108
- @errors << fault
109
- else
110
- raise(Exception, 'unexpected fault!!')
111
- end
112
- end
113
-
114
- private
115
- def started(result)
116
- @result = result
117
- end
118
-
119
- private
120
- def finished(elapsed_time)
121
- t = DTime.new(elapsed_time)
122
- @io.puts("elapsed_time: #{t}")
123
- if $VERBOSE
124
- @io.puts("detail_elpased_time: #{t.inspect}")
125
- end
126
- @io.puts("tests_number: #{@result.run_count}")
127
- @io.puts("assertions_number: #{@result.assertion_count}")
128
- @io.puts("errors_number: #{@errors.length}")
129
- @io.puts("failures_number: #{@failures.length}")
130
- unless @failures.empty?
131
- @io.puts('failures:')
132
- @failures.each { |fault| print_fault(fault) }
133
- end
134
- unless @errors.empty?
135
- @io.puts('errors:')
136
- @errors.each { |err| print_fault(err) }
137
- end
138
- @io.flush
139
- end
140
-
141
- private
142
- def print_fault(fault)
143
- fault_disp = fault.long_display.split("\n")
144
- indent = ' '
145
- @io.puts("#{indent}#{fault_disp[1].chomp(':')}: |")
146
- for i in 2...fault_disp.length do
147
- 2.times { @io.print(indent) }
148
- @io.puts(fault_disp[i].strip)
149
- end
150
- end
151
-
152
- end # class TestRunner
153
-
154
- end # module Yaml
155
-
156
- end # module UI
157
-
158
- end # module Unit
159
-
160
- end # module Test
161
-
162
- Test::Unit::AutoRunner::RUNNERS[:yaml] = lambda do |r|
163
- Test::Unit::UI::Yaml::TestRunner
164
- end
@@ -1,10 +0,0 @@
1
- class Thread
2
-
3
- alias :raise_without_exception_call :raise
4
-
5
- def raise ( exc, *a, &b )
6
- exc = exc.exception if exc.respond_to? :exception
7
- raise_without_exception_call(exc, *a, &b)
8
- end
9
-
10
- end
@@ -1,81 +0,0 @@
1
- # Copyright: Copyright (c) 2004 Nicolas Despres. All rights reserved.
2
- # Author: Nicolas Despres <polrop@lrde.epita.fr>.
3
- # License: Gnu General Public License.
4
-
5
- # $LastChangedBy: ertai $
6
- # $Id: timeout_ex.rb 186 2005-04-03 00:07:45Z ertai $
7
-
8
-
9
- require 'thread'
10
-
11
-
12
- module TimeoutEx
13
-
14
- class Error < Interrupt; end
15
-
16
- module_function
17
- def timeout(sec, exception=Error, mutex=nil, &block)
18
- if sec > 0
19
- thread = Thread.new(mutex) do |mutex|
20
- Thread.current[:timeout_mutex] = mutex
21
- block[]
22
- end
23
- sleep(sec)
24
- if thread.alive?
25
- unless mutex.nil?
26
- mutex.synchronize { thread.kill if thread.alive? }
27
- else
28
- thread.kill
29
- end
30
- raise(exception, 'execution expired')
31
- end
32
- else
33
- block[]
34
- end
35
- true
36
- end
37
-
38
- end # module TimeoutEx
39
-
40
-
41
- if defined? TEST_MODE or __FILE__ == $0
42
-
43
-
44
- require 'test/unit/ui/yaml/testrunner'
45
-
46
-
47
- class TimeoutExTest < Test::Unit::TestCase
48
-
49
- def test_timeout
50
- run = false
51
- assert_raises(TimeoutEx::Error) do
52
- TimeoutEx.timeout(0.1) do
53
- sleep(0.5)
54
- run = true
55
- end
56
- end
57
- assert(! run)
58
- end
59
-
60
- def test_mutex
61
- run = false
62
- assert_raises(TimeoutEx::Error) do
63
- TimeoutEx.timeout(0.1, TimeoutEx::Error, Mutex.new) do
64
- Thread.current[:timeout_mutex].synchronize do
65
- sleep(0.5)
66
- run = true
67
- end
68
- end
69
- end
70
- assert(run)
71
- end
72
-
73
- def test_no_timeout
74
- assert(TimeoutEx.timeout(0.1) { nil })
75
- end
76
-
77
- end # class TimeoutExTest
78
-
79
-
80
- end
81
-
@@ -1,73 +0,0 @@
1
- # Copyright: Copyright (c) 2004 Nicolas Pouillard. All rights reserved.
2
- # Author: Nicolas Pouillard <ertai@lrde.epita.fr>.
3
- # License: Gnu General Public License.
4
-
5
- # $LastChangedBy: ertai $
6
- # $Id: top_down.rb 53 2004-12-02 22:24:03Z ertai $
7
-
8
-
9
- class Object
10
-
11
- def top_down(&block)
12
- yield self
13
- end
14
-
15
- def top_down_map(&block)
16
- yield self
17
- end
18
-
19
- end
20
-
21
-
22
- class Hash
23
-
24
- def top_down(&block)
25
- yield self
26
- each { |k,v| v.top_down(&block) }
27
- end
28
-
29
- def top_down_map(&block)
30
- yield self
31
- res = {}
32
- each { |k,v| res[k] = v.top_down_map(&block) }
33
- res
34
- end
35
-
36
- end
37
-
38
-
39
- class Array
40
-
41
- def top_down(&block)
42
- yield self
43
- each { |x| x.top_down(&block) }
44
- end
45
-
46
- def top_down_map(&block)
47
- yield self
48
- res = []
49
- each { |x| res << x.top_down_map(&block) }
50
- res
51
- end
52
-
53
- end
54
-
55
-
56
- #
57
- # Driver
58
- #
59
-
60
-
61
- #FIXME: make me unit test instead of mini-driver
62
-
63
- if __FILE__ == $0
64
-
65
- a = { 'toto' => [ 1, 2, 3 ], 'tata' => { 'foo' => 42, 'bar' => 43 } }
66
-
67
- a.top_down { |x| p x }
68
-
69
- b = a.top_down_map { |x| x.is_a?(Numeric) ? x + 1 : x }
70
-
71
- p b
72
-
73
- end
@@ -1,26 +0,0 @@
1
- # Copyright: Copyright (c) 2004 Nicolas Despres. All rights reserved.
2
- # Author: Nicolas Despres <polrop@lrde.epita.fr>.
3
- # License: Gnu General Public License.
4
-
5
- # $LastChangedBy: polrop $
6
- # $Id: trace.rb 90 2005-01-09 22:09:32Z polrop $
7
-
8
-
9
- module Kernel
10
-
11
- def trace_on
12
- set_trace_func proc { |event, file, line, id, binding, classname|
13
- printf("%8s %s:%-2d %10s %8s\n",
14
- event,
15
- file,
16
- line,
17
- id,
18
- classname)
19
- }
20
- end
21
-
22
- def trace_off
23
- set_trace_func nil
24
- end
25
-
26
- end # module Kernel
@@ -1,81 +0,0 @@
1
- # Copyright: Copyright (c) 2004 Nicolas Despres. All rights reserved.
2
- # Author: Nicolas Despres <polrop@lrde.epita.fr>.
3
- # License: Gnu General Public License.
4
-
5
- # $LastChangedBy: polrop $
6
- # $Id: druby.rb 140 2005-01-29 15:05:09Z polrop $
7
-
8
-
9
- require 'uri'
10
-
11
-
12
- module URI
13
-
14
- class DRuby < Generic
15
-
16
- SCHEME = 'druby'
17
- DEFAULT_HOST = 'localhost'
18
- DEFAULT_PORT = 0
19
- DEFAULT_QUERY = ''
20
- COMPONENT = [ :scheme, :host, :port ].freeze
21
-
22
- def self.build(args)
23
- if args.is_a?(Array)
24
- args << DEFAULT_HOST if args.size < 1
25
- args << DEFAULT_PORT if args.size < 2
26
- elsif args.is_a?(Hash)
27
- args[:host] = DEFAULT_HOST if args[:host].nil?
28
- args[:port] = DEFAULT_PORT if args[:port].nil?
29
- end
30
- return super(Util::make_components_hash(self, args))
31
- end
32
-
33
- #FIXME: find a way to always print the port even if it is the default one.
34
-
35
- end # class DRuby
36
-
37
- @@schemes[DRuby::SCHEME.upcase] = DRuby
38
-
39
- end # module URI
40
-
41
-
42
- if defined? TEST_MODE or __FILE__ == $0
43
-
44
-
45
- require 'test/unit/ui/yaml/testrunner'
46
-
47
-
48
- module URI
49
-
50
- class DRubyTest < ::Test::Unit::TestCase
51
-
52
- def test_classic
53
- uri = URI.parse('druby://www.foo.com:42000')
54
- assert(uri.is_a?(DRuby))
55
- assert_equal('druby', uri.scheme)
56
- assert_nil(uri.user)
57
- assert_nil(uri.password)
58
- assert_nil(uri.userinfo)
59
- assert_equal('www.foo.com', uri.host)
60
- assert_equal(42000, uri.port)
61
- assert_equal('druby://www.foo.com:42000', uri.to_s)
62
- end
63
-
64
- def test_build
65
- assert_equal('druby://localhost', DRuby.build([]).to_s)
66
- assert_equal('druby://www.foo.com:52000',
67
- DRuby.build(['www.foo.com', 52000 ]).to_s)
68
- end
69
-
70
- def test_query
71
- uri = DRuby.build(['www.foo.com', 52000 ])
72
- uri.query = 'toto=tata&foo=bar'
73
- assert_equal('druby://www.foo.com:52000?toto=tata&foo=bar', uri.to_s)
74
- end
75
-
76
- end # class DRubyTest
77
-
78
- end # module URI
79
-
80
-
81
- end
@@ -1,65 +0,0 @@
1
- # Copyright: Copyright (c) 2005 Nicolas Pouillard. All rights reserved.
2
- # Author: Nicolas Pouillard <ertai@lrde.epita.fr>.
3
- # License: Gnu General Public License.
4
-
5
- # $LastChangedBy: ertai $
6
- # $Id: file.rb 213 2005-05-06 12:55:58Z ertai $
7
-
8
- require 'uri_ex'
9
-
10
- module URI
11
-
12
- class File < Generic
13
-
14
- COMPONENT = [
15
- :scheme,
16
- :path
17
- ].freeze
18
-
19
- def initialize ( *args )
20
- super
21
- unless @host.nil? or @host.empty?
22
- raise ArgumentError,
23
- "You cannot neither setup a host (#{@host}), nor a relative path"
24
- end
25
- end
26
-
27
- def self.build ( args )
28
- tmp = Util::make_components_hash(self, args)
29
- return super(tmp)
30
- end
31
-
32
- def checkout
33
- p = self.pathname
34
- raise CheckoutError, to_s unless p.exist?
35
- p
36
- end
37
-
38
- def commit ( aPath )
39
- FileUtils.cp aPath.to_s, self.pathname.to_s
40
- end
41
-
42
- def save
43
- p = self.pathname
44
- raise SaveError, to_s unless p.exist?
45
- if p.directory?
46
- out = TempPath.new('save', "#{p.basename}.tar.gz")
47
- cmd = "tar czf #{out} #{p}"
48
- unless system cmd
49
- raise SaveError, "command failed: `#{cmd}' => #{$?}"
50
- end
51
- else
52
- out = TempPath.new('save', "#{p.basename}.gz")
53
- cmd = "gzip -c #{p} > #{out}"
54
- unless system cmd
55
- raise SaveError, "command failed: `#{cmd}' => #{$?}"
56
- end
57
- end
58
- out
59
- end
60
-
61
- end # class File
62
-
63
- @@schemes['FILE'] = File
64
-
65
- end # module URI