tilt-fs 0.0.2
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.
- checksums.yaml +7 -0
- data/.gitignore +15 -0
- data/.travis.yml +16 -0
- data/Gemfile +8 -0
- data/LICENSE.txt +22 -0
- data/README.md +36 -0
- data/Rakefile +8 -0
- data/bin/tiltfs +12 -0
- data/lib/tilt/fs/file_system/constants.rb +7 -0
- data/lib/tilt/fs/file_system/core.rb +57 -0
- data/lib/tilt/fs/file_system/dir.rb +84 -0
- data/lib/tilt/fs/file_system/file.rb +78 -0
- data/lib/tilt/fs/file_system.rb +16 -0
- data/lib/tilt/fs/version.rb +9 -0
- data/lib/tilt/fs.rb +10 -0
- data/test/run_test.rb +8 -0
- data/test/test_dir.rb +23 -0
- data/test/test_file.rb +48 -0
- data/tilt-fs.gemspec +29 -0
- metadata +164 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 02ce198c6409d6708884ac010f4f0f365530ac65
|
4
|
+
data.tar.gz: 32ddf32e300c64f8237ad7261d1e70c388823ae7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 91eff9cdcd9010e0e014f19a9a464bb3802d8d2c6e5613507e3c8a73f350c3ad939c58d247286de7b17d93d354c0beafde1d55ed3f4e5853f1800a6b9d3bc770
|
7
|
+
data.tar.gz: 96d674b8f910fd9e17b1fbe10c7e97db7c34f93cd2c41648cd70897a0d1e68c48d55f339f63b024cc71d28da13b956c4475a8e1c005c12316cecfb1fb948e6a4
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 Hiroyuki Sano
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
# TiltFS
|
2
|
+
|
3
|
+
The user space file system based on [Tilt](https://github.com/rtomayko/tilt).
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
$ gem install tilt-fs
|
8
|
+
|
9
|
+
## Usage
|
10
|
+
|
11
|
+
### 1. Run the filesystem
|
12
|
+
|
13
|
+
$ cd {some_dir}
|
14
|
+
$ mkdir _template
|
15
|
+
$ mkdir mnt
|
16
|
+
$ echo 'Hello, <%= name %>' > _template/hello.txt.erb
|
17
|
+
$ tiltfs mnt/ _template/
|
18
|
+
-> Mount "_template" into "mnt"
|
19
|
+
|
20
|
+
### 2. Access to the files
|
21
|
+
|
22
|
+
$ cd {some_dir}
|
23
|
+
$ ruby -r yaml -e "puts({name: "world"}.to_yaml)" > .data.yaml
|
24
|
+
$ cat mnt/hello.txt
|
25
|
+
Hello, world
|
26
|
+
$ ruby -r yaml -e "puts({name: "NEW WORLD"}.to_yaml)" > .data.yaml
|
27
|
+
$ cat mnt/hello.txt
|
28
|
+
Hello, NEW WORLD
|
29
|
+
|
30
|
+
## Contributing
|
31
|
+
|
32
|
+
1. Fork it ( https://github.com/sh19910711/ruby-tilt-fs/fork )
|
33
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
34
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
35
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
36
|
+
5. Create a new Pull Request
|
data/Rakefile
ADDED
data/bin/tiltfs
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
module Tilt::Fs::FileSystem
|
2
|
+
|
3
|
+
class Core
|
4
|
+
|
5
|
+
attr_reader :logger
|
6
|
+
attr_reader :root_dir
|
7
|
+
attr_reader :mount_point
|
8
|
+
attr_reader :src_path
|
9
|
+
attr_reader :template_data_file
|
10
|
+
|
11
|
+
def initialize(new_mount_point, new_src_path = "./")
|
12
|
+
@logger = FS_LOGGER
|
13
|
+
@src_path = new_src_path
|
14
|
+
@template_data_file = ::File.join(::Dir.pwd, FS_DEFAULT_DATA_FILE)
|
15
|
+
@root_dir = Dir.new(src_path, template_data_file)
|
16
|
+
@mount_point = new_mount_point
|
17
|
+
|
18
|
+
logger.debug "core#new(): created"
|
19
|
+
logger.info "Mounted into #{mount_point} from #{src_path}"
|
20
|
+
logger.info "Template data path = #{template_data_file}"
|
21
|
+
end
|
22
|
+
|
23
|
+
def init(ctx, rfuse_info)
|
24
|
+
logger.info "Tilt::Fs started."
|
25
|
+
end
|
26
|
+
|
27
|
+
def readdir(ctx, path, filter, offset, ffi)
|
28
|
+
logger.info "READ_DIR: #{::File.join mount_point, path}"
|
29
|
+
logger.debug "Core#readdir(): ctx = #{ctx}, path = #{path}"
|
30
|
+
dir = root_dir.find(path)
|
31
|
+
|
32
|
+
raise ::Errno::ENOTDIR.new(path) unless dir.is_dir?
|
33
|
+
|
34
|
+
token = ::Pathname.new(path).basename.to_s
|
35
|
+
dir.search(token).each do |entry|
|
36
|
+
filter.push entry.name, entry.attr, 0
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def open(ctx, path, ffi)
|
41
|
+
logger.debug "Core#open(): path = #{path}"
|
42
|
+
end
|
43
|
+
|
44
|
+
def read(ctx, path, size, offset, ffi)
|
45
|
+
logger.info "READ_FILE: #{::File.join mount_point, path}"
|
46
|
+
logger.debug "Core#read(): path = #{path}, size = #{size}"
|
47
|
+
root_dir.find(path).content
|
48
|
+
end
|
49
|
+
|
50
|
+
def getattr(ctx, path)
|
51
|
+
logger.debug "Core#getattr(): path = #{path}"
|
52
|
+
root_dir.find(path).attr
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
module Tilt::Fs::FileSystem
|
2
|
+
|
3
|
+
class Dir
|
4
|
+
|
5
|
+
attr_reader :name
|
6
|
+
attr_reader :logger
|
7
|
+
attr_reader :real_path
|
8
|
+
attr_reader :data_path
|
9
|
+
attr_reader :flag_no_data
|
10
|
+
|
11
|
+
def initialize(new_real_path, new_data_path)
|
12
|
+
@logger = FS_LOGGER
|
13
|
+
@real_path = new_real_path
|
14
|
+
@name = ::Pathname.new(real_path).basename.to_s
|
15
|
+
@data_path = new_data_path
|
16
|
+
logger.debug "dir#new(): created, real_path = #{real_path}"
|
17
|
+
end
|
18
|
+
|
19
|
+
def is_dir?
|
20
|
+
true
|
21
|
+
end
|
22
|
+
|
23
|
+
def is_file?
|
24
|
+
false
|
25
|
+
end
|
26
|
+
|
27
|
+
def stat
|
28
|
+
{
|
29
|
+
:uid => ::Process.uid,
|
30
|
+
:gid => ::Process.gid,
|
31
|
+
:atime => ::Time.now,
|
32
|
+
:mtime => ::Time.now,
|
33
|
+
:size => 0,
|
34
|
+
}
|
35
|
+
end
|
36
|
+
|
37
|
+
def attr
|
38
|
+
::RFuse::Stat.directory FS_DEFAULT_DIR_MODE, stat
|
39
|
+
end
|
40
|
+
|
41
|
+
def create_file_or_dir(path)
|
42
|
+
logger.debug "dir#create_file_or_dir(): path = #{path}"
|
43
|
+
if ::FileTest.directory?(path)
|
44
|
+
Dir.new path, data_path
|
45
|
+
else
|
46
|
+
File.new path, data_path
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def glob_and_create(glob_path)
|
51
|
+
::Dir.glob(glob_path).map do |found_path|
|
52
|
+
create_file_or_dir found_path
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def search(token)
|
57
|
+
logger.debug "dir#search(): token = #{token}"
|
58
|
+
glob_path = ::File.join(real_path, "#{token}*")
|
59
|
+
logger.debug "dir#search(): glob_path = #{glob_path}"
|
60
|
+
glob_and_create glob_path
|
61
|
+
end
|
62
|
+
|
63
|
+
def find(path)
|
64
|
+
logger.debug "dir#find(): path = #{path}"
|
65
|
+
lookup_path = ::File.join(real_path, path)
|
66
|
+
if ::FileTest.file?(lookup_path)
|
67
|
+
create_file_or_dir lookup_path
|
68
|
+
elsif ::FileTest.directory?(lookup_path)
|
69
|
+
create_file_or_dir lookup_path
|
70
|
+
else
|
71
|
+
logger.debug "dir#find(): find template for #{path}"
|
72
|
+
templates = ::Dir.glob(::File.join real_path, "#{path}*")
|
73
|
+
if templates.length === 1
|
74
|
+
logger.debug "dir#find(): found in #{templates.first}"
|
75
|
+
create_file_or_dir templates.first
|
76
|
+
else
|
77
|
+
raise ::Errno::ENOENT.new(path)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
module Tilt::Fs::FileSystem
|
2
|
+
|
3
|
+
class File
|
4
|
+
|
5
|
+
attr_reader :logger
|
6
|
+
attr_reader :real_path
|
7
|
+
attr_reader :data_path
|
8
|
+
attr_reader :content
|
9
|
+
|
10
|
+
def initialize(new_real_path, new_data_path = nil)
|
11
|
+
@real_path = new_real_path
|
12
|
+
@logger = FS_LOGGER
|
13
|
+
@data_path = new_data_path
|
14
|
+
@content = render_content
|
15
|
+
|
16
|
+
logger.debug "file#new(): created, real_path = #{real_path}, data_path = #{data_path}"
|
17
|
+
end
|
18
|
+
|
19
|
+
def render_content
|
20
|
+
if ::Tilt.templates_for(real_path).empty?
|
21
|
+
::File.read real_path
|
22
|
+
else
|
23
|
+
template_data = load_template_data
|
24
|
+
template = ::Tilt.new(real_path, nil)
|
25
|
+
begin
|
26
|
+
template.render self, template_data
|
27
|
+
rescue => e
|
28
|
+
logger.warn "file#render_content(): #{e}"
|
29
|
+
raise "error on file#render_content()"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def load_template_data
|
35
|
+
if data_path.nil? || (not ::FileTest.file? data_path)
|
36
|
+
logger.debug "file#load_template_data(): no data"
|
37
|
+
{}
|
38
|
+
else
|
39
|
+
logger.debug "file#load_template_data(): data_path = #{data_path}"
|
40
|
+
::YAML.load_file data_path
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
# e.g. "foo.txt.erb" => "foo.txt"
|
45
|
+
def name
|
46
|
+
res = ::Pathname.new(real_path).basename.to_s
|
47
|
+
if /\.erb$/ === res
|
48
|
+
res.gsub /\.erb$/, ""
|
49
|
+
else
|
50
|
+
res
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def is_dir?
|
55
|
+
false
|
56
|
+
end
|
57
|
+
|
58
|
+
def is_file?
|
59
|
+
true
|
60
|
+
end
|
61
|
+
|
62
|
+
def stat
|
63
|
+
{
|
64
|
+
:uid => ::Process.uid,
|
65
|
+
:gid => ::Process.gid,
|
66
|
+
:atime => ::Time.now,
|
67
|
+
:mtime => ::Time.now,
|
68
|
+
:size => content.length,
|
69
|
+
}
|
70
|
+
end
|
71
|
+
|
72
|
+
def attr
|
73
|
+
::RFuse::Stat.file FS_DEFAULT_FILE_MODE, stat
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Tilt::Fs::FileSystem
|
2
|
+
|
3
|
+
require "tilt"
|
4
|
+
require "yaml"
|
5
|
+
|
6
|
+
require "tilt/fs/file_system/core"
|
7
|
+
require "tilt/fs/file_system/dir"
|
8
|
+
require "tilt/fs/file_system/constants"
|
9
|
+
require "tilt/fs/file_system/file"
|
10
|
+
|
11
|
+
require "logger"
|
12
|
+
FS_LOGGER = ::Logger.new(STDOUT)
|
13
|
+
FS_LOGGER.level = ::Logger::Severity::INFO
|
14
|
+
FS_LOGGER.level = ::Logger::Severity::DEBUG if ENV["TILTFS_DEBUG"] === "true"
|
15
|
+
|
16
|
+
end
|
data/lib/tilt/fs.rb
ADDED
data/test/run_test.rb
ADDED
data/test/test_dir.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
class TestDir < Test::Unit::TestCase
|
2
|
+
|
3
|
+
setup do
|
4
|
+
FakeFS.activate!
|
5
|
+
end
|
6
|
+
|
7
|
+
teardown do
|
8
|
+
FakeFS.deactivate!
|
9
|
+
FakeFS::FileSystem.clear
|
10
|
+
end
|
11
|
+
|
12
|
+
setup do
|
13
|
+
Tilt::Fs::FileSystem::FS_LOGGER.level = Logger::Severity::UNKNOWN
|
14
|
+
end
|
15
|
+
|
16
|
+
test "dir#search()" do
|
17
|
+
FileUtils.mkdir_p "/path/to"
|
18
|
+
FileUtils.touch "/path/to/hello"
|
19
|
+
dir = Tilt::Fs::FileSystem::Dir.new("/path/to")
|
20
|
+
assert_equal 1, dir.search("/hello").length
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
data/test/test_file.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
class TestFile < Test::Unit::TestCase
|
2
|
+
|
3
|
+
setup do
|
4
|
+
FakeFS.activate!
|
5
|
+
end
|
6
|
+
|
7
|
+
teardown do
|
8
|
+
FakeFS.deactivate!
|
9
|
+
FakeFS::FileSystem.clear
|
10
|
+
end
|
11
|
+
|
12
|
+
setup do
|
13
|
+
Tilt::Fs::FileSystem::FS_LOGGER.level = Logger::Severity::UNKNOWN
|
14
|
+
end
|
15
|
+
|
16
|
+
test "file#content" do
|
17
|
+
FileUtils.mkdir_p "/path/to"
|
18
|
+
FileUtils.touch "/path/to/hello"
|
19
|
+
File.write "/path/to/hello", "hello, world"
|
20
|
+
file = Tilt::Fs::FileSystem::File.new("/path/to/hello")
|
21
|
+
assert_equal "hello, world", file.content
|
22
|
+
end
|
23
|
+
|
24
|
+
test "file#is_file?()" do
|
25
|
+
FileUtils.mkdir_p "/path/to"
|
26
|
+
FileUtils.touch "/path/to/hello"
|
27
|
+
File.write "/path/to/hello", "hello, world"
|
28
|
+
file = Tilt::Fs::FileSystem::File.new("/path/to/hello")
|
29
|
+
assert_equal true, file.is_file?
|
30
|
+
end
|
31
|
+
|
32
|
+
test "file#is_dir?()" do
|
33
|
+
FileUtils.mkdir_p "/path/to"
|
34
|
+
FileUtils.touch "/path/to/hello"
|
35
|
+
File.write "/path/to/hello", "hello, world"
|
36
|
+
file = Tilt::Fs::FileSystem::File.new("/path/to/hello")
|
37
|
+
assert_equal false, file.is_dir?
|
38
|
+
end
|
39
|
+
|
40
|
+
test "file#name" do
|
41
|
+
FileUtils.mkdir_p "/path/to"
|
42
|
+
FileUtils.touch "/path/to/hello.txt.erb"
|
43
|
+
File.write "/path/to/hello.txt.erb", "hello"
|
44
|
+
file = Tilt::Fs::FileSystem::File.new("/path/to/hello.txt.erb")
|
45
|
+
assert_equal "hello.txt", file.name
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
data/tilt-fs.gemspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'tilt/fs/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "tilt-fs"
|
8
|
+
spec.version = Tilt::Fs::VERSION
|
9
|
+
spec.authors = ["Hiroyuki Sano"]
|
10
|
+
spec.email = ["sh19910711@gmail.com"]
|
11
|
+
spec.summary = %q{The user space file system based on Tilt.}
|
12
|
+
spec.description = %q{The user space file system based on Tilt.}
|
13
|
+
spec.homepage = "https://github.com/sh19910711/ruby-tilt-fs"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_dependency "tilt", "~> 2.0"
|
22
|
+
spec.add_dependency "rfuse", "~> 1.1.0.RC0"
|
23
|
+
|
24
|
+
spec.add_development_dependency "bundler", "~> 1.7.0"
|
25
|
+
spec.add_development_dependency "rake", "~> 10.4.0"
|
26
|
+
spec.add_development_dependency "test-unit", "~> 3.0.0"
|
27
|
+
spec.add_development_dependency "fakefs", "~> 0.6.0"
|
28
|
+
spec.add_development_dependency "pry-byebug", "~> 2.0.0"
|
29
|
+
end
|
metadata
ADDED
@@ -0,0 +1,164 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: tilt-fs
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Hiroyuki Sano
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-12-21 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: tilt
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rfuse
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.1.0.RC0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.1.0.RC0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.7.0
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.7.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 10.4.0
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 10.4.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: test-unit
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 3.0.0
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 3.0.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: fakefs
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.6.0
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.6.0
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: pry-byebug
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 2.0.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 2.0.0
|
111
|
+
description: The user space file system based on Tilt.
|
112
|
+
email:
|
113
|
+
- sh19910711@gmail.com
|
114
|
+
executables:
|
115
|
+
- tiltfs
|
116
|
+
extensions: []
|
117
|
+
extra_rdoc_files: []
|
118
|
+
files:
|
119
|
+
- ".gitignore"
|
120
|
+
- ".travis.yml"
|
121
|
+
- Gemfile
|
122
|
+
- LICENSE.txt
|
123
|
+
- README.md
|
124
|
+
- Rakefile
|
125
|
+
- bin/tiltfs
|
126
|
+
- lib/tilt/fs.rb
|
127
|
+
- lib/tilt/fs/file_system.rb
|
128
|
+
- lib/tilt/fs/file_system/constants.rb
|
129
|
+
- lib/tilt/fs/file_system/core.rb
|
130
|
+
- lib/tilt/fs/file_system/dir.rb
|
131
|
+
- lib/tilt/fs/file_system/file.rb
|
132
|
+
- lib/tilt/fs/version.rb
|
133
|
+
- test/run_test.rb
|
134
|
+
- test/test_dir.rb
|
135
|
+
- test/test_file.rb
|
136
|
+
- tilt-fs.gemspec
|
137
|
+
homepage: https://github.com/sh19910711/ruby-tilt-fs
|
138
|
+
licenses:
|
139
|
+
- MIT
|
140
|
+
metadata: {}
|
141
|
+
post_install_message:
|
142
|
+
rdoc_options: []
|
143
|
+
require_paths:
|
144
|
+
- lib
|
145
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
146
|
+
requirements:
|
147
|
+
- - ">="
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
150
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
|
+
requirements:
|
152
|
+
- - ">="
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: '0'
|
155
|
+
requirements: []
|
156
|
+
rubyforge_project:
|
157
|
+
rubygems_version: 2.4.5
|
158
|
+
signing_key:
|
159
|
+
specification_version: 4
|
160
|
+
summary: The user space file system based on Tilt.
|
161
|
+
test_files:
|
162
|
+
- test/run_test.rb
|
163
|
+
- test/test_dir.rb
|
164
|
+
- test/test_file.rb
|