core_ex 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/SPEC.dyn.yml +4 -3
- data/SPEC.gem.yml +111 -0
- data/SPEC.yml +5 -1
- data/lib/core_ex/pathname.rb +5 -1
- data/lib/core_ex/rakefile_base.rf +79 -33
- data/lib/core_ex/temp_path.rb +19 -9
- metadata +6 -9
- data/test/resources/autoload_tree/A.rb +0 -11
- data/test/resources/autoload_tree/B.rb +0 -10
- data/test/resources/autoload_tree/foo/C.rb +0 -18
data/SPEC.dyn.yml
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
--- !ruby/object:OpenStruct
|
2
2
|
table:
|
3
|
-
:date: "
|
3
|
+
:date: "Fri, 03 Jun 2005"
|
4
4
|
:version: !ruby/object:Version
|
5
|
-
build:
|
5
|
+
build: 2
|
6
6
|
major: 0
|
7
7
|
minor: 1
|
8
|
-
revision:
|
8
|
+
revision: 276
|
9
9
|
:version_id: ''
|
10
|
+
:url: svn://svn.feydakins.org/ruby_ex/trunk/core_ex
|
data/SPEC.gem.yml
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.8.10
|
3
|
+
specification_version: 1
|
4
|
+
name: core_ex
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: 0.1.2
|
7
|
+
date: 2005-06-03
|
8
|
+
summary: CoreEx is a proposal for a standard library extension.
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
email:
|
12
|
+
- nicolas.despres@gmail.com
|
13
|
+
- ertai@feydakins.org
|
14
|
+
homepage: http://api.feydakins.org/core_ex
|
15
|
+
rubyforge_project: core_ex
|
16
|
+
description: "CoreEx is designed to provides a simple but quite useful extension of the
|
17
|
+
standard library of Ruby. So some classes and modules like Pathname, Time,
|
18
|
+
Enumerable, Exception, FileUtils, String, and YAML are extended. There is
|
19
|
+
also some new features like attr_once, DTime, TempPath, Version,
|
20
|
+
embedded_tests, filelist (almost from rake), a common Rakefile, and an
|
21
|
+
extension of the require system."
|
22
|
+
autorequire:
|
23
|
+
default_executable:
|
24
|
+
bindir: bin
|
25
|
+
has_rdoc: true
|
26
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
27
|
+
requirements:
|
28
|
+
-
|
29
|
+
- ">"
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: 0.0.0
|
32
|
+
version:
|
33
|
+
platform: ruby
|
34
|
+
authors:
|
35
|
+
-
|
36
|
+
- Nicolas Despr�s
|
37
|
+
- Nicolas Pouillard
|
38
|
+
files:
|
39
|
+
- lib/core_ex.rb
|
40
|
+
- lib/core_ex/attr_once.rb
|
41
|
+
- lib/core_ex/dtime.rb
|
42
|
+
- lib/core_ex/embedded_tests.rb
|
43
|
+
- lib/core_ex/enumerable.rb
|
44
|
+
- lib/core_ex/exception.rb
|
45
|
+
- lib/core_ex/filelist.rb
|
46
|
+
- lib/core_ex/fileutils.rb
|
47
|
+
- lib/core_ex/pathname.rb
|
48
|
+
- lib/core_ex/rakefile_base.rf
|
49
|
+
- lib/core_ex/require.rb
|
50
|
+
- lib/core_ex/string.rb
|
51
|
+
- lib/core_ex/temp_path.rb
|
52
|
+
- lib/core_ex/time.rb
|
53
|
+
- lib/core_ex/version.rb
|
54
|
+
- lib/core_ex/yaml.rb
|
55
|
+
- lib/core_ex/test/unit/ui/yaml/testrunner.rb
|
56
|
+
- test/check-core_ex.yml
|
57
|
+
- test/check-pkg-core_ex.yml
|
58
|
+
- test/resources
|
59
|
+
- test/sanity
|
60
|
+
- test/sanity-suite.yml
|
61
|
+
- test/test-unit-setup.rb
|
62
|
+
- test/unit-suite.yml
|
63
|
+
- test/resources/require
|
64
|
+
- test/resources/use-from-gems.rb
|
65
|
+
- test/resources/yaml_testrunner
|
66
|
+
- test/resources/require/test_require
|
67
|
+
- test/resources/require/test_require_rb.rb
|
68
|
+
- test/resources/require/test_require_so.so
|
69
|
+
- test/resources/yaml_testrunner/unit_test.rb
|
70
|
+
- test/sanity/multiple-requires.yml
|
71
|
+
- test/sanity/single-requires.yml
|
72
|
+
- AUTHORS
|
73
|
+
- NEWS
|
74
|
+
- Rakefile
|
75
|
+
- README
|
76
|
+
- SPEC.dyn.yml
|
77
|
+
- SPEC.gem.yml
|
78
|
+
- SPEC.yml
|
79
|
+
test_files: []
|
80
|
+
rdoc_options:
|
81
|
+
- "--inline-source"
|
82
|
+
- "--main"
|
83
|
+
- README
|
84
|
+
- "--title"
|
85
|
+
- "CoreEx -- A proposal for a standard library extension."
|
86
|
+
- "-T"
|
87
|
+
- html
|
88
|
+
extra_rdoc_files:
|
89
|
+
- README
|
90
|
+
- AUTHORS
|
91
|
+
- NEWS
|
92
|
+
- lib/core_ex.rb
|
93
|
+
- lib/core_ex/attr_once.rb
|
94
|
+
- lib/core_ex/dtime.rb
|
95
|
+
- lib/core_ex/embedded_tests.rb
|
96
|
+
- lib/core_ex/enumerable.rb
|
97
|
+
- lib/core_ex/exception.rb
|
98
|
+
- lib/core_ex/filelist.rb
|
99
|
+
- lib/core_ex/fileutils.rb
|
100
|
+
- lib/core_ex/pathname.rb
|
101
|
+
- lib/core_ex/require.rb
|
102
|
+
- lib/core_ex/string.rb
|
103
|
+
- lib/core_ex/temp_path.rb
|
104
|
+
- lib/core_ex/time.rb
|
105
|
+
- lib/core_ex/version.rb
|
106
|
+
- lib/core_ex/yaml.rb
|
107
|
+
- lib/core_ex/test/unit/ui/yaml/testrunner.rb
|
108
|
+
executables: []
|
109
|
+
extensions: []
|
110
|
+
requirements: []
|
111
|
+
dependencies: []
|
data/SPEC.yml
CHANGED
@@ -16,10 +16,14 @@ description: >
|
|
16
16
|
extension of the require system.
|
17
17
|
homepage: http://api.feydakins.org/core_ex
|
18
18
|
rubyforge_project: ttk
|
19
|
+
rubyforge_sub_package_name: core_ex
|
19
20
|
|
20
21
|
root_test_suite: test/check-pkg-core_ex.yml
|
21
22
|
rdoc_dir: doc/html
|
22
|
-
|
23
|
+
tags_url: svn://svn.feydakins.org/ruby_ex/tags
|
24
|
+
|
25
|
+
commit_command: rxci
|
26
|
+
commit_dir: ..
|
23
27
|
|
24
28
|
rdoc_files: !filelist
|
25
29
|
- README
|
data/lib/core_ex/pathname.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
# License: Gnu General Public License.
|
4
4
|
|
5
5
|
# $LastChangedBy: ertai $
|
6
|
-
# $Id: pathname.rb
|
6
|
+
# $Id: pathname.rb 272 2005-06-02 23:47:29Z ertai $
|
7
7
|
|
8
8
|
|
9
9
|
require 'pathname'
|
@@ -32,6 +32,10 @@ class Pathname
|
|
32
32
|
FileUtils.cp self.to_s, aPath.to_s
|
33
33
|
end
|
34
34
|
|
35
|
+
def mv ( aPath )
|
36
|
+
FileUtils.mv self.to_s, aPath.to_s
|
37
|
+
end
|
38
|
+
|
35
39
|
def cp_r ( aPath )
|
36
40
|
FileUtils.cp_r self.to_s, aPath.to_s
|
37
41
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# Copyright:: Copyright (c) 2005 Nicolas Pouillard. All rights reserved.
|
2
2
|
# Author:: Nicolas Pouillard <ertai@lrde.epita.fr>.
|
3
3
|
# License:: Gnu General Public License.
|
4
|
-
# Revision:: $Id: rakefile_base.rf
|
4
|
+
# Revision:: $Id: rakefile_base.rf 276 2005-06-03 00:53:59Z ertai $
|
5
5
|
|
6
6
|
require 'core_ex'
|
7
7
|
require 'ostruct'
|
@@ -139,6 +139,7 @@ def update_dyn_spec
|
|
139
139
|
SPEC.dyn = OpenStruct.new('version' => Version.new(0, 0, 0, revision))
|
140
140
|
end
|
141
141
|
SPEC.dyn.date = /\((.*)\)/.match(svn_info['Last Changed Date'])[1]
|
142
|
+
SPEC.dyn.url = svn_info['URL']
|
142
143
|
SPEC_DYN_YML.open('w') do |out|
|
143
144
|
out.puts(SPEC.dyn.to_yaml)
|
144
145
|
end
|
@@ -231,12 +232,13 @@ file GEM_SPEC.to_s => [ :spec, :dyn_spec, :rdoc_spec ] do
|
|
231
232
|
end
|
232
233
|
|
233
234
|
s.has_rdoc = true
|
234
|
-
s.extra_rdoc_files = SPEC.rdoc.rdoc_files
|
235
|
-
s.rdoc_options = SPEC.rdoc.option_list.map { |x| x
|
235
|
+
s.extra_rdoc_files = SPEC.rdoc.rdoc_files.to_a
|
236
|
+
s.rdoc_options = SPEC.rdoc.option_list.map { |x| x[/^'?(.*?)'?$/, 1] }
|
236
237
|
|
237
238
|
authors_file = YAML::load(AUTHORS.read).values.first
|
238
239
|
list = authors_file.map { |x| /^(.*?)\s*<(.*)>/.match(x.keys.first)[1..2] }
|
239
240
|
s.authors = list.map { |x| x.first }
|
241
|
+
s.author = s.authors
|
240
242
|
s.email = list.map { |x| x.last }
|
241
243
|
s.homepage = SPEC.homepage
|
242
244
|
s.rubyforge_project = s.name
|
@@ -275,13 +277,34 @@ end
|
|
275
277
|
|
276
278
|
|
277
279
|
|
278
|
-
|
280
|
+
desc 'Commit with Vcs'
|
281
|
+
task :commit => [ :spec ] do
|
282
|
+
subject = ask('Commit subject: ') do |q|
|
283
|
+
q.confirm = true
|
284
|
+
q.validate = /^[^a-z].*\.$/
|
285
|
+
end
|
286
|
+
pos = ARGV.index('--')
|
287
|
+
args = (pos.nil?)? [] : ARGV[pos .. -1]
|
288
|
+
cmd = SPEC.commit_command || 'commit'
|
289
|
+
Dir.chdir(SPEC.commit_dir || '.') do
|
290
|
+
sh 'vcs-svn', cmd, "'#{subject}'", *args
|
291
|
+
end
|
292
|
+
end
|
293
|
+
|
294
|
+
|
295
|
+
|
296
|
+
desc 'Make an Svn tag'
|
279
297
|
task :tag => [ :spec, :dyn_spec ] do
|
280
298
|
tag_name = (SPEC.release)? SPEC.release : "#{SPEC.name}-#{SPEC.dyn.version}"
|
281
|
-
tags =
|
282
|
-
|
283
|
-
|
284
|
-
|
299
|
+
tags = SPEC.tags_url.to_s + "/#{tag_name}"
|
300
|
+
trunk = SPEC.trunk_url || SPEC.dyn.url
|
301
|
+
while agree "Make the SVN tag (#{trunk} -> #{tags}) (y/n)", true
|
302
|
+
begin
|
303
|
+
svn.copy(trunk.to_s, tags, '-m', "'Releasing #{tag_name}'")
|
304
|
+
break
|
305
|
+
rescue RuntimeError => ex
|
306
|
+
STDERR.puts ex
|
307
|
+
end
|
285
308
|
end
|
286
309
|
end
|
287
310
|
|
@@ -289,14 +312,21 @@ end
|
|
289
312
|
|
290
313
|
desc 'Publish to RubyForge'
|
291
314
|
task :publish_doc => [ :spec ] do
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
315
|
+
while agree 'Publish the documentation? ', true
|
316
|
+
begin
|
317
|
+
user = SPEC.user || ENV['USER']
|
318
|
+
Rake::SshDirPublisher.new(
|
319
|
+
# "#{user}@rubyforge.org",
|
320
|
+
# "/var/www/gforge-projects/#{SPEC.name}/test",
|
321
|
+
"#{user}@ssh.feydakins.org",
|
322
|
+
"/var/www/api.feydakins.org/public/#{SPEC.name}/",
|
323
|
+
SPEC.rdoc_dir
|
324
|
+
).upload
|
325
|
+
break
|
326
|
+
rescue Exception => ex
|
327
|
+
STDERR.puts ex
|
328
|
+
end
|
329
|
+
end
|
300
330
|
end
|
301
331
|
|
302
332
|
|
@@ -309,6 +339,7 @@ task :common_release =>
|
|
309
339
|
:doc,
|
310
340
|
:package,
|
311
341
|
:distcheck,
|
342
|
+
:commit,
|
312
343
|
:tag,
|
313
344
|
:publish_doc,
|
314
345
|
:publish_package
|
@@ -332,19 +363,25 @@ end
|
|
332
363
|
SPEC.dyn.version.send(name)
|
333
364
|
q = 'Specify an identifier for this version (or press return): '
|
334
365
|
SPEC.dyn.version_id = ask(q)
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
366
|
+
TempPath.new('SPEC.dyn.yml.bak') do |bak|
|
367
|
+
SPEC_DYN_YML.mv(bak)
|
368
|
+
SPEC_DYN_YML.open('w') do |out|
|
369
|
+
out.puts(SPEC.dyn.to_yaml)
|
370
|
+
end
|
371
|
+
begin
|
372
|
+
sh 'rake', 'clobber'
|
373
|
+
sh 'rake', 'common_release'
|
374
|
+
rescue
|
375
|
+
bak.mv(SPEC_DYN_YML)
|
376
|
+
end
|
343
377
|
end
|
344
378
|
end
|
345
379
|
end
|
346
380
|
|
347
381
|
|
382
|
+
release_notes = ',release_notes'.to_path
|
383
|
+
release_changes = ',release_changes'.to_path
|
384
|
+
|
348
385
|
|
349
386
|
desc "Publish the release files to RubyForge."
|
350
387
|
task :publish_package => [ :spec, :package ] do
|
@@ -412,8 +449,13 @@ task :publish_package => [ :spec, :package ] do
|
|
412
449
|
|
413
450
|
release_uri = "http://rubyforge.org/frs/admin/?group_id=#{group_id}"
|
414
451
|
release_data = open(release_uri, headers) { |data| data.read }
|
415
|
-
|
416
|
-
|
452
|
+
ids, names = [], []
|
453
|
+
release_data.gsub(/name="package_id" value="(\d+)"/) { ids << $1 ; nil }
|
454
|
+
release_data.gsub(/name="package_name" value="([^"]+)"/) { names << $1 ; nil }
|
455
|
+
package_name = SPEC.rubyforge_sub_package_name || SPEC.name
|
456
|
+
|
457
|
+
package_id = names.zip(ids).find { |name, id| name == package_name }.last
|
458
|
+
raise "Couldn't get package id or package name" unless package_id
|
417
459
|
|
418
460
|
first_file = true
|
419
461
|
release_id = ''
|
@@ -433,18 +475,15 @@ task :publish_package => [ :spec, :package ] do
|
|
433
475
|
boundary = "rubyqMY6QN9bp6e4kS21H4y0zxcvoor"
|
434
476
|
|
435
477
|
if first_file then
|
436
|
-
release = {
|
437
|
-
:notes => ',release_notes'.to_path,
|
438
|
-
:changes => ',release_changes'.to_path
|
439
|
-
}
|
478
|
+
release = { :notes => release_notes, :changes => release_changes }
|
440
479
|
[:notes, :changes].each do |x|
|
441
480
|
while not release[x].exist?
|
442
481
|
say "No release #{x} (editing...)"
|
443
482
|
edit release[x]
|
444
|
-
say "Publish these release #{x}:"
|
445
|
-
say release[x].read
|
446
|
-
exit unless agree 'Agree? (y/n) ', true
|
447
483
|
end
|
484
|
+
say "Publish these release #{x}:"
|
485
|
+
say release[x].read
|
486
|
+
exit unless agree 'Agree? (y/n) ', true
|
448
487
|
end
|
449
488
|
query_hash = {
|
450
489
|
'group_id' => group_id,
|
@@ -491,6 +530,7 @@ task :publish_package => [ :spec, :package ] do
|
|
491
530
|
end
|
492
531
|
|
493
532
|
if first_file then
|
533
|
+
puts release_response.body
|
494
534
|
release_id = release_response.body[/release_id=(\d+)/, 1]
|
495
535
|
raise("Couldn't get release id") unless release_id
|
496
536
|
end
|
@@ -498,3 +538,9 @@ task :publish_package => [ :spec, :package ] do
|
|
498
538
|
first_file = false
|
499
539
|
end
|
500
540
|
end
|
541
|
+
|
542
|
+
clean_task :publish_package do
|
543
|
+
[release_notes, release_changes].each do |x|
|
544
|
+
x.rm_f
|
545
|
+
end
|
546
|
+
end
|
data/lib/core_ex/temp_path.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
# License: Gnu General Public License.
|
4
4
|
|
5
5
|
# $LastChangedBy: ertai $
|
6
|
-
# $Id: temp_path.rb
|
6
|
+
# $Id: temp_path.rb 271 2005-06-02 23:46:36Z ertai $
|
7
7
|
|
8
8
|
require 'core_ex'
|
9
9
|
require 'tempfile'
|
@@ -58,7 +58,7 @@ class TempPath < Pathname
|
|
58
58
|
# which follow this format:
|
59
59
|
# => 'base.pid.uniq.ext
|
60
60
|
#
|
61
|
-
def initialize ( base=@@progname, ext=''
|
61
|
+
def initialize ( base=@@progname, ext='' )
|
62
62
|
if base.to_s =~ /\//
|
63
63
|
raise ArgumentError, "bad basename, you give me a pathname #{base}"
|
64
64
|
end
|
@@ -74,12 +74,15 @@ class TempPath < Pathname
|
|
74
74
|
super(res)
|
75
75
|
@@tmps << self
|
76
76
|
end
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
77
|
+
end
|
78
|
+
|
79
|
+
def self.new ( *a, &block )
|
80
|
+
tmp = super(*a)
|
81
|
+
return tmp unless block_given?
|
82
|
+
begin
|
83
|
+
return block[tmp.dup]
|
84
|
+
ensure
|
85
|
+
clean
|
83
86
|
end
|
84
87
|
end
|
85
88
|
|
@@ -153,7 +156,7 @@ end # class Pathname
|
|
153
156
|
|
154
157
|
test_section __FILE__ do
|
155
158
|
|
156
|
-
class
|
159
|
+
class TempPathTest < Test::Unit::TestCase
|
157
160
|
|
158
161
|
def setup
|
159
162
|
assert_nothing_raised { @foo = TempPath.new('foo') }
|
@@ -189,6 +192,13 @@ test_section __FILE__ do
|
|
189
192
|
end
|
190
193
|
end
|
191
194
|
|
195
|
+
def test_block_return
|
196
|
+
assert_nothing_raised do
|
197
|
+
@x = TempPath.new { |tmp| 42 }
|
198
|
+
end
|
199
|
+
assert_equal(42, @x)
|
200
|
+
end
|
201
|
+
|
192
202
|
end # class MkTempTest
|
193
203
|
|
194
204
|
end
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.10
|
|
3
3
|
specification_version: 1
|
4
4
|
name: core_ex
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.1.
|
7
|
-
date: 2005-06-
|
6
|
+
version: 0.1.2
|
7
|
+
date: 2005-06-03
|
8
8
|
summary: CoreEx is a proposal for a standard library extension.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -32,8 +32,9 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
|
|
32
32
|
version:
|
33
33
|
platform: ruby
|
34
34
|
authors:
|
35
|
-
-
|
36
|
-
|
35
|
+
-
|
36
|
+
- Nicolas Despr�s
|
37
|
+
- Nicolas Pouillard
|
37
38
|
files:
|
38
39
|
- lib/core_ex.rb
|
39
40
|
- lib/core_ex/attr_once.rb
|
@@ -59,14 +60,9 @@ files:
|
|
59
60
|
- test/sanity-suite.yml
|
60
61
|
- test/test-unit-setup.rb
|
61
62
|
- test/unit-suite.yml
|
62
|
-
- test/resources/autoload_tree
|
63
63
|
- test/resources/require
|
64
64
|
- test/resources/use-from-gems.rb
|
65
65
|
- test/resources/yaml_testrunner
|
66
|
-
- test/resources/autoload_tree/A.rb
|
67
|
-
- test/resources/autoload_tree/B.rb
|
68
|
-
- test/resources/autoload_tree/foo
|
69
|
-
- test/resources/autoload_tree/foo/C.rb
|
70
66
|
- test/resources/require/test_require
|
71
67
|
- test/resources/require/test_require_rb.rb
|
72
68
|
- test/resources/require/test_require_so.so
|
@@ -78,6 +74,7 @@ files:
|
|
78
74
|
- Rakefile
|
79
75
|
- README
|
80
76
|
- SPEC.dyn.yml
|
77
|
+
- SPEC.gem.yml
|
81
78
|
- SPEC.yml
|
82
79
|
test_files: []
|
83
80
|
rdoc_options:
|