ruby-nuggets 0.2.1.246 → 0.2.2.247

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.
data/README CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  == VERSION
4
4
 
5
- This documentation refers to ruby-nuggets version 0.2.1
5
+ This documentation refers to ruby-nuggets version 0.2.2
6
6
 
7
7
 
8
8
  == DESCRIPTION
@@ -0,0 +1,123 @@
1
+ #--
2
+ ###############################################################################
3
+ # #
4
+ # A component of ruby-nuggets, some extensions to the Ruby programming #
5
+ # language. #
6
+ # #
7
+ # Copyright (C) 2007-2008 Jens Wille #
8
+ # #
9
+ # Authors: #
10
+ # Jens Wille <jens.wille@uni-koeln.de> #
11
+ # #
12
+ # ruby-nuggets is free software; you can redistribute it and/or modify it #
13
+ # under the terms of the GNU General Public License as published by the Free #
14
+ # Software Foundation; either version 3 of the License, or (at your option) #
15
+ # any later version. #
16
+ # #
17
+ # ruby-nuggets is distributed in the hope that it will be useful, but WITHOUT #
18
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
19
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
20
+ # more details. #
21
+ # #
22
+ # You should have received a copy of the GNU General Public License along #
23
+ # with ruby-nuggets. If not, see <http://www.gnu.org/licenses/>. #
24
+ # #
25
+ ###############################################################################
26
+ #++
27
+
28
+ class IO
29
+
30
+ # Inspired by Martin DeMello, [ruby-talk:307782] -- thx ;-)
31
+
32
+ class << self
33
+
34
+ alias_method :original_read, :read
35
+
36
+ # call-seq:
37
+ # IO.read(name, [length [, offset]]) => aString
38
+ # IO.read(name, binary = false) { |io| ... } => anObject
39
+ #
40
+ # Opens +name+ with mode +r+. NOTE: With no associated block,
41
+ # acts like the original IO::read, not like IO::new.
42
+ def read(name, *args, &block)
43
+ return original_read(name, *args) unless block
44
+
45
+ case args.size
46
+ when 0
47
+ # ok
48
+ when 1
49
+ case binary = args.first
50
+ when true, false, nil
51
+ # ok
52
+ else
53
+ raise TypeError, "wrong argument type #{binary.class} (expected boolean)"
54
+ end
55
+ else
56
+ raise ArgumentError, "wrong number of arguments (#{args.size + 1} for 1-2)"
57
+ end
58
+
59
+ open_with_mode(name, 'r', binary, &block)
60
+ end
61
+
62
+ # call-seq:
63
+ # IO.write(name, binary = false) => anIO
64
+ # IO.write(name, binary = false) { |io| ... } => anObject
65
+ #
66
+ # Opens +name+ with mode +w+.
67
+ def write(name, binary = false, &block)
68
+ open_with_mode(name, 'w', binary, &block)
69
+ end
70
+
71
+ # call-seq:
72
+ # IO.append(name, binary = false) => anIO
73
+ # IO.append(name, binary = false) { |io| ... } => anObject
74
+ #
75
+ # Opens +name+ with mode +a+.
76
+ def append(name, binary = false, &block)
77
+ open_with_mode(name, 'a', binary, &block)
78
+ end
79
+
80
+ # call-seq:
81
+ # IO.read_write(name, binary = false) => anIO
82
+ # IO.read_write(name, binary = false) { |io| ... } => anObject
83
+ #
84
+ # Opens +name+ with mode <tt>r+</tt>.
85
+ def read_write(name, binary = false, &block)
86
+ open_with_mode(name, 'r+', binary, &block)
87
+ end
88
+
89
+ # call-seq:
90
+ # IO.write_read(name, binary = false) => anIO
91
+ # IO.write_read(name, binary = false) { |io| ... } => anObject
92
+ #
93
+ # Opens +name+ with mode <tt>w+</tt>.
94
+ def write_read(name, binary = false, &block)
95
+ open_with_mode(name, 'w+', binary, &block)
96
+ end
97
+
98
+ # call-seq:
99
+ # IO.append_read(name, binary = false) => anIO
100
+ # IO.append_read(name, binary = false) { |io| ... } => anObject
101
+ #
102
+ # Opens +name+ with mode <tt>a+</tt>.
103
+ def append_read(name, binary = false, &block)
104
+ open_with_mode(name, 'a+', binary, &block)
105
+ end
106
+
107
+ private
108
+
109
+ # Just a helper to DRY things up.
110
+ def open_with_mode(name, mode, binary = false, &block)
111
+ mode << 'b' if binary
112
+ open(name, mode, &block)
113
+ end
114
+
115
+ end
116
+
117
+ end
118
+
119
+ if $0 == __FILE__
120
+ # File.read(__FILE__) { |f| ... }
121
+ # File.write(__FILE__) { |f| ... }
122
+ # File.append(__FILE__) { |f| ... }
123
+ end
@@ -4,7 +4,7 @@ module Nuggets
4
4
 
5
5
  MAJOR = 0
6
6
  MINOR = 2
7
- TINY = 1
7
+ TINY = 2
8
8
 
9
9
  class << self
10
10
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-nuggets
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1.246
4
+ version: 0.2.2.247
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jens Wille
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-06-24 00:00:00 +02:00
12
+ date: 2008-07-10 00:00:00 +02:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -27,6 +27,7 @@ files:
27
27
  - lib/nuggets/all.rb
28
28
  - lib/nuggets/version.rb
29
29
  - lib/nuggets/io/agrep.rb
30
+ - lib/nuggets/io/modes.rb
30
31
  - lib/nuggets/file/which.rb
31
32
  - lib/nuggets/integer/factorial.rb
32
33
  - lib/nuggets/integer/to_binary_s.rb
@@ -70,15 +71,15 @@ has_rdoc: true
70
71
  homepage: http://prometheus.rubyforge.org/ruby-nuggets
71
72
  post_install_message:
72
73
  rdoc_options:
73
- - --line-numbers
74
+ - --all
74
75
  - --main
75
76
  - README
77
+ - --line-numbers
76
78
  - --inline-source
77
79
  - --title
78
80
  - ruby-nuggets Application documentation
79
81
  - --charset
80
82
  - UTF-8
81
- - --all
82
83
  require_paths:
83
84
  - lib
84
85
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -96,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
97
  requirements: []
97
98
 
98
99
  rubyforge_project: prometheus
99
- rubygems_version: 1.1.1
100
+ rubygems_version: 1.2.0
100
101
  signing_key:
101
102
  specification_version: 2
102
103
  summary: Some extensions to the Ruby programming language.