ffi-libfuse 0.0.1.rctest12 → 0.1.0.rc20220550

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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +3 -1
  3. data/CHANGES.md +14 -0
  4. data/LICENSE +21 -0
  5. data/README.md +127 -44
  6. data/lib/ffi/accessors.rb +6 -6
  7. data/lib/ffi/boolean_int.rb +27 -0
  8. data/lib/ffi/devt.rb +23 -0
  9. data/lib/ffi/encoding.rb +38 -0
  10. data/lib/ffi/gnu_extensions.rb +1 -1
  11. data/lib/ffi/libfuse/ackbar.rb +3 -3
  12. data/lib/ffi/libfuse/adapter/context.rb +12 -10
  13. data/lib/ffi/libfuse/adapter/fuse2_compat.rb +52 -51
  14. data/lib/ffi/libfuse/adapter/fuse3_support.rb +0 -1
  15. data/lib/ffi/libfuse/adapter/ruby.rb +499 -148
  16. data/lib/ffi/libfuse/adapter/safe.rb +1 -1
  17. data/lib/ffi/libfuse/adapter.rb +1 -2
  18. data/lib/ffi/libfuse/callbacks.rb +1 -1
  19. data/lib/ffi/libfuse/filesystem/accounting.rb +116 -0
  20. data/lib/ffi/libfuse/filesystem/mapped_dir.rb +74 -0
  21. data/lib/ffi/libfuse/filesystem/mapped_files.rb +141 -0
  22. data/lib/ffi/libfuse/filesystem/pass_through_dir.rb +55 -0
  23. data/lib/ffi/libfuse/filesystem/pass_through_file.rb +45 -0
  24. data/lib/ffi/libfuse/filesystem/utils.rb +102 -0
  25. data/lib/ffi/libfuse/filesystem/virtual_dir.rb +306 -0
  26. data/lib/ffi/libfuse/filesystem/virtual_file.rb +94 -0
  27. data/lib/ffi/libfuse/filesystem/virtual_fs.rb +188 -0
  28. data/lib/ffi/libfuse/filesystem/virtual_node.rb +101 -0
  29. data/lib/ffi/libfuse/filesystem.rb +25 -0
  30. data/lib/ffi/libfuse/fuse2.rb +21 -21
  31. data/lib/ffi/libfuse/fuse3.rb +12 -12
  32. data/lib/ffi/libfuse/fuse_args.rb +69 -34
  33. data/lib/ffi/libfuse/fuse_buffer.rb +128 -26
  34. data/lib/ffi/libfuse/fuse_callbacks.rb +1 -5
  35. data/lib/ffi/libfuse/fuse_common.rb +55 -61
  36. data/lib/ffi/libfuse/fuse_config.rb +134 -143
  37. data/lib/ffi/libfuse/fuse_conn_info.rb +310 -134
  38. data/lib/ffi/libfuse/fuse_context.rb +45 -3
  39. data/lib/ffi/libfuse/fuse_operations.rb +43 -19
  40. data/lib/ffi/libfuse/fuse_version.rb +10 -6
  41. data/lib/ffi/libfuse/main.rb +80 -37
  42. data/lib/ffi/libfuse/version.rb +1 -1
  43. data/lib/ffi/libfuse.rb +13 -4
  44. data/lib/ffi/ruby_object.rb +1 -1
  45. data/lib/ffi/stat/constants.rb +9 -0
  46. data/lib/ffi/stat/native.rb +36 -6
  47. data/lib/ffi/stat/time_spec.rb +26 -10
  48. data/lib/ffi/stat.rb +111 -22
  49. data/lib/ffi/stat_vfs.rb +59 -1
  50. data/lib/ffi/struct_wrapper.rb +22 -1
  51. data/sample/hello_fs.rb +54 -0
  52. data/sample/memory_fs.rb +5 -181
  53. data/sample/no_fs.rb +20 -21
  54. data/sample/pass_through_fs.rb +30 -0
  55. metadata +77 -4
  56. data/lib/ffi/libfuse/adapter/thread_local_context.rb +0 -36
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi-libfuse
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.rctest12
4
+ version: 0.1.0.rc20220550
5
5
  platform: ruby
6
6
  authors:
7
7
  - Grant Gardner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-16 00:00:00.000000000 Z
11
+ date: 2022-05-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -24,6 +24,62 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler-audit
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest-reporters
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
27
83
  - !ruby/object:Gem::Dependency
28
84
  name: rubocop
29
85
  requirement: !ruby/object:Gem::Requirement
@@ -74,9 +130,13 @@ extensions: []
74
130
  extra_rdoc_files: []
75
131
  files:
76
132
  - ".yardopts"
133
+ - CHANGES.md
134
+ - LICENSE
77
135
  - README.md
78
136
  - lib/ffi/accessors.rb
137
+ - lib/ffi/boolean_int.rb
79
138
  - lib/ffi/devt.rb
139
+ - lib/ffi/encoding.rb
80
140
  - lib/ffi/flock.rb
81
141
  - lib/ffi/gnu_extensions.rb
82
142
  - lib/ffi/libfuse.rb
@@ -90,8 +150,18 @@ files:
90
150
  - lib/ffi/libfuse/adapter/pathname.rb
91
151
  - lib/ffi/libfuse/adapter/ruby.rb
92
152
  - lib/ffi/libfuse/adapter/safe.rb
93
- - lib/ffi/libfuse/adapter/thread_local_context.rb
94
153
  - lib/ffi/libfuse/callbacks.rb
154
+ - lib/ffi/libfuse/filesystem.rb
155
+ - lib/ffi/libfuse/filesystem/accounting.rb
156
+ - lib/ffi/libfuse/filesystem/mapped_dir.rb
157
+ - lib/ffi/libfuse/filesystem/mapped_files.rb
158
+ - lib/ffi/libfuse/filesystem/pass_through_dir.rb
159
+ - lib/ffi/libfuse/filesystem/pass_through_file.rb
160
+ - lib/ffi/libfuse/filesystem/utils.rb
161
+ - lib/ffi/libfuse/filesystem/virtual_dir.rb
162
+ - lib/ffi/libfuse/filesystem/virtual_file.rb
163
+ - lib/ffi/libfuse/filesystem/virtual_fs.rb
164
+ - lib/ffi/libfuse/filesystem/virtual_node.rb
95
165
  - lib/ffi/libfuse/fuse2.rb
96
166
  - lib/ffi/libfuse/fuse3.rb
97
167
  - lib/ffi/libfuse/fuse_args.rb
@@ -122,13 +192,16 @@ files:
122
192
  - lib/ffi/stat_vfs.rb
123
193
  - lib/ffi/struct_array.rb
124
194
  - lib/ffi/struct_wrapper.rb
195
+ - sample/hello_fs.rb
125
196
  - sample/memory_fs.rb
126
197
  - sample/no_fs.rb
198
+ - sample/pass_through_fs.rb
127
199
  homepage:
128
200
  licenses:
129
201
  - MIT
130
202
  metadata:
131
203
  source_code_uri: http://github.com/lwoggardner/ffi-libfuse
204
+ rubygems_mfa_required: 'true'
132
205
  post_install_message:
133
206
  rdoc_options: []
134
207
  require_paths:
@@ -137,7 +210,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
137
210
  requirements:
138
211
  - - ">="
139
212
  - !ruby/object:Gem::Version
140
- version: 2.6.0
213
+ version: 2.7.0
141
214
  required_rubygems_version: !ruby/object:Gem::Requirement
142
215
  requirements:
143
216
  - - ">"
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../fuse_context'
4
-
5
- module FFI
6
- module Libfuse
7
- module Adapter
8
- # Injects a wrapper via #{FuseCallbacks#fuse_wrappers} make the current {FuseContext} object available to
9
- # callbacks (except :destroy) via thread local variable :fuse_context
10
- module ThreadLocalContext
11
- # @!visibility private
12
- def fuse_wrappers(*wrappers)
13
- wrappers.unshift(
14
- {
15
- wrapper: proc { |_fm, *args, **_, &b| self.class.thread_local_context(*args, &b) },
16
- excludes: %i[destroy]
17
- }
18
- )
19
- return wrappers unless defined?(super)
20
-
21
- super(*wrappers)
22
- end
23
-
24
- module_function
25
-
26
- # Stores {FuseContext} in thread local variable :fuse_context before yielding
27
- def thread_local_context(*args)
28
- Thread.current[:fuse_context] = FuseContext.get
29
- yield(*args)
30
- ensure
31
- Thread.current[:fuse_context] = nil
32
- end
33
- end
34
- end
35
- end
36
- end