io-extra 1.2.2 → 1.2.3

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,8 @@
1
+ == 1.2.3 - 25-Oct-2010
2
+ * Documentation updates to the README.
3
+ * Updates to the Rakefile, including archive tasks, a default task, and
4
+ tweaks to the clean task.
5
+
1
6
  == 1.2.2 - 1-May-2010
2
7
  * Added the IO.writev method which allows you to write arrays without
3
8
  requiring an Array#join call, i.e. "gather write". Thanks go to Eric
data/README CHANGED
@@ -1,6 +1,7 @@
1
1
  = Description
2
2
  The io-extra library provides a few extra IO methods that you may find
3
- handy. They are IO.closefrom, IO.fdwalk, IO#directio? and IO#directio=.
3
+ handy. They are IO.closefrom, IO.fdwalk, IO.pread, IO.pread_ptr, IO.pwrite,
4
+ IO.writev, IO#directio? and IO#directio=.
4
5
 
5
6
  This library is not supported on MS Windows.
6
7
 
@@ -22,6 +23,9 @@
22
23
  p handle.fileno
23
24
  }
24
25
 
26
+ # Write an array to an IO object efficiently
27
+ IO.writev(fh.fileno, %w[a b c])
28
+
25
29
  = Developer's Notes
26
30
  You might be wondering what the difference is between my implementation of
27
31
  IO.closefrom and a pure Ruby version that looks something like this:
data/Rakefile CHANGED
@@ -10,16 +10,17 @@ end
10
10
 
11
11
  desc "Clean the build files for the io-extra source"
12
12
  task :clean do
13
- FileUtils.rm_rf('io') if File.exists?('io')
13
+ Dir['*.gem'].each{ |f| File.delete(f) }
14
+ Dir['**/*.rbc'].each{ |f| File.delete(f) } # Rubinius
15
+ rm_rf('io') if File.exists?('io')
16
+
14
17
  Dir.chdir('ext') do
15
18
  sh 'make distclean' if File.exists?('extra.o')
16
-
17
- FileUtils.rm_rf('extra/extra.c') if File.exists?('extra.c')
18
-
19
+ rm_rf('extra/extra.c') if File.exists?('extra.c')
20
+ rm_rf('conftest.dSYM') if File.exists?('conftest.dSYM') # OS X
19
21
  build_file = File.join(Dir.pwd, 'io', 'extra.' + Config::CONFIG['DLEXT'])
20
22
  File.delete(build_file) if File.exists?(build_file)
21
23
  end
22
- Dir['*.gem'].each{ |f| File.delete(f) }
23
24
  end
24
25
 
25
26
  desc "Build the io-extra library (but don't install it)"
@@ -33,16 +34,9 @@ task :build => [:clean] do
33
34
  end
34
35
  end
35
36
 
36
- desc "Install the io-extra library (non-gem)"
37
- task :install => [:build] do
38
- Dir.chdir('ext') do
39
- sh 'make install'
40
- end
41
- end
42
-
43
37
  namespace :gem do
44
38
  desc 'Create the io-extra gem'
45
- task :create do
39
+ task :create => [:clean] do
46
40
  spec = eval(IO.read('io-extra.gemspec'))
47
41
  Gem::Builder.new(spec).build
48
42
  end
@@ -54,14 +48,43 @@ namespace :gem do
54
48
  end
55
49
  end
56
50
 
51
+ namespace :archive do
52
+ spec = eval(IO.read('io-extra.gemspec'))
53
+ file = "io-extra-#{spec.version}"
54
+
55
+ desc 'Create an io-extra tarball.'
56
+ task :tar do
57
+ file = file + ".tar"
58
+ cmd = "git archive --format=tar --prefix=#{file}/ -o #{file} HEAD"
59
+ sh cmd
60
+ end
61
+
62
+ desc 'Create a gzipped tarball for io-extra'
63
+ task :gz => [:tar] do
64
+ sh "gzip #{file}"
65
+ end
66
+
67
+ desc 'Create a bzip2 tarball for io-extra'
68
+ task :bz2 => [:tar] do
69
+ sh "bzip2 #{file}"
70
+ end
71
+
72
+ desc 'Create a zipped tarball for io-extra'
73
+ task :zip do
74
+ sh "git archive --format=zip --prefix=#{file}/ -o #{file}.zip HEAD"
75
+ end
76
+ end
77
+
57
78
  desc "Run the example io-extra program"
58
79
  task :example => [:build] do
59
80
  ruby '-Iext examples/example_io_extra.rb'
60
81
  end
61
82
 
62
83
  Rake::TestTask.new do |t|
63
- task :test => :build
64
- t.libs << 'ext'
65
- t.verbose = true
66
- t.warning = true
84
+ task :test => :build
85
+ t.libs << 'ext'
86
+ t.verbose = true
87
+ t.warning = true
67
88
  end
89
+
90
+ task :default => :test
data/ext/io/extra.c CHANGED
@@ -544,6 +544,6 @@ void Init_extra(){
544
544
  rb_define_singleton_method(rb_cIO, "writev", s_io_writev, 2);
545
545
  #endif
546
546
 
547
- /* 1.2.2: The version of this library. This a string. */
548
- rb_define_const(rb_cIO, "EXTRA_VERSION", rb_str_new2("1.2.2"));
547
+ /* 1.2.3: The version of this library. This a string. */
548
+ rb_define_const(rb_cIO, "EXTRA_VERSION", rb_str_new2("1.2.3"));
549
549
  }
data/io-extra.gemspec CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
8
8
  end
9
9
 
10
10
  spec.name = 'io-extra'
11
- spec.version = '1.2.2'
11
+ spec.version = '1.2.3'
12
12
  spec.author = 'Daniel J. Berger'
13
13
  spec.license = 'Artistic 2.0'
14
14
  spec.email = 'djberg96@gmail.com'
@@ -28,11 +28,11 @@ Gem::Specification.new do |spec|
28
28
  spec.rubyforge_project = 'shards'
29
29
  spec.required_ruby_version = '>= 1.8.6'
30
30
 
31
- spec.add_development_dependency('test-unit', '>= 2.0.3')
31
+ spec.add_development_dependency('test-unit', '>= 2.1.1')
32
32
 
33
33
  spec.description = <<-EOF
34
- Adds the IO.closefrom, IO.fdwalk, IO.pread, IO.pread_ptr, and IO.pwrite
35
- class methods as well as the IO#directio and IO#directio? instance
36
- methods (for those platforms that support them).
34
+ Adds the IO.closefrom, IO.fdwalk, IO.pread, IO.pread_ptr, IO.pwrite, and
35
+ IO.writev singleton methods as well as the IO#directio and IO#directio?
36
+ instance methods (for those platforms that support them).
37
37
  EOF
38
38
  end
@@ -20,7 +20,7 @@ class TC_IO_Extra < Test::Unit::TestCase
20
20
  end
21
21
 
22
22
  def test_version
23
- assert_equal('1.2.2', IO::EXTRA_VERSION)
23
+ assert_equal('1.2.3', IO::EXTRA_VERSION)
24
24
  end
25
25
 
26
26
  def test_direct_constant
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: io-extra
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 25
4
5
  prerelease: false
5
6
  segments:
6
7
  - 1
7
8
  - 2
8
- - 2
9
- version: 1.2.2
9
+ - 3
10
+ version: 1.2.3
10
11
  platform: ruby
11
12
  authors:
12
13
  - Daniel J. Berger
@@ -14,24 +15,26 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-05-01 00:00:00 -06:00
18
+ date: 2010-10-25 00:00:00 -06:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: test-unit
22
23
  prerelease: false
23
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
24
26
  requirements:
25
27
  - - ">="
26
28
  - !ruby/object:Gem::Version
29
+ hash: 9
27
30
  segments:
28
31
  - 2
29
- - 0
30
- - 3
31
- version: 2.0.3
32
+ - 1
33
+ - 1
34
+ version: 2.1.1
32
35
  type: :development
33
36
  version_requirements: *id001
34
- description: " Adds the IO.closefrom, IO.fdwalk, IO.pread, IO.pread_ptr, and IO.pwrite\n class methods as well as the IO#directio and IO#directio? instance\n methods (for those platforms that support them).\n"
37
+ description: " Adds the IO.closefrom, IO.fdwalk, IO.pread, IO.pread_ptr, IO.pwrite, and\n IO.writev singleton methods as well as the IO#directio and IO#directio?\n instance methods (for those platforms that support them).\n"
35
38
  email: djberg96@gmail.com
36
39
  executables: []
37
40
 
@@ -63,25 +66,29 @@ rdoc_options: []
63
66
  require_paths:
64
67
  - lib
65
68
  required_ruby_version: !ruby/object:Gem::Requirement
69
+ none: false
66
70
  requirements:
67
71
  - - ">="
68
72
  - !ruby/object:Gem::Version
73
+ hash: 59
69
74
  segments:
70
75
  - 1
71
76
  - 8
72
77
  - 6
73
78
  version: 1.8.6
74
79
  required_rubygems_version: !ruby/object:Gem::Requirement
80
+ none: false
75
81
  requirements:
76
82
  - - ">="
77
83
  - !ruby/object:Gem::Version
84
+ hash: 3
78
85
  segments:
79
86
  - 0
80
87
  version: "0"
81
88
  requirements: []
82
89
 
83
90
  rubyforge_project: shards
84
- rubygems_version: 1.3.6
91
+ rubygems_version: 1.3.7
85
92
  signing_key:
86
93
  specification_version: 3
87
94
  summary: Adds extra methods to the IO class.