lockf.rb 0.12.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cc7a6787621983c5bcea9dc35a899eb064d8d09f20d905b90b8391e8fc018f64
4
- data.tar.gz: e32dcc7d52786b2c1c2acdb652264b450506debd976583a2ff8f46a367b2efe9
3
+ metadata.gz: 05e204191db7552902307b79f09636be97f36fba053a89c5ab849c6dd0205830
4
+ data.tar.gz: 82167b478eae279325094a0ba29b8d75500dc6d0a53ea32fd24ed0ef200fa643
5
5
  SHA512:
6
- metadata.gz: b275ee5e97c06f6dfcfbf32074139b1514b3fe4795ab1669bdbb188336f0039aee368846146b6e4b6ef15fc41d0077816844cfcf772e52039584b5816d5e8cbb
7
- data.tar.gz: ffab08187b049fd42ad5549e060c0ba5da31228212c1e5419c3c9640a8842c96617a20cd54ee6f14edc265a5b28ddf50bc00e8dc343493fce0ec6a96a388a3cb
6
+ metadata.gz: 31b69f15f99e3a4b6f522de3b708130ee67ab3a3c5498df989e034bf281f0c02463f360d948150ca9cd562e85a9fd4a8d802d27dad6fa014e289abaa33c6f5d6
7
+ data.tar.gz: 8b9d9b5979cf813a0234054531e0fe4e6d7c7be83221f49540aeaec97d94347db851756fece830b4f711da42683d4195589f7d3578264a232d6aedd37d7d0377
data/.clang-format ADDED
@@ -0,0 +1,11 @@
1
+ BasedOnStyle: LLVM
2
+ IndentWidth: 2
3
+ SortIncludes: false
4
+ UseTab: Never
5
+ BreakBeforeBraces: Allman
6
+ AllowShortFunctionsOnASingleLine: Inline
7
+ AlwaysBreakAfterDefinitionReturnType: TopLevel
8
+ BreakBeforeBinaryOperators: All
9
+ BinPackArguments: false
10
+ AlignConsecutiveAssignments: true
11
+ AlwaysBreakAfterReturnType: None
data/.rubocop.yml CHANGED
@@ -18,4 +18,8 @@ Layout/ArgumentAlignment:
18
18
  ##
19
19
  # Options for all cops.
20
20
  AllCops:
21
- TargetRubyVersion: 2.7
21
+ TargetRubyVersion: 3.2
22
+ Include:
23
+ - lib/*.rb
24
+ - lib/**/*.rb
25
+ - test/*.rb
data/Gemfile CHANGED
@@ -1,3 +1,2 @@
1
1
  source "https://rubygems.org"
2
2
  gemspec
3
- gem "test-cmd.rb", github: "0x1eef/test-cmd.rb", tag: "v0.4.0"
data/README.md CHANGED
@@ -1,21 +1,12 @@
1
1
  ## About
2
2
 
3
- lockf.rb is a C extension that provides a Ruby interface to
3
+ lockf.rb provides Ruby bindings for
4
4
  [lockf(3)](https://man.freebsd.org/cgi/man.cgi?query=lockf&sektion=3).
5
5
  The
6
6
  [lockf(3)](https://man.freebsd.org/cgi/man.cgi?query=lockf&sektion=3)
7
7
  function implements an advisory-mode lock that can be placed on select
8
8
  regions of a file, or on the entire contents of a file.
9
9
 
10
- [lockf(3)](https://man.freebsd.org/cgi/man.cgi?query=lockf&sektion=3)
11
- can be used to synchronize access to a file between multiple
12
- processes, or be used more generally to synchronize access to a shared
13
- resource being accessed by multiple processes at the same time. When used
14
- generally,
15
- [lockf(3)](https://man.freebsd.org/cgi/man.cgi?query=lockf&sektion=3)
16
- can provide something similar to a mutex that works across multiple
17
- processes rather than multiple threads.
18
-
19
10
  ## Examples
20
11
 
21
12
  ### LockFile
@@ -44,7 +35,7 @@ end
44
35
  sleep(3)
45
36
  lockf.release
46
37
  Process.wait(pid)
47
- lockf.file.close
38
+ lockf.close
48
39
 
49
40
  ##
50
41
  # Lock acquired by parent process (2023-02-11 16:43:15 UTC)
@@ -76,7 +67,7 @@ end
76
67
  sleep 3
77
68
  lockf.release
78
69
  Process.wait(pid)
79
- lockf.file.close
70
+ lockf.close
80
71
 
81
72
  ##
82
73
  # Lock acquired by parent process (2023-02-11 19:03:05 UTC)
@@ -131,32 +122,24 @@ file.close
131
122
  # Lock released
132
123
  ```
133
124
 
134
- ## Sources
125
+ ## Documentation
135
126
 
136
- * [Source code (GitHub)](https://github.com/0x1eef/lockf.rb#readme)
137
- * [Source code (GitLab)](https://gitlab.com/0x1eef/lockf.rb#about)
127
+ A complete API reference is available at
128
+ [0x1eef.github.io/x/lockf.rb](https://0x1eef.github.io/x/lockf.rb).
138
129
 
139
130
  ## Install
140
131
 
141
- **Git**
142
-
143
- lockf.rb is distributed as a RubyGem through its git repositories. <br>
144
- [GitHub](https://github.com/0x1eef/lockf.rb),
145
- and
146
- [GitLab](https://gitlab.com/0x1eef/lockf.rb)
147
- are available as sources.
148
-
149
- ``` ruby
150
- # Gemfile
151
- gem "lock.fb", github: "0x1eef/lockf.rb", tag: "v0.12.0"
152
- ```
153
-
154
132
  **Rubygems.org**
155
133
 
156
- lock.rb can also be installed via rubygems.org.
134
+ lockf.rb can be installed via rubygems.org.
157
135
 
158
136
  gem install lockf.rb
159
137
 
138
+ ## Sources
139
+
140
+ * [GitHub](https://github.com/0x1eef/lockf.rb#readme)
141
+ * [GitLab](https://gitlab.com/0x1eef/lockf.rb#about)
142
+
160
143
  ## License
161
144
 
162
145
  [BSD Zero Clause](https://choosealicense.com/licenses/0bsd/).
data/Rakefile.rb CHANGED
@@ -1,21 +1,23 @@
1
+ require "bundler/setup"
1
2
  require "rake/extensiontask"
2
3
  require "rake/testtask"
3
4
 
4
- namespace :linters do
5
- desc "Run the C linter"
6
- task :c do
7
- sh "uncrustify -c .uncrustify.cfg --no-backup --replace ext/lockf.rb/*.c"
5
+ namespace :clang do
6
+ desc "Run clang-format"
7
+ task :format do
8
+ sh "clang-format -style=file:.clang-format -i ext/lockf.rb/*.c"
8
9
  end
10
+ end
9
11
 
10
- desc "Run the Ruby linter"
11
- task :ruby do
12
- sh "bundle exec rubocop -A Rakefile.rb lib/**/*.rb spec/**/*.rb"
12
+ namespace :ruby do
13
+ desc "Run rubocop"
14
+ task :format do
15
+ sh "bundle exec rubocop -A"
13
16
  end
14
17
  end
15
- task lint: ["linters:c", "linters:ruby"]
18
+ task format: %w[clang:format ruby:format]
16
19
 
17
20
  Rake::ExtensionTask.new("lockf.rb")
18
-
19
21
  Rake::TestTask.new do |t|
20
22
  t.test_files = FileList["test/*_test.rb"]
21
23
  t.verbose = true
data/ext/lockf.rb/lockf.c CHANGED
@@ -1,7 +1,6 @@
1
1
  #include <ruby.h>
2
2
  #include <unistd.h>
3
3
  #include <errno.h>
4
- #include "lockf.h"
5
4
 
6
5
  static VALUE
7
6
  lockf_lock(VALUE self, VALUE fd, VALUE cmd, VALUE len)
@@ -11,26 +10,27 @@ lockf_lock(VALUE self, VALUE fd, VALUE cmd, VALUE len)
11
10
  Check_Type(fd, T_FIXNUM);
12
11
  Check_Type(cmd, T_FIXNUM);
13
12
  Check_Type(len, T_FIXNUM);
14
- errno = 0;
13
+ errno = 0;
15
14
  result = lockf(NUM2INT(fd), NUM2INT(cmd), NUM2INT(len));
16
- if (result == -1) {
17
- rb_syserr_fail(errno, "lockf");
18
- } else {
15
+ if (result == 0)
16
+ {
19
17
  return INT2NUM(result);
20
18
  }
19
+ else
20
+ {
21
+ rb_syserr_fail(errno, "lockf");
22
+ }
21
23
  }
22
24
 
23
25
  void
24
26
  Init_lockf(void)
25
27
  {
26
- VALUE cLockf, mFcntl;
28
+ VALUE cLockf;
27
29
 
28
- rb_require("fcntl");
29
30
  cLockf = rb_define_class("LockFile", rb_cObject);
30
- mFcntl = rb_const_get(rb_cObject, rb_intern("Fcntl"));
31
- rb_define_const(mFcntl, "F_LOCK", INT2NUM(F_LOCK));
32
- rb_define_const(mFcntl, "F_TLOCK", INT2NUM(F_TLOCK));
33
- rb_define_const(mFcntl, "F_ULOCK", INT2NUM(F_ULOCK));
34
- rb_define_const(mFcntl, "F_TEST", INT2NUM(F_TEST));
31
+ rb_define_const(cLockf, "F_LOCK", INT2NUM(F_LOCK));
32
+ rb_define_const(cLockf, "F_TLOCK", INT2NUM(F_TLOCK));
33
+ rb_define_const(cLockf, "F_ULOCK", INT2NUM(F_ULOCK));
34
+ rb_define_const(cLockf, "F_TEST", INT2NUM(F_TEST));
35
35
  rb_define_singleton_method(cLockf, "lockf", lockf_lock, 3);
36
36
  }
data/lib/lockf/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class LockFile
2
- VERSION = "0.12.0"
2
+ VERSION = "1.0.0"
3
3
  end
data/lib/lockf.rb CHANGED
@@ -1,12 +1,11 @@
1
1
  ##
2
2
  # The
3
- # [`LockFile`](https://0x1eef.github.io/x/lockf.rb/LockFile.html)
4
- # class provides a Ruby-oriented interface to the C function
3
+ # [LockFile](https://0x1eef.github.io/x/lockf.rb/LockFile.html)
4
+ # class provides a Ruby interface to
5
5
  # [lockf(3)](https://man.freebsd.org/cgi/man.cgi?query=lockf&sektion=3).
6
6
  class LockFile
7
7
  require "tmpdir"
8
8
  require_relative "lockf.rb.so"
9
- include Fcntl
10
9
 
11
10
  ##
12
11
  # @!method self.lockf(fd, cmd, len)
@@ -80,7 +79,8 @@ class LockFile
80
79
  end
81
80
 
82
81
  ##
83
- # Acquire a lock (blocking)
82
+ # Acquire a lock (blocking).
83
+ #
84
84
  # @raise [Errno::EBADF]
85
85
  # @raise [Errno::EDEADLK]
86
86
  # @raise [Errno::EINTR]
@@ -95,7 +95,8 @@ class LockFile
95
95
  end
96
96
 
97
97
  ##
98
- # Acquire a lock (non-blocking)
98
+ # Acquire a lock (non-blocking).
99
+ #
99
100
  # @raise [Errno::EAGAIN]
100
101
  # @raise [Errno::EBADF]
101
102
  # @raise [Errno::ENOLCK]
@@ -106,7 +107,8 @@ class LockFile
106
107
  end
107
108
 
108
109
  ##
109
- # Release a lock
110
+ # Release a lock.
111
+ #
110
112
  # @raise [Errno::EBADF]
111
113
  # @raise [Errno::ENOLCK]
112
114
  # @return [Integer]
data/lockf.rb.gemspec CHANGED
@@ -10,15 +10,12 @@ Gem::Specification.new do |gem|
10
10
  gem.files = `git ls-files`.split($/)
11
11
  gem.require_paths = ["lib"]
12
12
  gem.extensions = %w[ext/lockf.rb/extconf.rb]
13
- gem.summary = "A Ruby interface for lockf(3)"
13
+ gem.summary = "Ruby bindings for lockf(3)"
14
14
  gem.description = gem.summary
15
15
  gem.add_development_dependency "yard", "~> 0.9"
16
- gem.add_development_dependency "redcarpet", "~> 3.5"
17
- gem.add_development_dependency "standard", "= 1.12.1"
18
- gem.add_development_dependency "rubocop", "= 1.29.1"
19
- gem.add_development_dependency "test-unit", "~> 3.5.7"
20
- gem.add_development_dependency "rake-compiler", "= 1.2.0"
21
- gem.add_development_dependency "rack", "~> 3.0"
22
- gem.add_development_dependency "rackup", "~> 2.1"
23
- gem.add_development_dependency "test-cmd.rb", "~> 0.4"
16
+ gem.add_development_dependency "standard", "~> 1.12"
17
+ gem.add_development_dependency "rubocop", "~> 1.29"
18
+ gem.add_development_dependency "test-unit", "~> 3.5"
19
+ gem.add_development_dependency "rake-compiler", "~> 1.2"
20
+ gem.add_development_dependency "test-cmd.rb", "~> 0.6"
24
21
  end
@@ -11,7 +11,7 @@ end
11
11
  sleep(3)
12
12
  lockf.release
13
13
  Process.wait(pid)
14
- lockf.file.close
14
+ lockf.close
15
15
 
16
16
  ##
17
17
  # Lock acquired by parent process (2023-02-11 16:43:15 UTC)
@@ -14,7 +14,7 @@ end
14
14
  sleep 3
15
15
  lockf.release
16
16
  Process.wait(pid)
17
- lockf.file.close
17
+ lockf.close
18
18
 
19
19
  ##
20
20
  # Lock acquired by parent process (2023-02-11 19:03:05 UTC)
@@ -1,10 +1,10 @@
1
1
  require_relative "setup"
2
2
  class LockFile::Test < Test::Unit::TestCase
3
- include Timeout
4
- include FileUtils
3
+ attr_reader :file
5
4
  attr_reader :lockf
6
5
 
7
6
  def setup
7
+ @file = Tempfile.new("lockf-test").tap(&:unlink)
8
8
  @lockf = LockFile.new(file)
9
9
  end
10
10
 
@@ -13,7 +13,7 @@ class LockFile::Test < Test::Unit::TestCase
13
13
  end
14
14
 
15
15
  ##
16
- # Lock::File#lock tests
16
+ # LockFile#lock
17
17
  def test_lock
18
18
  assert_equal 0, lockf.lock
19
19
  ensure
@@ -21,19 +21,16 @@ class LockFile::Test < Test::Unit::TestCase
21
21
  end
22
22
 
23
23
  def test_lock_in_fork
24
- Process.wait fork {
25
- lockf.lock
26
- Process.kill("SIGINT", Process.ppid)
27
- sleep(1)
28
- }
29
- rescue Interrupt
30
- assert_raises(Timeout::Error) { timeout(0.5) { lockf.lock } }
24
+ pid = fork_sleep { lockf.lock }
25
+ sleep(0.1)
26
+ assert_raises(Errno::EWOULDBLOCK) { lockf.lock_nonblock }
31
27
  ensure
28
+ Process.kill("KILL", pid)
32
29
  lockf.release
33
30
  end
34
31
 
35
32
  ##
36
- # Lock::File#lock_nonblock tests
33
+ # LockFile#lock_nonblock
37
34
  def test_lock_nonblock
38
35
  assert_equal 0, lockf.lock_nonblock
39
36
  ensure
@@ -41,52 +38,41 @@ class LockFile::Test < Test::Unit::TestCase
41
38
  end
42
39
 
43
40
  def test_lock_nonblock_in_fork
44
- Process.wait fork {
45
- lockf.lock_nonblock
46
- Process.kill("SIGINT", Process.ppid)
47
- sleep(1)
48
- }
49
- rescue Interrupt
50
- assert_raises(Errno::EAGAIN) { lockf.lock_nonblock }
41
+ pid = fork_sleep { lockf.lock_nonblock }
42
+ sleep(0.1)
43
+ assert_raises(Errno::EWOULDBLOCK) { lockf.lock_nonblock }
51
44
  ensure
45
+ Process.kill("KILL", pid)
52
46
  lockf.release
53
47
  end
54
48
 
55
49
  ##
56
- # Lock::File#locked? tests
50
+ # LockFile#locked?
57
51
  def test_locked?
58
- lockf.lock
59
- Process.wait fork { lockf.locked? ? exit(0) : exit(1) }
60
- assert_equal 0, $?.exitstatus
52
+ pid = fork_sleep { lockf.lock }
53
+ sleep(0.1)
54
+ assert_equal true, lockf.locked?
61
55
  ensure
56
+ Process.kill("KILL", pid)
62
57
  lockf.release
63
58
  end
64
59
 
65
60
  ##
66
- # LockFile#initialize
67
- def test_initialize_with_str_path
68
- path = File.join(Dir.getwd, "test", "tmp.txt")
69
- touch(path)
70
- lockf = LockFile.new(path)
61
+ # LockFile.temporary_file
62
+ def test_temporary_file
63
+ lockf = LockFile.temporary_file
71
64
  assert_equal 0, lockf.lock
72
65
  assert_equal 0, lockf.release
73
66
  ensure
74
67
  lockf.file.close
75
- rm(path)
76
- end
77
-
78
- ##
79
- # LockFile.from_temporary_file
80
- def test_from_temporary_file
81
- lockf = LockFile.from_temporary_file
82
- assert_equal 0, lockf.lock
83
- assert_equal 0, lockf.release
84
- lockf.file.close
85
68
  end
86
69
 
87
70
  private
88
71
 
89
- def file
90
- @file ||= Tempfile.new("lockf-test").tap(&:unlink)
72
+ def fork_sleep
73
+ fork do
74
+ yield
75
+ sleep
76
+ end
91
77
  end
92
78
  end
data/test/readme_test.rb CHANGED
@@ -4,8 +4,6 @@ require_relative "setup"
4
4
  require "test/cmd"
5
5
 
6
6
  class LockFile::ReadmeTest < Test::Unit::TestCase
7
- include Test::Cmd
8
-
9
7
  def test_lockfile_blocking_variant
10
8
  r = 'Lock acquired by parent process \(.+\)\s*' \
11
9
  'Child process waiting on lock \(.+\)\s*' \
data/test/setup.rb CHANGED
@@ -1,6 +1,4 @@
1
1
  require "bundler/setup"
2
2
  require "test/unit"
3
3
  require "lockf"
4
- require "timeout"
5
- require "fileutils"
6
4
  require "tempfile"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lockf.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - '0x1eef'
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-06 00:00:00.000000000 Z
11
+ date: 2024-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: yard
@@ -25,118 +25,76 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.9'
27
27
  - !ruby/object:Gem::Dependency
28
- name: redcarpet
28
+ name: standard
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '3.5'
33
+ version: '1.12'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '3.5'
41
- - !ruby/object:Gem::Dependency
42
- name: standard
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - '='
46
- - !ruby/object:Gem::Version
47
- version: 1.12.1
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '='
53
- - !ruby/object:Gem::Version
54
- version: 1.12.1
40
+ version: '1.12'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: rubocop
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - '='
60
- - !ruby/object:Gem::Version
61
- version: 1.29.1
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - '='
67
- - !ruby/object:Gem::Version
68
- version: 1.29.1
69
- - !ruby/object:Gem::Dependency
70
- name: test-unit
71
43
  requirement: !ruby/object:Gem::Requirement
72
44
  requirements:
73
45
  - - "~>"
74
46
  - !ruby/object:Gem::Version
75
- version: 3.5.7
47
+ version: '1.29'
76
48
  type: :development
77
49
  prerelease: false
78
50
  version_requirements: !ruby/object:Gem::Requirement
79
51
  requirements:
80
52
  - - "~>"
81
53
  - !ruby/object:Gem::Version
82
- version: 3.5.7
83
- - !ruby/object:Gem::Dependency
84
- name: rake-compiler
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - '='
88
- - !ruby/object:Gem::Version
89
- version: 1.2.0
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - '='
95
- - !ruby/object:Gem::Version
96
- version: 1.2.0
54
+ version: '1.29'
97
55
  - !ruby/object:Gem::Dependency
98
- name: rack
56
+ name: test-unit
99
57
  requirement: !ruby/object:Gem::Requirement
100
58
  requirements:
101
59
  - - "~>"
102
60
  - !ruby/object:Gem::Version
103
- version: '3.0'
61
+ version: '3.5'
104
62
  type: :development
105
63
  prerelease: false
106
64
  version_requirements: !ruby/object:Gem::Requirement
107
65
  requirements:
108
66
  - - "~>"
109
67
  - !ruby/object:Gem::Version
110
- version: '3.0'
68
+ version: '3.5'
111
69
  - !ruby/object:Gem::Dependency
112
- name: rackup
70
+ name: rake-compiler
113
71
  requirement: !ruby/object:Gem::Requirement
114
72
  requirements:
115
73
  - - "~>"
116
74
  - !ruby/object:Gem::Version
117
- version: '2.1'
75
+ version: '1.2'
118
76
  type: :development
119
77
  prerelease: false
120
78
  version_requirements: !ruby/object:Gem::Requirement
121
79
  requirements:
122
80
  - - "~>"
123
81
  - !ruby/object:Gem::Version
124
- version: '2.1'
82
+ version: '1.2'
125
83
  - !ruby/object:Gem::Dependency
126
84
  name: test-cmd.rb
127
85
  requirement: !ruby/object:Gem::Requirement
128
86
  requirements:
129
87
  - - "~>"
130
88
  - !ruby/object:Gem::Version
131
- version: '0.4'
89
+ version: '0.6'
132
90
  type: :development
133
91
  prerelease: false
134
92
  version_requirements: !ruby/object:Gem::Requirement
135
93
  requirements:
136
94
  - - "~>"
137
95
  - !ruby/object:Gem::Version
138
- version: '0.4'
139
- description: A Ruby interface for lockf(3)
96
+ version: '0.6'
97
+ description: Ruby bindings for lockf(3)
140
98
  email:
141
99
  - 0x1eef@protonmail.com
142
100
  executables: []
@@ -145,6 +103,7 @@ extensions:
145
103
  extra_rdoc_files: []
146
104
  files:
147
105
  - ".bundle/config"
106
+ - ".clang-format"
148
107
  - ".github/workflows/tests.yml"
149
108
  - ".gitignore"
150
109
  - ".projectile"
@@ -157,7 +116,6 @@ files:
157
116
  - Rakefile.rb
158
117
  - ext/lockf.rb/extconf.rb
159
118
  - ext/lockf.rb/lockf.c
160
- - ext/lockf.rb/lockf.h
161
119
  - lib/lockf.rb
162
120
  - lib/lockf/version.rb
163
121
  - lockf.rb.gemspec
@@ -190,5 +148,5 @@ requirements: []
190
148
  rubygems_version: 3.5.3
191
149
  signing_key:
192
150
  specification_version: 4
193
- summary: A Ruby interface for lockf(3)
151
+ summary: Ruby bindings for lockf(3)
194
152
  test_files: []
data/ext/lockf.rb/lockf.h DELETED
@@ -1 +0,0 @@
1
- void Init_lockf(void);