rom-files 0.2.0
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/.editorconfig +9 -0
- data/.gitignore +11 -0
- data/.rspec +3 -0
- data/.rubocop.yml +112 -0
- data/.rubocop_todo.yml +7 -0
- data/.ruby-version +1 -0
- data/.simplecov +6 -0
- data/.travis.yml +24 -0
- data/.yardopts +6 -0
- data/CHANGELOG.md +10 -0
- data/Gemfile +25 -0
- data/Guardfile +48 -0
- data/LICENSE.md +21 -0
- data/README.md +44 -0
- data/Rakefile +37 -0
- data/Roadmap.taskpaper +44 -0
- data/bin/_guard-core +21 -0
- data/bin/console +7 -0
- data/bin/guard +21 -0
- data/bin/rake +21 -0
- data/bin/rspec +21 -0
- data/bin/yard +21 -0
- data/bin/yardoc +21 -0
- data/bin/yri +21 -0
- data/lib/dry/types/pathname.rb +25 -0
- data/lib/pathname/extensions.rb +32 -0
- data/lib/pathname/extensions/constants.rb +12 -0
- data/lib/pathname/extensions/explode.rb +27 -0
- data/lib/pathname/extensions/ext.rb +28 -0
- data/lib/pathname/extensions/partial.rb +30 -0
- data/lib/pathname/extensions/pathmap.rb +128 -0
- data/lib/rom-files.rb +3 -0
- data/lib/rom/files.rb +28 -0
- data/lib/rom/files/associations.rb +6 -0
- data/lib/rom/files/associations/many_to_many.rb +12 -0
- data/lib/rom/files/associations/many_to_one.rb +12 -0
- data/lib/rom/files/associations/one_to_many.rb +12 -0
- data/lib/rom/files/associations/one_to_one.rb +12 -0
- data/lib/rom/files/attribute.rb +21 -0
- data/lib/rom/files/commands/create.rb +18 -0
- data/lib/rom/files/commands/delete.rb +17 -0
- data/lib/rom/files/commands/update.rb +17 -0
- data/lib/rom/files/connection.rb +120 -0
- data/lib/rom/files/constants.rb +16 -0
- data/lib/rom/files/dataset.rb +89 -0
- data/lib/rom/files/dataset/filtering.rb +96 -0
- data/lib/rom/files/dataset/mime_type.rb +44 -0
- data/lib/rom/files/dataset/paths.rb +79 -0
- data/lib/rom/files/dataset/sorting.rb +27 -0
- data/lib/rom/files/extensions.rb +30 -0
- data/lib/rom/files/extensions/gem.rb +29 -0
- data/lib/rom/files/extensions/gem/relations/documentations.rb +18 -0
- data/lib/rom/files/extensions/gem/relations/executables.rb +20 -0
- data/lib/rom/files/extensions/gem/relations/implementations.rb +29 -0
- data/lib/rom/files/extensions/gem/relations/specifications.rb +29 -0
- data/lib/rom/files/extensions/markdown/attributes_inferrer.rb +20 -0
- data/lib/rom/files/extensions/markdown/types.rb +18 -0
- data/lib/rom/files/extensions/markup/attributes_inferrer.rb +32 -0
- data/lib/rom/files/extensions/ruby/attributes_inferrer.rb +21 -0
- data/lib/rom/files/extensions/ruby/types.rb +45 -0
- data/lib/rom/files/extensions/text/attributes_inferrer.rb +20 -0
- data/lib/rom/files/gateway.rb +63 -0
- data/lib/rom/files/plugins/configuration/gem.rb +30 -0
- data/lib/rom/files/plugins/relation/instrumentation.rb +28 -0
- data/lib/rom/files/plugins/schema/contents.rb +72 -0
- data/lib/rom/files/plugins/schema/mime.rb +59 -0
- data/lib/rom/files/plugins/schema/shebang.rb +79 -0
- data/lib/rom/files/plugins/schema/stat.rb +108 -0
- data/lib/rom/files/relation.rb +143 -0
- data/lib/rom/files/schema.rb +77 -0
- data/lib/rom/files/schema/attributes_inferrer.rb +79 -0
- data/lib/rom/files/schema/inferrer.rb +36 -0
- data/lib/rom/files/types.rb +37 -0
- data/lib/rom/files/version.rb +7 -0
- data/rom-files.gemspec +48 -0
- data/spec/integration/rom/files/gateway_spec.rb +28 -0
- data/spec/integration/rom/files/gem_spec.rb +98 -0
- data/spec/integration/rom/files/relations_spec.rb +63 -0
- data/spec/integration/rom/files/schema/inferrer_spec.rb +77 -0
- data/spec/lib/dry/types/pathname_spec.rb +50 -0
- data/spec/lib/pathname/extensions/explode_spec.rb +25 -0
- data/spec/lib/pathname/extensions/ext_spec.rb +33 -0
- data/spec/lib/pathname/extensions/partial_spec.rb +17 -0
- data/spec/lib/pathname/extensions/pathmap_spec.rb +147 -0
- data/spec/lib/rom/files/attribute_spec.rb +43 -0
- data/spec/lib/rom/files/connection_spec.rb +76 -0
- data/spec/lib/rom/files/dataset/inside_spec.rb +22 -0
- data/spec/lib/rom/files/dataset/mime_type_spec.rb +23 -0
- data/spec/lib/rom/files/dataset/recursive_question_mark_spec.rb +42 -0
- data/spec/lib/rom/files/dataset/recursive_spec.rb +29 -0
- data/spec/lib/rom/files/dataset/reject_append_spec.rb +68 -0
- data/spec/lib/rom/files/dataset/reject_spec.rb +26 -0
- data/spec/lib/rom/files/dataset/select_append_spec.rb +69 -0
- data/spec/lib/rom/files/dataset/select_spec.rb +38 -0
- data/spec/lib/rom/files/dataset/sort_spec.rb +22 -0
- data/spec/lib/rom/files/dataset_spec.rb +52 -0
- data/spec/lib/rom/files/extensions/text/attributes_inferrer_spec.rb +54 -0
- data/spec/lib/rom/files/gateway_spec.rb +39 -0
- data/spec/lib/rom/files/plugins/schema/contents_spec.rb +66 -0
- data/spec/lib/rom/files/plugins/schema/mime_spec.rb +66 -0
- data/spec/lib/rom/files/plugins/schema/stat_spec.rb +109 -0
- data/spec/lib/rom/files/relation/pluck_spec.rb +20 -0
- data/spec/lib/rom/files/relation/reject_spec.rb +22 -0
- data/spec/lib/rom/files/relation/select_spec.rb +35 -0
- data/spec/lib/rom/files/relation/sort_spec.rb +21 -0
- data/spec/lib/rom/files/relation/to_a_spec.rb +39 -0
- data/spec/lib/rom/files/relation_spec.rb +10 -0
- data/spec/lib/rom/files/schema/attributes_inferrer_spec.rb +45 -0
- data/spec/lib/rom/files/schema/inferrer_spec.rb +29 -0
- data/spec/lib/rom/files/schema_spec.rb +109 -0
- data/spec/lib/rom/files/types/mime_type_spec.rb +9 -0
- data/spec/lib/rom/files/types/path_spec.rb +10 -0
- data/spec/lib/rom/files/types_spec.rb +6 -0
- data/spec/shared/rom/files/files_setup.rb +19 -0
- data/spec/shared/rom/files/filesystem_setup.rb +10 -0
- data/spec/shared/rom/files/gateway_setup.rb +17 -0
- data/spec/shared/rom/files/media_dataset.rb +10 -0
- data/spec/shared/rom/files/media_files.rb +17 -0
- data/spec/shared/rom/files/media_relation.rb +30 -0
- data/spec/spec_helper.rb +10 -0
- metadata +421 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: eba4415db48d67a665075918810e5b264f7b384a0e4ea012f60ef2df6fa949e8
|
|
4
|
+
data.tar.gz: 66a5bb3e56021072805392375f994da8099f4de7a93b3c7172d629aa4a44920c
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: cb33c5db321b7a14680c7b38fc683045184202986c11d988ea2a3c08984d6022330db71d7cb3fa7f02978615c462c7a245a1c89ad06d6217262da99be2d1a22f
|
|
7
|
+
data.tar.gz: 5f0bda1bf6ea5aa843a09e73a448a7625bf0a196068cc6162e0973a8f72d4c3d8bd5518c8b3424e037dae6ab5d4d6f8bd428a9fb830cf31776c1fc537b1398a1
|
data/.editorconfig
ADDED
data/.gitignore
ADDED
data/.rspec
ADDED
data/.rubocop.yml
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Exclude temporary files
|
|
2
|
+
AllCops:
|
|
3
|
+
TargetRubyVersion: 2.4
|
|
4
|
+
DefaultFormatter: fuubar
|
|
5
|
+
DisplayCopNames: true
|
|
6
|
+
ExtraDetails: true
|
|
7
|
+
Exclude:
|
|
8
|
+
- tmp/**/*
|
|
9
|
+
- bin/*
|
|
10
|
+
|
|
11
|
+
# The enforced style doesn’t match Vim’s defaults
|
|
12
|
+
Layout/AlignParameters:
|
|
13
|
+
Enabled: false
|
|
14
|
+
|
|
15
|
+
# Need to be skipped for >-> usage
|
|
16
|
+
Layout/SpaceAroundOperators:
|
|
17
|
+
Enabled: false
|
|
18
|
+
|
|
19
|
+
# It’s quite readable when we know what we are doing
|
|
20
|
+
Lint/AssignmentInCondition:
|
|
21
|
+
Enabled: false
|
|
22
|
+
|
|
23
|
+
Lint/Debugger:
|
|
24
|
+
Exclude:
|
|
25
|
+
- examples/*
|
|
26
|
+
|
|
27
|
+
# No need to handle LoadError in Rakefile
|
|
28
|
+
Lint/HandleExceptions:
|
|
29
|
+
Exclude:
|
|
30
|
+
- Rakefile
|
|
31
|
+
|
|
32
|
+
Metrics/AbcSize:
|
|
33
|
+
Exclude:
|
|
34
|
+
- lib/pathname/extensions/pathmap.rb
|
|
35
|
+
- lib/rom/files/attribute.rb
|
|
36
|
+
|
|
37
|
+
Metrics/BlockLength:
|
|
38
|
+
Exclude:
|
|
39
|
+
- Guardfile
|
|
40
|
+
- lib/pathname/extensions/pathmap.rb
|
|
41
|
+
- rom-files.gemspec
|
|
42
|
+
- spec/**/*_spec.rb
|
|
43
|
+
|
|
44
|
+
Metrics/CyclomaticComplexity:
|
|
45
|
+
Exclude:
|
|
46
|
+
- lib/pathname/extensions/pathmap.rb
|
|
47
|
+
|
|
48
|
+
Metrics/LineLength:
|
|
49
|
+
Max: 256
|
|
50
|
+
|
|
51
|
+
Metrics/MethodLength:
|
|
52
|
+
Exclude:
|
|
53
|
+
- lib/pathname/extensions/pathmap.rb
|
|
54
|
+
- lib/rom/files/connection.rb
|
|
55
|
+
|
|
56
|
+
Naming/FileName:
|
|
57
|
+
Exclude:
|
|
58
|
+
- '**/rom-files*'
|
|
59
|
+
|
|
60
|
+
Naming/MethodName:
|
|
61
|
+
Exclude:
|
|
62
|
+
- lib/**/types.rb
|
|
63
|
+
- lib/dry/types/pathname.rb
|
|
64
|
+
|
|
65
|
+
# UTF-8 is perfectly fine in comments
|
|
66
|
+
Style/AsciiComments:
|
|
67
|
+
Enabled: false
|
|
68
|
+
|
|
69
|
+
# Allow using braces for value-returning blocks
|
|
70
|
+
Style/BlockDelimiters:
|
|
71
|
+
Enabled: false
|
|
72
|
+
|
|
73
|
+
# Documentation checked by Inch CI
|
|
74
|
+
Style/Documentation:
|
|
75
|
+
Enabled: false
|
|
76
|
+
|
|
77
|
+
Style/FormatStringToken:
|
|
78
|
+
Exclude:
|
|
79
|
+
- lib/pathname/extensions/pathmap.rb
|
|
80
|
+
- lib/rom/files/extensions/gem/relations/*.rb
|
|
81
|
+
- spec/lib/pathname/extensions/pathmap_spec.rb
|
|
82
|
+
|
|
83
|
+
# Early returns have their vices
|
|
84
|
+
Style/GuardClause:
|
|
85
|
+
Enabled: false
|
|
86
|
+
|
|
87
|
+
# Need to be skipped for >-> usage
|
|
88
|
+
Style/Lambda:
|
|
89
|
+
Enabled: false
|
|
90
|
+
|
|
91
|
+
# Use compact calls with braces
|
|
92
|
+
Style/LambdaCall:
|
|
93
|
+
EnforcedStyle: braces
|
|
94
|
+
|
|
95
|
+
# Multiline block chains are ok
|
|
96
|
+
Style/MultilineBlockChain:
|
|
97
|
+
Enabled: false
|
|
98
|
+
|
|
99
|
+
# Don’t introduce semantic fail/raise distinction
|
|
100
|
+
Style/SignalException:
|
|
101
|
+
EnforcedStyle: only_raise
|
|
102
|
+
|
|
103
|
+
# Accept both single and double quotes
|
|
104
|
+
Style/StringLiterals:
|
|
105
|
+
Enabled: false
|
|
106
|
+
|
|
107
|
+
# Allow def self.foo; @foo; end
|
|
108
|
+
Style/TrivialAccessors:
|
|
109
|
+
Enabled: false
|
|
110
|
+
|
|
111
|
+
# Generated by `rubocop --auto-gen-config`
|
|
112
|
+
inherit_from: .rubocop_todo.yml
|
data/.rubocop_todo.yml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# This configuration was generated by
|
|
2
|
+
# `rubocop --auto-gen-config`
|
|
3
|
+
# on 2017-11-28 03:15:26 +0300 using RuboCop version 0.51.0.
|
|
4
|
+
# The point is for the user to remove these configuration records
|
|
5
|
+
# one by one as the offenses are removed from the code base.
|
|
6
|
+
# Note that changes in the inspected code, or installation of new
|
|
7
|
+
# versions of RuboCop, may require this file to be generated again.
|
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.4.2
|
data/.simplecov
ADDED
data/.travis.yml
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
language: ruby
|
|
2
|
+
sudo: false
|
|
3
|
+
cache: bundler
|
|
4
|
+
bundler_args: --without yard guard benchmarks tools
|
|
5
|
+
script: "bin/rake ci"
|
|
6
|
+
rvm:
|
|
7
|
+
- 2.0
|
|
8
|
+
- 2.1
|
|
9
|
+
- 2.2
|
|
10
|
+
- 2.3
|
|
11
|
+
- 2.4
|
|
12
|
+
- rbx-2
|
|
13
|
+
- jruby-9000
|
|
14
|
+
- jruby-head
|
|
15
|
+
- ruby-head
|
|
16
|
+
env:
|
|
17
|
+
global:
|
|
18
|
+
- CODECLIMATE_REPO_TOKEN=d284024edac5ef6b2f4b7d4a85505d192433ea269824c54592876999f0efce47
|
|
19
|
+
- JRUBY_OPTS='--dev -J-Xmx1024M'
|
|
20
|
+
matrix:
|
|
21
|
+
allow_failures:
|
|
22
|
+
- rvm: jruby-9000
|
|
23
|
+
- rvm: ruby-head
|
|
24
|
+
- rvm: jruby-head
|
data/.yardopts
ADDED
data/CHANGELOG.md
ADDED
data/Gemfile
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
source 'https://rubygems.org'
|
|
4
|
+
git_source :github do |repo|
|
|
5
|
+
"https://github.com/#{repo}"
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
gemspec
|
|
9
|
+
|
|
10
|
+
gem 'rom', '~> 4.1', github: 'rom-rb/rom', branch: :master
|
|
11
|
+
gem 'rom-sql', '~> 2.2', github: 'rom-rb/rom-sql', branch: :master
|
|
12
|
+
|
|
13
|
+
group :development do
|
|
14
|
+
gem 'tty-file'
|
|
15
|
+
gem 'tty-tree'
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
group :ide do
|
|
19
|
+
gem 'guard'
|
|
20
|
+
gem 'guard-bundler'
|
|
21
|
+
gem 'guard-rspec'
|
|
22
|
+
gem 'guard-rubocop'
|
|
23
|
+
gem 'guard-shell'
|
|
24
|
+
gem 'terminal-notifier-guard'
|
|
25
|
+
end
|
data/Guardfile
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
notification :terminal_notifier if `uname`.match?(/Darwin/)
|
|
4
|
+
notification :tmux, display_message: true if ENV.key?('TMUX')
|
|
5
|
+
|
|
6
|
+
guard :bundler do
|
|
7
|
+
require 'guard/bundler'
|
|
8
|
+
require 'guard/bundler/verify'
|
|
9
|
+
helper = Guard::Bundler::Verify.new
|
|
10
|
+
|
|
11
|
+
files = ['Gemfile']
|
|
12
|
+
files += Dir['*.gemspec'] if files.any? { |f| helper.uses_gemspec?(f) }
|
|
13
|
+
|
|
14
|
+
# Assume files are symlinked from somewhere
|
|
15
|
+
files.each { |file| watch(helper.real_path(file)) }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
group :red_green_refactor, halt_on_fail: true do
|
|
19
|
+
guard :rspec, cmd: 'bin/rspec', all_on_start: true, all_after_pass: true do
|
|
20
|
+
require 'guard/rspec/dsl'
|
|
21
|
+
dsl = Guard::RSpec::Dsl.new(self)
|
|
22
|
+
|
|
23
|
+
rspec = dsl.rspec
|
|
24
|
+
watch('.rspec') { rspec.spec_dir }
|
|
25
|
+
watch('Gemfile.lock') { rspec.spec_dir }
|
|
26
|
+
watch(rspec.spec_helper) { rspec.spec_dir }
|
|
27
|
+
watch(rspec.spec_support) { rspec.spec_dir }
|
|
28
|
+
watch(%r{\A#{rspec.spec_dir}/(?:shared)/.+\.rb\Z}) { rspec.spec_dir }
|
|
29
|
+
watch(rspec.spec_files)
|
|
30
|
+
|
|
31
|
+
# Ruby files
|
|
32
|
+
ruby = dsl.ruby
|
|
33
|
+
dsl.watch_spec_files_for(ruby.lib_files)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
guard :rubocop, cli: '--auto-correct' do
|
|
37
|
+
watch(%r{\Alib/.+\.rb\Z})
|
|
38
|
+
watch(%r{\Aspec/.+\.rb\Z})
|
|
39
|
+
watch(/\.rubocop.*\.yml/) { '.' }
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
guard :shell do
|
|
43
|
+
command = 'bin/yard doc --use-cache'
|
|
44
|
+
watch(%r{\Alib/.+\.rb\Z}) { |m| `#{command} #{m}` }
|
|
45
|
+
watch(/\A.+\.md\Z/) { |m| `#{command} #{m}` }
|
|
46
|
+
watch('.yardopts') { `#{command}` }
|
|
47
|
+
end
|
|
48
|
+
end
|
data/LICENSE.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
© 2017 Alex Semyonov, Héctor Ramón
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
[gem]: https://rubygems.org/gems/rom-files
|
|
2
|
+
[travis]: https://travis-ci.org/alsemyonov/rom-files
|
|
3
|
+
[gemnasium]: https://gemnasium.com/alsemyonov/rom-files
|
|
4
|
+
[codeclimate]: https://codeclimate.com/github/alsemyonov/rom-files
|
|
5
|
+
[inchpages]: http://inch-ci.org/github/alsemyonov/rom-files
|
|
6
|
+
|
|
7
|
+
# ROM::Files
|
|
8
|
+
|
|
9
|
+
[][gem]
|
|
10
|
+
[][travis]
|
|
11
|
+
[][gemnasium]
|
|
12
|
+
[][codeclimate]
|
|
13
|
+
[][codeclimate]
|
|
14
|
+
[][inchpages]
|
|
15
|
+
|
|
16
|
+
Files adapter for [Ruby Object Mapper](https://github.com/rom-rb/rom).
|
|
17
|
+
|
|
18
|
+
## Installation
|
|
19
|
+
|
|
20
|
+
Add this line to your application's Gemfile:
|
|
21
|
+
|
|
22
|
+
```ruby
|
|
23
|
+
gem 'rom-files'
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
And then execute:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
bundle
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Or install it yourself as:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
gem install rom-files
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Changelog
|
|
39
|
+
|
|
40
|
+
See {file:CHANGELOG.md}.
|
|
41
|
+
|
|
42
|
+
## License
|
|
43
|
+
|
|
44
|
+
See {file:LICENSE.md}.
|
data/Rakefile
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'bundler/setup'
|
|
4
|
+
require 'bundler/gem_tasks'
|
|
5
|
+
|
|
6
|
+
require 'rspec/core/rake_task'
|
|
7
|
+
RSpec::Core::RakeTask.new :spec
|
|
8
|
+
|
|
9
|
+
require 'rubocop/rake_task'
|
|
10
|
+
RuboCop::RakeTask.new :style do |task|
|
|
11
|
+
task.options << '--display-cop-names'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
namespace :doc do
|
|
15
|
+
require 'yard'
|
|
16
|
+
require 'yard/rake/yardoc_task'
|
|
17
|
+
YARD::Rake::YardocTask.new :default
|
|
18
|
+
|
|
19
|
+
require 'yard-junk'
|
|
20
|
+
desc 'Check the junk in your YARD Documentation'
|
|
21
|
+
task :junk do
|
|
22
|
+
exit_code = YardJunk::Janitor.new.run.report(:text)
|
|
23
|
+
exit exit_code unless exit_code.zero?
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
desc 'Check documentation with `yardcheck`'
|
|
27
|
+
task :check do
|
|
28
|
+
sh 'yardcheck --require rom-files --include lib --namespace ROM::Files --rspec spec'
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
task doc: %i[doc:default]
|
|
33
|
+
|
|
34
|
+
desc 'Run CI tasks'
|
|
35
|
+
task ci: %i[spec style doc doc:junk doc:check]
|
|
36
|
+
|
|
37
|
+
task default: :ci
|
data/Roadmap.taskpaper
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
rom-files:
|
|
2
|
+
ROM adapter for `file://` scheme
|
|
3
|
+
Goal: Universal ROM adapter for hierarchical tree-like (POSIX-compatible) filesystems
|
|
4
|
+
Connection:
|
|
5
|
+
- support file:// @done(2017-11-28)
|
|
6
|
+
- support dropbox://
|
|
7
|
+
- support webdav://
|
|
8
|
+
Dataset:
|
|
9
|
+
- provide interface comparable with Rake::FileList:
|
|
10
|
+
- remove Dataset#path @done(2017-11-28)
|
|
11
|
+
- add Dataset#data including selected tuples
|
|
12
|
+
- add Dataset#pending meaning #data should be rebuilt
|
|
13
|
+
- make #data-based datasets @done(2017-11-28)
|
|
14
|
+
- make datasets with MIME-type filtering @done(2017-11-28)
|
|
15
|
+
- make datasets with glob patterns filtering @done(2017-11-28)
|
|
16
|
+
- Implement Dataset#at(path)
|
|
17
|
+
- Implement Dataset#patterns @done(2017-11-28)
|
|
18
|
+
- Implement Dataset#paths @done(2017-11-28)
|
|
19
|
+
- Implement Dataset#to_tree
|
|
20
|
+
See `tty-tree` gem
|
|
21
|
+
Schema:
|
|
22
|
+
- Provide dynamic attributes based on pathname @done(2017-11-24)
|
|
23
|
+
- Provide Foreign Keys shortcuts @done(2017-11-24)
|
|
24
|
+
- Provide dynamic attributes based on contents
|
|
25
|
+
- Provide `#has_one` association support (`library_files` has one `spec_file` in gem setup)
|
|
26
|
+
- Provide `#has_many` association support (`year` has many `months` in middleman-like setup)
|
|
27
|
+
- Provide `:frontmatter` schema plugin
|
|
28
|
+
- Provide `:markdown` extension with `text/markdown` mime-type support @done(2017-11-23)
|
|
29
|
+
- Provide `:ruby` extension with `application/x-ruby` mime-type support @done(2017-11-24)
|
|
30
|
+
- Provide `:yaml` extension with `text/x-yaml` MIME-type support
|
|
31
|
+
- Provide `:csv` extension with `text/csv` MIME-type support
|
|
32
|
+
Configuration:
|
|
33
|
+
- Provide `:gem` extension with gem relations
|
|
34
|
+
- Provide `:xdg` extension for user directories layout support
|
|
35
|
+
- Provide `:ruby_generator` extension support
|
|
36
|
+
- Provide command for generating ruby class with RSpec test
|
|
37
|
+
- Provide `:dry_web` extension command for generating dry-web
|
|
38
|
+
Backlog:
|
|
39
|
+
- Provide `:website` extension for setting up middleman-like website
|
|
40
|
+
- Provide `:blog` extension for setting up blog
|
|
41
|
+
- Provide `:src` extension for unbroken pipeline
|
|
42
|
+
Archive:
|
|
43
|
+
- Provide the way to use file stat properties in schema @done(2017-11-20) @project(rom-files)
|
|
44
|
+
- Add dynamic attributes, based on file path or other properties @done(2017-11-20) @project(rom-files)
|
data/bin/_guard-core
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
#
|
|
5
|
+
# This file was generated by Bundler.
|
|
6
|
+
#
|
|
7
|
+
# The application '_guard-core' is installed as part of a gem, and
|
|
8
|
+
# this file is here to facilitate running it.
|
|
9
|
+
#
|
|
10
|
+
|
|
11
|
+
bundle_binstub = File.expand_path("../bundle", __FILE__)
|
|
12
|
+
load(bundle_binstub) if File.file?(bundle_binstub)
|
|
13
|
+
|
|
14
|
+
require "pathname"
|
|
15
|
+
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
|
|
16
|
+
Pathname.new(__FILE__).realpath)
|
|
17
|
+
|
|
18
|
+
require "rubygems"
|
|
19
|
+
require "bundler/setup"
|
|
20
|
+
|
|
21
|
+
load Gem.bin_path("guard", "_guard-core")
|