solaris-file 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,3 +1,9 @@
1
+ == 0.3.2 - 24-Jul-2007
2
+ * Added a Rakefile with tasks for testing and installation.
3
+ * Fixed an internal function name that conflicted with one in the acl.h file.
4
+ (I'm guessing this was a recent development for me not to notice until now).
5
+ * Internal layout changes that don't affect you.
6
+
1
7
  == 0.3.1 - 11-Jul-2006
2
8
  * Fixed a potential 64 bit bug in a struct declaration.
3
9
  * Minor RDoc updates, changes and internal cosmetic changes.
@@ -16,4 +22,4 @@
16
22
  * Added a gemspec.
17
23
 
18
24
  == 0.1.0 - 27-Jan-2005
19
- * Initial release.
25
+ * Initial release.
data/MANIFEST CHANGED
@@ -1,14 +1,11 @@
1
- extconf.rb
2
- MANIFEST
3
- README
4
- CHANGES
5
- solaris-file.gemspec
6
-
7
- examples/bar.txt
8
- examples/foo.txt
9
- examples/test.rb
10
-
11
- lib/solaris/sfile.c
12
- lib/solaris/sfile.h
13
-
14
- test/tc_solaris_file.rb
1
+ * CHANGES
2
+ * MANIFEST
3
+ * README
4
+ * Rakefile
5
+ * solaris-file.gemspec
6
+ * examples/bar.txt
7
+ * examples/foo.txt
8
+ * examples/test.rb
9
+ * ext/solaris/sfile.c
10
+ * ext/solaris/sfile.h
11
+ * test/tc_solaris_file.rb
data/README CHANGED
@@ -5,10 +5,13 @@
5
5
  Ruby 1.8.x
6
6
 
7
7
  == Installation
8
- ruby extconf.rb
9
- make
10
- ruby test/tc_solaris_file.rb
11
- make site-install
8
+ === Manual Installation
9
+ rake test (optional)
10
+ rake install
11
+
12
+ === Gem Install
13
+ rake test (optional)
14
+ rake install_gem
12
15
 
13
16
  == Synopsis
14
17
  require "solaris/file"
@@ -26,26 +29,26 @@
26
29
 
27
30
  == Class Methods
28
31
  File.acl_count(file_name)
29
- Returns the number of ACL entries for the file. Returns 0 if it's a
32
+ Returns the number of ACL entries for the file. Returns 0 if it's a
30
33
  trivial file.
31
34
 
32
35
  File.acl_read(file_name)
33
36
  Returns an Array of ACLStruct's or nil if file_name is a trivial file.
34
37
 
35
38
  Fiel.acl_read_text(file_name)
36
- Returns a String form of the ACL entries for the file. Returns nil if
39
+ Returns a String form of the ACL entries for the file. Returns nil if
37
40
  it's a trivial ACL.
38
41
 
39
42
  File.acl_write_text(file_name, acl_string)
40
- Accepts a formatted ACL string that set the ACL for the file. If the
43
+ Accepts a formatted ACL string that set the ACL for the file. If the
41
44
  string is badly formed, a File::SolarisError is raised.
42
45
 
43
46
  File.realpath(path)
44
- Resolves all symbolic links in +path+. Resolves to an absolute pathname
47
+ Resolves all symbolic links in +path+. Resolves to an absolute pathname
45
48
  where possible.
46
49
 
47
50
  File.resolvepath(path)
48
- Resolves all symbolic links in +path+. All "." components are removed, as
51
+ Resolves all symbolic links in +path+. All "." components are removed, as
49
52
  well as all nonleading ".." components and their preceding directory
50
53
  component. If leading ".." components resolve to the root directory, they
51
54
  are replaced by "/".
@@ -56,14 +59,14 @@ File.trivial?(file_name)
56
59
 
57
60
  = Instance Methods
58
61
  File#acl_count
59
- Returns the number of ACL entries for the file. Returns 0 if it's a
62
+ Returns the number of ACL entries for the file. Returns 0 if it's a
60
63
  trivial file.
61
64
 
62
65
  File#acl_read
63
66
  Returns an Array of ACLStruct's.
64
67
 
65
68
  File#acl_read_text
66
- Returns a String form of the ACL entries for the file. Returns nil if
69
+ Returns a String form of the ACL entries for the file. Returns nil if
67
70
  it's a trivial ACL.
68
71
 
69
72
  File#acl_write_text(acl_string)
@@ -83,7 +86,7 @@ File::SolarisError < StandardError
83
86
  Raised if anything goes wrong with any of the above methods.
84
87
 
85
88
  == Known Bugs
86
- None that I am aware of. Please report any bugs using the tracker on the
89
+ None that I am aware of. Please report any bugs using the tracker on the
87
90
  project page at http://www.rubyforge.org/projects/solarisutils
88
91
 
89
92
  == Future Plans
@@ -92,21 +95,21 @@ File::SolarisError < StandardError
92
95
  Add support for extended file attributes.
93
96
 
94
97
  == Developer's Notes
95
- This is a BETA release. I have not totally settled on the API.
98
+ This is a BETA release. The code is stable, the API is not.
96
99
 
97
100
  == Copyright
98
- (C) 2005, 2006 Daniel J. Berger
99
- All Rights Reserved
101
+ (C) 2005-2007 Daniel J. Berger
102
+ All Rights Reserved
100
103
 
101
104
  == Warranty
102
- This package is provided "as is" and without any express or
103
- implied warranties, including, without limitation, the implied
104
- warranties of merchantability and fitness for a particular purpose.
105
+ This package is provided "as is" and without any express or
106
+ implied warranties, including, without limitation, the implied
107
+ warranties of merchantability and fitness for a particular purpose.
105
108
 
106
109
  == License
107
110
  Ruby's
108
111
 
109
112
  == Author
110
113
  Daniel J. Berger
111
- djberg96 [at gmail dot com]
114
+ djberg96 [at nospam at gmail dot com]
112
115
  imperator on IRC (irc.freenode.net)
data/ext/extconf.rb ADDED
@@ -0,0 +1,10 @@
1
+ require 'mkmf'
2
+ require 'fileutils'
3
+
4
+ dir_config('file')
5
+
6
+ FileUtils.cp('solaris/sfile.c', '.')
7
+ FileUtils.cp('solaris/sfile.h', '.')
8
+
9
+ have_library('sec')
10
+ create_makefile('solaris/file')
@@ -9,7 +9,7 @@
9
9
  * call-seq:
10
10
  * File.acl_count(file_name)
11
11
  *
12
- * Returns the number of ACL entries for +file_name+. Returns 0 if +file_name+
12
+ * Returns the number of ACL entries for +file_name+. Returns 0 if +file_name+
13
13
  * is a trivial file.
14
14
  */
15
15
  static VALUE acl_count(VALUE klass, VALUE v_path){
@@ -34,7 +34,7 @@ static VALUE acl_count(VALUE klass, VALUE v_path){
34
34
  * call-seq:
35
35
  * File#acl_count
36
36
  *
37
- * Returns the number of ACL entries for the current handle. Returns 0 if
37
+ * Returns the number of ACL entries for the current handle. Returns 0 if
38
38
  * the file is a trivial file.
39
39
  */
40
40
  static VALUE acl_icount(VALUE self){
@@ -115,10 +115,10 @@ static VALUE acl_read(VALUE klass, VALUE v_path){
115
115
  * Returns nil if the file is a trivial file.
116
116
  */
117
117
  static VALUE acl_iread(VALUE self){
118
+ int i;
118
119
  int num_acls = 0;
119
- int fildes = FIX2INT(rb_funcall(self,rb_intern("fileno"),0,0));
120
+ int fildes = FIX2INT(rb_funcall(self, rb_intern("fileno"), 0, 0));
120
121
  VALUE v_array = Qnil;
121
- int i;
122
122
 
123
123
  if( (num_acls = facl(fildes, GETACLCNT, 0, NULL)) == -1)
124
124
  rb_sys_fail(0);
@@ -152,7 +152,7 @@ static VALUE acl_iread(VALUE self){
152
152
  * call-seq:
153
153
  * File.acl_read_text(file_name)
154
154
  *
155
- * Returns a textual representation of the ACL for +file_name+. If +file_name+
155
+ * Returns a textual representation of the ACL for +file_name+. If +file_name+
156
156
  * is a trivial file, nil is returned.
157
157
  */
158
158
  static VALUE acl_read_text(VALUE klass, VALUE v_path){
@@ -190,10 +190,10 @@ static VALUE acl_read_text(VALUE klass, VALUE v_path){
190
190
  * call-seq:
191
191
  * File.acl_write_text(file_name, acl_text)
192
192
  *
193
- * Sets the ACL for +file_name+ using +acl_text+. The +acl_text+ argument is a
193
+ * Sets the ACL for +file_name+ using +acl_text+. The +acl_text+ argument is a
194
194
  * human readable ACL text String.
195
195
  *
196
- * If +acl_text+ is invalid then a Solaris::FileError is raised, and in most
196
+ * If +acl_text+ is invalid then a Solaris::File::Error is raised, and in most
197
197
  * cases the offending entry number will be identified.
198
198
  */
199
199
  static VALUE acl_write_text(VALUE klass, VALUE v_path, VALUE v_text){
@@ -348,7 +348,7 @@ static VALUE acl_iread_text(VALUE self){
348
348
  * Returns true if +file_name+ is a trivial file, i.e. has no additional ACL
349
349
  * entries. Otherwise, it returns false.
350
350
  */
351
- static VALUE acl_trivial(VALUE klass, VALUE v_path){
351
+ static VALUE acl_is_trivial(VALUE klass, VALUE v_path){
352
352
  char pathp[PATH_MAX];
353
353
  int num_acls = 0;
354
354
  VALUE v_bool = Qfalse;
@@ -392,7 +392,7 @@ static VALUE acl_itrivial(VALUE self){
392
392
  * Adds ACL support for the File class on Solaris
393
393
  */
394
394
  void Init_file(){
395
- /* Error Classes */
395
+ /* Error raised if an error occurs when reading or writing ACL properties */
396
396
  cSolarisFileError = rb_define_class_under(rb_cFile, "SolarisError",
397
397
  rb_eStandardError
398
398
  );
@@ -402,7 +402,7 @@ void Init_file(){
402
402
  rb_define_singleton_method(rb_cFile, "acl_read", acl_read, 1);
403
403
  rb_define_singleton_method(rb_cFile, "acl_read_text", acl_read_text, 1);
404
404
  rb_define_singleton_method(rb_cFile, "acl_write_text", acl_write_text, 2);
405
- rb_define_singleton_method(rb_cFile, "trivial?", acl_trivial, 1);
405
+ rb_define_singleton_method(rb_cFile, "trivial?", acl_is_trivial, 1);
406
406
  rb_define_singleton_method(rb_cFile, "realpath", solaris_realpath, 1);
407
407
  rb_define_singleton_method(rb_cFile, "resolvepath", solaris_resolvepath, 1);
408
408
 
@@ -418,6 +418,6 @@ void Init_file(){
418
418
  "acl_type", "acl_id", "acl_perm", NULL
419
419
  );
420
420
 
421
- /* Constants */
421
+ /* 0.3.2: The version of this library, returned as a String */
422
422
  rb_define_const(rb_cFile, "SOLARIS_VERSION", rb_str_new2(SOLARIS_VERSION));
423
423
  }
@@ -1,4 +1,4 @@
1
- #define SOLARIS_VERSION "0.3.1"
1
+ #define SOLARIS_VERSION "0.3.2"
2
2
  #define MAX_STRING 512
3
3
 
4
4
  VALUE cSolarisFileError;
@@ -1,25 +1,15 @@
1
1
  ###############################################################################
2
2
  # tc_solaris_file.rb
3
3
  #
4
- # Test suite for the solaris-file package.
4
+ # Test suite for the solaris-file package. You should run this test case
5
+ # via the 'rake test' task.
5
6
  ###############################################################################
6
- base = File.basename(Dir.pwd)
7
-
8
- if base == "test" || base =~ /solaris-file.*/
9
- require "ftools"
10
- Dir.chdir("..") if base == "test"
11
- Dir.mkdir("solaris") unless File.exists?("solaris")
12
- File.copy("file.so","solaris")
13
- $LOAD_PATH.unshift(Dir.pwd)
14
- Dir.chdir("test") rescue nil
15
- end
16
-
17
- require "test/unit"
18
- require "solaris/file"
19
- require "open3"
7
+ require 'test/unit'
8
+ require 'solaris/file'
20
9
 
21
10
  class TC_Solaris_File < Test::Unit::TestCase
22
11
  def setup
12
+ Dir.chdir('test') unless File.basename(Dir.pwd) == 'test'
23
13
  @dir = Dir.pwd
24
14
  @file = "foo.txt" # trivial
25
15
  @file2 = "bar.txt" # non-trivial
@@ -37,7 +27,7 @@ class TC_Solaris_File < Test::Unit::TestCase
37
27
  end
38
28
 
39
29
  def test_version
40
- assert_equal("0.3.1", File::SOLARIS_VERSION)
30
+ assert_equal("0.3.2", File::SOLARIS_VERSION)
41
31
  end
42
32
 
43
33
  # CLASS METHODS
@@ -148,9 +138,11 @@ class TC_Solaris_File < Test::Unit::TestCase
148
138
 
149
139
  def teardown
150
140
  @dir = nil
151
- @file = nil
152
- @file2 = nil
153
141
  @fh.close
154
142
  @fh2.close
143
+ File.delete(@file) if File.exists?(@file)
144
+ File.delete(@file2) if File.exists?(@file2)
145
+ @file = nil
146
+ @file2 = nil
155
147
  end
156
148
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.0
2
+ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: solaris-file
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.3.1
7
- date: 2006-07-11 00:00:00 -06:00
6
+ version: 0.3.2
7
+ date: 2007-07-24 00:00:00 -06:00
8
8
  summary: ACL and other methods for the File class on Solaris
9
9
  require_paths:
10
10
  - lib
11
11
  email: djberg96@gmail.com
12
- homepage: http://www.rubyforge.org/projects/sysutils
13
- rubyforge_project:
12
+ homepage: http://www.rubyforge.org/projects/solarisutils
13
+ rubyforge_project: solarisutils
14
14
  description: ACL and other methods for the File class on Solaris
15
15
  autorequire:
16
16
  default_executable:
@@ -18,35 +18,39 @@ bindir: bin
18
18
  has_rdoc: true
19
19
  required_ruby_version: !ruby/object:Gem::Version::Requirement
20
20
  requirements:
21
- - - ">"
21
+ - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 0.0.0
23
+ version: 1.8.0
24
24
  version:
25
25
  platform: ruby
26
26
  signing_key:
27
27
  cert_chain:
28
28
  post_install_message:
29
29
  authors:
30
- - Daniel Berger
30
+ - Daniel J. Berger
31
31
  files:
32
+ - ext/extconf.rb
33
+ - ext/solaris
34
+ - ext/solaris/sfile.c
35
+ - ext/solaris/sfile.h
36
+ - test/tc_solaris_file.rb
37
+ - examples/test.rb
38
+ - README
32
39
  - CHANGES
33
40
  - MANIFEST
34
- - README
35
- - extconf.rb
36
- - lib/solaris/sfile.c
37
- - lib/solaris/sfile.h
38
- - examples/test.rb
39
41
  test_files:
40
42
  - test/tc_solaris_file.rb
41
43
  rdoc_options: []
42
44
 
43
45
  extra_rdoc_files:
44
- - CHANGES
45
46
  - README
47
+ - CHANGES
48
+ - MANIFEST
49
+ - ext/solaris/sfile.c
46
50
  executables: []
47
51
 
48
52
  extensions:
49
- - extconf.rb
53
+ - ext/extconf.rb
50
54
  requirements: []
51
55
 
52
56
  dependencies: []
data/extconf.rb DELETED
@@ -1,8 +0,0 @@
1
- require "mkmf"
2
- require "ftools"
3
-
4
- File.copy("lib/solaris/sfile.c",".")
5
- File.copy("lib/solaris/sfile.h",".")
6
-
7
- have_library("sec")
8
- create_makefile("solaris/file")