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 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
@@ -0,0 +1,15 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
15
+ /.idea/
data/.travis.yml ADDED
@@ -0,0 +1,16 @@
1
+ language: ruby
2
+
3
+ rvm:
4
+ - "2.1"
5
+ - "2.0"
6
+ - "1.9"
7
+
8
+ bundler_args: "--jobs 4"
9
+
10
+ sudo: false
11
+
12
+ script:
13
+ - bundle exec rake test
14
+
15
+ cache:
16
+ bundler: true
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in tilt-fs.gemspec
4
+ gemspec
5
+
6
+ group :development do
7
+ gem "fakefs", :require => "fakefs/safe"
8
+ end
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
@@ -0,0 +1,8 @@
1
+ require "bundler/setup"
2
+ require "bundler/gem_tasks"
3
+
4
+ task :default => :test
5
+
6
+ task :test do
7
+ ruby("test/run_test.rb")
8
+ end
data/bin/tiltfs ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "rfuse"
4
+ require "tilt/fs"
5
+
6
+ args = ARGV.clone
7
+ src_path = args.pop
8
+
9
+ RFuse.main(args) do
10
+ mount_point = ARGV.first
11
+ fs = Tilt::Fs::FileSystem::Core.new(mount_point, src_path)
12
+ end
@@ -0,0 +1,7 @@
1
+ module Tilt::Fs::FileSystem
2
+
3
+ FS_DEFAULT_DIR_MODE = 0500
4
+ FS_DEFAULT_FILE_MODE = 0400
5
+ FS_DEFAULT_DATA_FILE = ".data.yaml"
6
+
7
+ end
@@ -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
@@ -0,0 +1,9 @@
1
+ module Tilt
2
+
3
+ module Fs
4
+
5
+ VERSION = "0.0.2"
6
+
7
+ end
8
+
9
+ end
data/lib/tilt/fs.rb ADDED
@@ -0,0 +1,10 @@
1
+ module Tilt
2
+
3
+ module Fs
4
+
5
+ require "tilt/fs/version"
6
+ require "tilt/fs/file_system"
7
+
8
+ end
9
+
10
+ end
data/test/run_test.rb ADDED
@@ -0,0 +1,8 @@
1
+ require "bundler/setup"
2
+ Bundler.require :development
3
+ require "tilt/fs"
4
+
5
+ base_dir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
6
+ test_dir = File.join(base_dir, "test")
7
+
8
+ exit Test::Unit::AutoRunner.run(true, test_dir)
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