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,62 +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: polrop $
6
- # $Id: dlogger.rb 99 2005-01-13 19:14:44Z polrop $
7
-
8
- require 'logger'
9
-
10
- # This Logger subclass permit to use more debug levels
11
- #
12
- # log = DLogger.new(STDERR)
13
- # log.level = -1
14
- # log.debug1 "You see me"
15
- # log.debug2 "You see me"
16
- # log.debug3 "You don't see me"
17
- #
18
- class DLogger < Logger
19
-
20
- def format_severity ( severity )
21
- return super if severity >= 0
22
- return "DEBUG#{severity.abs + 1}"
23
- end
24
- private :format_severity
25
-
26
- def method_missing ( meth, progname=nil, *args, &block )
27
- return super unless meth.to_s =~ /^debug(\d+)$/ or !args.empty
28
- add(-$1.to_i + 1, nil, progname, &block)
29
- end
30
-
31
- Format = "%s, [%s#%d] %6s -- %s: %s\n"
32
- def format_message(severity, timestamp, msg, progname)
33
- Format % [severity[0..0], timestamp, $$, severity, progname, msg]
34
- end
35
- private :format_message
36
-
37
- end # class DLogger
38
-
39
-
40
- if defined? TEST_MODE or $0 == __FILE__
41
-
42
- require 'stringio'
43
- require 'test/unit'
44
-
45
- class DLoggerTest < Test::Unit::TestCase
46
-
47
- def test1
48
- cout = StringIO.new
49
- log = DLogger.new(cout)
50
- log.level = -1
51
- log.debug1 'You see me'
52
- log.debug3 'You don\'t see me'
53
- log.debug2 'You see me'
54
- cout.rewind
55
- ref = /D, \[\d+-\d+-\d+.\d+:\d+:\d+\.\d+ #\d+\] DEBUG -- : You see me
56
- D, \[\d+-\d+-\d+.\d+:\d+:\d+\.\d+ #\d+\] DEBUG2 -- : You see me/
57
- assert_match(ref, cout.readlines.join)
58
- end
59
-
60
- end # class DLoggerTest
61
-
62
- end
@@ -1,252 +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: dispatcher.rb 186 2005-04-03 00:07:45Z ertai $
7
-
8
-
9
- require 'drb/drb'
10
-
11
-
12
- module DRb
13
-
14
- class Dispatcher
15
-
16
- URIS = []
17
- MAX_JOB = 5
18
- MAX_JOB_LIMIT = 100
19
- DRB_OBJECT_CLASS = DRbObject
20
-
21
- attr_reader :max_job
22
-
23
- def initialize(uris=URIS,
24
- max_job=MAX_JOB,
25
- drb_object_class=DRB_OBJECT_CLASS,
26
- *args,
27
- &block)
28
- unless 1 <= max_job && max_job <= MAX_JOB_LIMIT
29
- raise(ArgumentError,
30
- "`#{max_job}' - too big max job (must be <= #{MAX_JOB_LIMIT})")
31
- end
32
- @max_job = max_job
33
- @uris = {}
34
- uris.each { |uri| add(uri, drb_object_class, *args, &block) }
35
- end
36
-
37
- def [](uri)
38
- @uris[uri]
39
- end
40
-
41
- def add(uri, drb_object_class, *args, &block)
42
- @uris[uri] = drb_object_class.new(nil, uri, *args, &block)
43
- end
44
-
45
- def del(uri)
46
- @uris.delete(uri)
47
- end
48
-
49
- def each
50
- @uris.each { |uri, ro| yield(uri, ro) }
51
- end
52
-
53
- def dispatch(ros, meth, *args, &block)
54
- result = {}
55
- nb_threads = [ ros.size, @max_job].min
56
- if nb_threads == 1
57
- res = request(ros[0], meth, *args, &block)
58
- result.update(res)
59
- else
60
- mutex = Mutex.new
61
- threads = []
62
- ros_q = ros.dup
63
- nb_threads.times do
64
- threads << Thread.new do
65
- loop do
66
- ro = mutex.synchronize { ros_q.shift }
67
- break if ro.nil?
68
- res = request(ro, meth, *args, &block)
69
- mutex.synchronize { result.update(res) }
70
- end
71
- end
72
- end
73
- threads.each { |thread| thread.join }
74
- end
75
- result
76
- end
77
-
78
- alias update dispatch
79
-
80
- def select(&comp)
81
- ros = []
82
- each { |uri, ro| ros << ro if comp[ro] }
83
- ros
84
- end
85
-
86
- def select_all
87
- select { |ro| true }
88
- end
89
-
90
- def select_by(result, meth, *args, &block)
91
- select { |ro| test_ro_attribut(ro, result, meth, *args, &block) }
92
- end
93
-
94
- def multi_select_by(hash, init_val=true, &bool_fun)
95
- select do |ro|
96
- ret = init_val
97
- hash.each do |k, v|
98
- ret = bool_fun[ret, test_ro_attribut(ro, v, k)]
99
- end
100
- ret
101
- end
102
- end
103
-
104
- def and_multi_select_by(hash)
105
- select do |ro|
106
- ret = true
107
- hash.each do |k, v|
108
- ret = (ret and test_ro_attribut(ro, v, k))
109
- end
110
- ret
111
- end
112
- end
113
-
114
- def or_multi_select_by(hash)
115
- select do |ro|
116
- ret = false
117
- hash.each { |k, v| ret = (ret or test_ro_attribut(ro, v, k)) }
118
- ret
119
- end
120
- end
121
-
122
- def dispatch_all(meth, *args, &block)
123
- dispatch(select_all, meth, *args, &block)
124
- end
125
-
126
- def method_missing(meth, *args, &block)
127
- dispatch_all(meth, *args, &block)
128
- end
129
-
130
- def request(ro, meth, *args, &block)
131
- res = nil
132
- begin
133
- res = ro.send(meth, *args, &block)
134
- rescue Exception => err
135
- res = err
136
- end
137
- { ro.__drburi => res }
138
- end
139
-
140
- protected
141
- def test_ro_attribut(ro, result, meth, *args, &block)
142
- res = request(ro, meth, *args, &block)
143
- if result.is_a? Regexp
144
- res[ro.__drburi].to_s =~ result
145
- else
146
- res[ro.__drburi] == result
147
- end
148
- end
149
-
150
- end # class Dispatcher
151
-
152
- end # module DRb
153
-
154
-
155
- if defined? TEST_MODE or $0 == __FILE__
156
-
157
-
158
- require 'test/unit/ui/yaml/testrunner'
159
- require 'rbconfig'
160
- require 'drb/session_manager'
161
-
162
- module DRb
163
-
164
- class DispatcherTest < ::Test::Unit::TestCase
165
-
166
- class MyDRbObject < DRbObject
167
-
168
- attr_reader :uri, :hostname, :port, :protocol
169
-
170
- def initialize(obj, uri=nil)
171
- super
172
- if uri =~ /(^.*?):\/\/(.*?):(\d*)$/
173
- @protocol = $1
174
- @hostname = $2
175
- @port = $3.to_i
176
- end
177
- end
178
-
179
- end
180
-
181
- #
182
- # Tests
183
- #
184
- def test_multi_select_by
185
- n = 5
186
- uris = []
187
- for i in 0...n do
188
- uris << "druby://localhost:#{42000 + i * 100}"
189
- end
190
- d = nil
191
- assert_nothing_raised { d = Dispatcher.new(uris, 1, MyDRbObject) }
192
- assert_not_nil(d)
193
-
194
- h1 = { :port => 42000, :hostname => 'localhost' }
195
- r1 = d.and_multi_select_by(h1)
196
- assert_equal(1, r1.size)
197
- assert_equal(d['druby://localhost:42000'], r1[0])
198
- r2 = d.multi_select_by(h1) { |a, b| (a and b) }
199
- assert_equal(1, r2.size)
200
- assert_equal(r1, r2)
201
- r1 = d.or_multi_select_by(h1)
202
- r2 = d.multi_select_by(h1, false) { |a, b| (a or b) }
203
- assert_equal(r1, r2)
204
- end
205
-
206
- def test_dispatch
207
- name, ruby_bin, chdir = add_command
208
- drb_session_manager = SessionManager.new
209
- server = DRb.start_service('druby://localhost:0', drb_session_manager)
210
- services = []
211
- uris = []
212
- nb_srv = 10
213
- nb_srv.times do |i|
214
- service = drb_session_manager.service(name)
215
- uris << service.server.uri
216
- services << service
217
- end
218
- until (n = drb_session_manager.nb_sessions) == nb_srv
219
- STDERR.puts "wait for #{n} sessions started" if $VERBOSE
220
- sleep(2)
221
- end
222
- d = Dispatcher.new(uris, 5, MyDRbObject)
223
- ref = {}
224
- uris.each { |uri| ref[uri] = "hello from #{uri}" }
225
- assert(ref, d.hello)
226
- services.each do |service|
227
- service.stop_service
228
- end
229
- while (n = drb_session_manager.nb_sessions) > 0
230
- STDERR.puts "wait for #{n} sessions stoped" if $VERBOSE
231
- sleep(2)
232
- end
233
- server.stop_service
234
- end
235
-
236
- protected
237
- def add_command
238
- ruby_bin = Config::CONFIG["RUBY_INSTALL_NAME"]
239
- ruby_bin += ' -w' if $VERBOSE
240
- name = "dispatcher_server_test"
241
- chdir = (defined? TEST_MODE) ? "cd src;" : ''
242
- cmd = chdir + "#{ruby_bin} drb/#{name}.rb"
243
- DRb::SessionManager.command[name] = cmd
244
- [ name, ruby_bin, chdir ]
245
- end
246
-
247
- end # DispatcherTest
248
-
249
- end # module DRb
250
-
251
-
252
- end
@@ -1,29 +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: dispatcher_server_test.rb 94 2005-01-10 14:52:36Z polrop $
7
-
8
-
9
- require 'drb/session_server'
10
-
11
- if __FILE__ == $0
12
-
13
- class Foo
14
-
15
- def hello
16
- "hello from #{DRb.uri}"
17
- end
18
-
19
- end
20
-
21
- raise "usage: #{$0} <uri> <name>" unless ARGV.size == 2
22
- uri = ARGV.shift
23
- name = ARGV.shift
24
-
25
- server = DRb::DRbServer.new("druby://localhost:0", Foo.new, {})
26
- ext_srv = DRb::SessionServer.new(uri, name, server)
27
- server.thread.join
28
-
29
- end
@@ -1,97 +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: drb_observable.rb 100 2005-01-15 07:45:14Z polrop $
7
-
8
-
9
- require 'drb/observer'
10
-
11
- require 'observable'
12
-
13
-
14
- module DRb
15
-
16
- module DRbObservable
17
- include Observable
18
-
19
- undef notify_observers
20
- def notify_observers(*args, &block)
21
- if defined? @observer_state and @observer_state
22
- if defined? @observer_peers
23
- for i in @observer_peers.dup
24
- begin
25
- i.update(*args, &block)
26
- rescue
27
- delete_observer(i)
28
- end
29
- end
30
- end
31
- @observer_state = false
32
- end
33
- end
34
-
35
- def notify_observer(observer, *arg, &block)
36
- if defined? @observer_state and @observer_state
37
- if defined? @observer_peers
38
- if @observer_peers.include?(observer)
39
- begin
40
- observer.update(*arg, &block)
41
- rescue
42
- delete_observer(observer)
43
- end
44
- end
45
- end
46
- @observer_state = false
47
- end
48
- end
49
-
50
- end # module DRbObservable
51
-
52
- end # module DRb
53
-
54
-
55
- if defined? TEST_MODE or __FILE__ == $0
56
-
57
-
58
- require 'test/unit/ui/yaml/testrunner'
59
-
60
-
61
- module DRb
62
-
63
- class ObservablePoolTest < ::Test::Unit::TestCase
64
-
65
- class Obsv
66
- include DRbObservable
67
-
68
- end
69
-
70
- class Foo
71
-
72
- def update(*args, &block)
73
- raise 'toto'
74
- end
75
-
76
- end
77
-
78
- def test_simple
79
- o = Obsv.new
80
- assert_respond_to(o, :list_observers)
81
- o.add_observer(Foo.new)
82
- assert_equal(1, o.count_observers)
83
- o.changed
84
- o.notify_observers('msg')
85
- assert_equal(0, o.count_observers)
86
- end
87
-
88
-
89
- end # class ObservablePoolTest
90
-
91
- end # module DRb
92
-
93
-
94
- end
95
-
96
-
97
-
@@ -1,27 +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: drb_observable_pool.rb 97 2005-01-13 18:20:49Z polrop $
7
-
8
-
9
- require 'observable_pool'
10
-
11
- require 'drb/drb_observable'
12
-
13
-
14
- module DRb
15
-
16
- class DRbObservablePool
17
-
18
- class SyncObserver
19
- include DRbObservable
20
-
21
- end # class SyncObserver
22
-
23
- end # class DRbObservable
24
-
25
- end # module DRb
26
-
27
-