ree 1.0.0 → 1.0.3
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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/ree/core/object_schema.rb +3 -0
- data/lib/ree/core/object_schema_builder.rb +4 -13
- data/lib/ree/core/package.rb +5 -5
- data/lib/ree/core/package_schema.rb +3 -0
- data/lib/ree/core/package_schema_builder.rb +4 -12
- data/lib/ree/core/package_schema_loader.rb +7 -7
- data/lib/ree/core/packages_schema.rb +4 -1
- data/lib/ree/core/packages_schema_builder.rb +1 -9
- data/lib/ree/core/packages_schema_loader.rb +9 -9
- data/lib/ree/dsl/object_dsl.rb +1 -3
- data/lib/ree/facades/packages_facade.rb +31 -3
- data/lib/ree/link_dsl.rb +1 -3
- data/lib/ree/version.rb +1 -1
- data/lib/ree.rb +1 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf5e0c8684516ac9e2c26a6cbad0e0616a5ef1077da9a17952210bee81beaa8b
|
4
|
+
data.tar.gz: e35b6f677d0b3d448b68d67479a6ad8d9198387c6608db32f32dd5e38b3fec5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51f84f4eab9cc867af7a9785c9d7556e20a179fb5997800d52a49d4b2eb609a7063396d85ff856e78cd6c39f0c96d0e89ed3b2b47ae93a36948ba7f12cd3b365
|
7
|
+
data.tar.gz: dd60d3b7438b9c6a1b2d68a06308921653abe35724d4ed573eff5320ef1035dad87f0f17a5c19e41908cdc68cc6b237dee3b5b69890baccfaf13402a0e28f017
|
data/Gemfile.lock
CHANGED
@@ -4,23 +4,17 @@ class Ree::ObjectSchemaBuilder
|
|
4
4
|
Schema = Ree::ObjectSchema
|
5
5
|
|
6
6
|
# @param [Ree::Object] object
|
7
|
-
# @
|
8
|
-
|
9
|
-
def call(object, schema_path)
|
7
|
+
# @return [Hash]
|
8
|
+
def call(object)
|
10
9
|
Ree.logger.debug("generating object schema for '#{object.name}' package")
|
11
10
|
|
12
|
-
if !File.exists?(schema_path)
|
13
|
-
only_dir_path = schema_path.split('/')[0..-2]
|
14
|
-
FileUtils.mkdir_p(File.join(only_dir_path))
|
15
|
-
end
|
16
|
-
|
17
11
|
if !object.loaded?
|
18
12
|
raise Ree::Error.new("object `#{object.name}` from package `#{object.package_name}` is not loaded", :invalid_schema)
|
19
13
|
end
|
20
14
|
|
21
15
|
data = {
|
22
16
|
Schema::SCHEMA_TYPE => Schema::OBJECT,
|
23
|
-
Schema::
|
17
|
+
Schema::SCHEMA_VERSION => Schema::SCHEMA_VERSION_NUMBER,
|
24
18
|
Schema::NAME => object.name,
|
25
19
|
Schema::PATH => object.rpath,
|
26
20
|
Schema::MOUNT_AS => object.mount_as,
|
@@ -37,10 +31,7 @@ class Ree::ObjectSchemaBuilder
|
|
37
31
|
}
|
38
32
|
}
|
39
33
|
|
40
|
-
|
41
|
-
|
42
|
-
File.write(schema_path, json, mode: 'w')
|
43
|
-
json
|
34
|
+
data
|
44
35
|
end
|
45
36
|
|
46
37
|
private
|
data/lib/ree/core/package.rb
CHANGED
@@ -3,11 +3,11 @@
|
|
3
3
|
require 'pathname'
|
4
4
|
|
5
5
|
class Ree::Package
|
6
|
-
attr_reader :
|
6
|
+
attr_reader :schema_version, :name, :schema_rpath, :entry_rpath,
|
7
7
|
:module, :tags, :preload, :default_links, :gem_name
|
8
8
|
|
9
|
-
def initialize(
|
10
|
-
@
|
9
|
+
def initialize(schema_version, name, entry_rpath, schema_rpath, gem_name = nil)
|
10
|
+
@schema_version = schema_version
|
11
11
|
@name = name
|
12
12
|
@schema_rpath = schema_rpath
|
13
13
|
@entry_rpath = entry_rpath
|
@@ -37,8 +37,8 @@ class Ree::Package
|
|
37
37
|
end
|
38
38
|
|
39
39
|
# @param [String] val
|
40
|
-
def
|
41
|
-
@
|
40
|
+
def set_schema_version(val)
|
41
|
+
@schema_version = val; self
|
42
42
|
end
|
43
43
|
|
44
44
|
# @param [String] val
|
@@ -7,22 +7,17 @@ class Ree::PackageSchemaBuilder
|
|
7
7
|
Schema = Ree::PackageSchema
|
8
8
|
|
9
9
|
# @param [Ree::Package] package
|
10
|
-
# @
|
11
|
-
|
12
|
-
def call(package, abs_path)
|
10
|
+
# @return [Hash]
|
11
|
+
def call(package)
|
13
12
|
Ree.logger.debug("generating package schema for '#{package.name}' package")
|
14
13
|
|
15
|
-
if !File.exists?(abs_path)
|
16
|
-
raise Ree::Error.new("File does not exist: #{abs_path}", :invalid_path)
|
17
|
-
end
|
18
|
-
|
19
14
|
if !package.loaded?
|
20
15
|
raise Ree::Error.new("package schema should be loaded", :invalid_schema)
|
21
16
|
end
|
22
17
|
|
23
18
|
data = {
|
24
19
|
Schema::SCHEMA_TYPE => Schema::PACKAGE,
|
25
|
-
Schema::
|
20
|
+
Schema::SCHEMA_VERSION => Schema::SCHEMA_VERSION_NUMBER,
|
26
21
|
Schema::NAME => package.name,
|
27
22
|
Schema::ENTRY_PATH => package.entry_rpath,
|
28
23
|
Schema::TAGS => package.tags,
|
@@ -45,9 +40,6 @@ class Ree::PackageSchemaBuilder
|
|
45
40
|
}
|
46
41
|
}
|
47
42
|
|
48
|
-
|
49
|
-
|
50
|
-
File.write(abs_path, json, mode: 'w')
|
51
|
-
nil
|
43
|
+
data
|
52
44
|
end
|
53
45
|
end
|
@@ -7,7 +7,7 @@ class Ree::PackageSchemaLoader
|
|
7
7
|
# Sample Package.schema.json
|
8
8
|
# {
|
9
9
|
# "schema_type": "package",
|
10
|
-
# "
|
10
|
+
# "schema_version": "1.2.3",
|
11
11
|
# "name": "accounts",
|
12
12
|
# "entry_path": "package/accounts.rb",
|
13
13
|
# "depends_on": [
|
@@ -49,7 +49,7 @@ class Ree::PackageSchemaLoader
|
|
49
49
|
if !File.exists?(abs_schema_path)
|
50
50
|
raise Ree::Error.new("File not found: #{abs_schema_path}", :invalid_package_schema)
|
51
51
|
end
|
52
|
-
|
52
|
+
|
53
53
|
json_schema = begin
|
54
54
|
JSON.load_file(abs_schema_path)
|
55
55
|
rescue
|
@@ -57,12 +57,12 @@ class Ree::PackageSchemaLoader
|
|
57
57
|
end
|
58
58
|
|
59
59
|
schema_type = json_schema.fetch(Schema::SCHEMA_TYPE)
|
60
|
-
|
60
|
+
|
61
61
|
if schema_type != Schema::PACKAGE
|
62
62
|
raise Ree::Error.new("Invalid schema type: #{abs_schema_path}", :invalid_package_schema)
|
63
63
|
end
|
64
64
|
|
65
|
-
|
65
|
+
schema_version = json_schema.fetch(Schema::SCHEMA_VERSION) { Schema::SCHEMA_VERSION_NUMBER }
|
66
66
|
entry_rpath = json_schema.fetch(Schema::ENTRY_PATH)
|
67
67
|
package_name = json_schema.fetch(Schema::NAME).to_sym
|
68
68
|
|
@@ -83,12 +83,12 @@ class Ree::PackageSchemaLoader
|
|
83
83
|
|
84
84
|
package = if existing_package
|
85
85
|
existing_package
|
86
|
-
.
|
86
|
+
.set_schema_version(schema_version)
|
87
87
|
.set_entry_rpath(entry_rpath)
|
88
88
|
.set_schema_rpath(schema_rpath)
|
89
89
|
else
|
90
90
|
Ree::Package.new(
|
91
|
-
|
91
|
+
schema_version,
|
92
92
|
package_name,
|
93
93
|
entry_rpath,
|
94
94
|
schema_rpath,
|
@@ -118,7 +118,7 @@ class Ree::PackageSchemaLoader
|
|
118
118
|
schema_rpath,
|
119
119
|
Ree::PathHelper.object_rpath(schema_rpath),
|
120
120
|
)
|
121
|
-
|
121
|
+
|
122
122
|
object.set_package(package.name)
|
123
123
|
|
124
124
|
package.set_object(object)
|
@@ -1,11 +1,14 @@
|
|
1
1
|
# frozen_string_literal = true
|
2
2
|
|
3
3
|
module Ree::PackagesSchema
|
4
|
+
SCHEMA_VERSION_NUMBER = '1.0'
|
5
|
+
|
4
6
|
SCHEMA_TYPE = 'schema_type'
|
5
7
|
REE_VERSION = 'ree_version'
|
8
|
+
SCHEMA_VERSION = 'schema_version'
|
6
9
|
PACKAGES = 'packages'
|
7
10
|
GEM_PACKAGES = 'gem_packages'
|
8
|
-
|
11
|
+
|
9
12
|
module Packages
|
10
13
|
NAME = 'name'
|
11
14
|
SCHEMA = 'schema'
|
@@ -20,7 +20,7 @@ class Ree::PackagesSchemaBuilder
|
|
20
20
|
end
|
21
21
|
|
22
22
|
result = {
|
23
|
-
Schema::
|
23
|
+
Schema::SCHEMA_VERSION => Schema::SCHEMA_VERSION_NUMBER,
|
24
24
|
Schema::SCHEMA_TYPE => Schema::PACKAGES,
|
25
25
|
Schema::PACKAGES => packages.sort_by { _1[:name] }.map {
|
26
26
|
{
|
@@ -36,14 +36,6 @@ class Ree::PackagesSchemaBuilder
|
|
36
36
|
}
|
37
37
|
},
|
38
38
|
}
|
39
|
-
|
40
|
-
json = JSON.pretty_generate(result)
|
41
|
-
|
42
|
-
File.write(
|
43
|
-
File.join(Ree.root_dir, Ree::PACKAGES_SCHEMA_FILE),
|
44
|
-
json,
|
45
|
-
mode: 'w'
|
46
|
-
)
|
47
39
|
|
48
40
|
result
|
49
41
|
end
|
@@ -6,7 +6,7 @@ class Ree::PackagesSchemaLoader
|
|
6
6
|
# Sample Packages.schema.json
|
7
7
|
# {
|
8
8
|
# "schema_type": "packages",
|
9
|
-
# "
|
9
|
+
# "schema_version": "1.2.3",
|
10
10
|
# "packages": [
|
11
11
|
# {
|
12
12
|
# "name": "accounts",
|
@@ -18,9 +18,9 @@ class Ree::PackagesSchemaLoader
|
|
18
18
|
# }
|
19
19
|
# ]
|
20
20
|
# }
|
21
|
-
|
21
|
+
|
22
22
|
Schema = Ree::PackagesSchema
|
23
|
-
|
23
|
+
|
24
24
|
# @param [String] path Absolute path to Packages.schema.json file
|
25
25
|
# @param Nilor[Ree::PackagesStore] packages_store Existing packages store
|
26
26
|
# @return [Ree::PackagesStore]
|
@@ -36,14 +36,14 @@ class Ree::PackagesSchemaLoader
|
|
36
36
|
end
|
37
37
|
|
38
38
|
schema_type = schema.fetch(Schema::SCHEMA_TYPE)
|
39
|
-
|
39
|
+
|
40
40
|
if schema_type != Schema::PACKAGES
|
41
41
|
raise Ree::Error.new("Invalid schema type: #{abs_schema_path}", :invalid_packages_schema)
|
42
42
|
end
|
43
43
|
|
44
|
-
|
44
|
+
schema_version = schema.fetch(Schema::SCHEMA_VERSION) { Schema::SCHEMA_VERSION_NUMBER }
|
45
45
|
data = schema.fetch(Schema::PACKAGES)
|
46
|
-
packages_store ||= Ree::PackagesStore.new(
|
46
|
+
packages_store ||= Ree::PackagesStore.new()
|
47
47
|
names = {}
|
48
48
|
|
49
49
|
data.each do |item|
|
@@ -62,7 +62,7 @@ class Ree::PackagesSchemaLoader
|
|
62
62
|
names[name] = true
|
63
63
|
|
64
64
|
package = Ree::Package.new(
|
65
|
-
|
65
|
+
schema_version,
|
66
66
|
name.to_sym,
|
67
67
|
Ree::PathHelper.package_entry_path(schema_rpath),
|
68
68
|
schema_rpath,
|
@@ -78,10 +78,10 @@ class Ree::PackagesSchemaLoader
|
|
78
78
|
raise Ree::Error.new("Unable to add package `#{existing.name}` from `#{package.gem_name}` gem. Package was already added from `#{existing.gem_name}` gem.", :duplicate_package)
|
79
79
|
end
|
80
80
|
end
|
81
|
-
|
81
|
+
|
82
82
|
packages_store.add_package(
|
83
83
|
Ree::Package.new(
|
84
|
-
|
84
|
+
schema_version,
|
85
85
|
name.to_sym,
|
86
86
|
Ree::PathHelper.package_entry_path(schema_rpath),
|
87
87
|
schema_rpath,
|
data/lib/ree/dsl/object_dsl.rb
CHANGED
@@ -40,14 +40,12 @@ class Ree::ObjectDsl
|
|
40
40
|
# @param [Symbol] object_name
|
41
41
|
# @param [Nilor[Symbol]] as
|
42
42
|
# @param [Nilor[Symbol]] from
|
43
|
-
# @param [Nilor[ArrayOf[Symbol]]] methods
|
44
43
|
# @param [Nilor[Proc]] import
|
45
|
-
def link_object(object_name, as: nil, from: nil,
|
44
|
+
def link_object(object_name, as: nil, from: nil, import: nil)
|
46
45
|
check_arg(object_name, :object_name, Symbol)
|
47
46
|
check_arg(as, :as, Symbol) if as
|
48
47
|
check_arg(from, :from, Symbol) if from
|
49
48
|
check_arg(import, :import, Proc) if import
|
50
|
-
check_arg_array_of(methods, :methods, Symbol) if methods
|
51
49
|
|
52
50
|
link_package_name = from.nil? ? @object.package_name : from
|
53
51
|
link_object_name = object_name
|
@@ -13,7 +13,17 @@ class Ree::PackagesFacade
|
|
13
13
|
class << self
|
14
14
|
def write_packages_schema
|
15
15
|
Ree.logger.debug("write_packages_schema")
|
16
|
-
Ree::PackagesSchemaBuilder.new.call
|
16
|
+
packages_schema = Ree::PackagesSchemaBuilder.new.call
|
17
|
+
|
18
|
+
json = JSON.pretty_generate(packages_schema)
|
19
|
+
|
20
|
+
File.write(
|
21
|
+
File.join(Ree.root_dir, Ree::PACKAGES_SCHEMA_FILE),
|
22
|
+
json,
|
23
|
+
mode: 'w'
|
24
|
+
)
|
25
|
+
|
26
|
+
json
|
17
27
|
end
|
18
28
|
end
|
19
29
|
|
@@ -60,7 +70,16 @@ class Ree::PackagesFacade
|
|
60
70
|
|
61
71
|
if package.dir
|
62
72
|
schema_path = Ree::PathHelper.abs_package_schema_path(package)
|
63
|
-
|
73
|
+
|
74
|
+
if !File.exists?(schema_path)
|
75
|
+
raise Ree::Error.new("File does not exist: #{schema_path}", :invalid_path)
|
76
|
+
end
|
77
|
+
|
78
|
+
schema = Ree::PackageSchemaBuilder.new.call(package)
|
79
|
+
json = JSON.pretty_generate(schema)
|
80
|
+
File.write(schema_path, json, mode: 'w')
|
81
|
+
|
82
|
+
json
|
64
83
|
end
|
65
84
|
end
|
66
85
|
|
@@ -77,7 +96,16 @@ class Ree::PackagesFacade
|
|
77
96
|
|
78
97
|
schema_path = Ree::PathHelper.abs_object_schema_path(object)
|
79
98
|
|
80
|
-
|
99
|
+
if !File.exists?(schema_path)
|
100
|
+
only_dir_path = schema_path.split('/')[0..-2]
|
101
|
+
FileUtils.mkdir_p(File.join(only_dir_path))
|
102
|
+
end
|
103
|
+
|
104
|
+
schema = Ree::ObjectSchemaBuilder.new.call(object)
|
105
|
+
json = JSON.pretty_generate(schema)
|
106
|
+
File.write(schema_path, json, mode: 'w')
|
107
|
+
|
108
|
+
json
|
81
109
|
end
|
82
110
|
|
83
111
|
# @param [Symbol] package_name
|
data/lib/ree/link_dsl.rb
CHANGED
@@ -39,14 +39,12 @@ module Ree::LinkDSL
|
|
39
39
|
# @param [Symbol] object_name
|
40
40
|
# @param [Nilor[Symbol]] as
|
41
41
|
# @param [Nilor[Symbol]] from
|
42
|
-
# @param [Nilor[ArrayOf[Symbol]]] methods
|
43
42
|
# @param [Nilor[Proc]] import
|
44
|
-
def _link_object(object_name, as: nil, from: nil,
|
43
|
+
def _link_object(object_name, as: nil, from: nil, import: nil)
|
45
44
|
check_arg(object_name, :object_name, Symbol)
|
46
45
|
check_arg(as, :as, Symbol) if as
|
47
46
|
check_arg(from, :from, Symbol) if from
|
48
47
|
check_arg(import, :import, Proc) if import
|
49
|
-
check_arg_array_of(methods, :methods, Symbol) if methods
|
50
48
|
|
51
49
|
package_name = Ree::StringUtils.underscore(self.name.split('::').first).to_sym
|
52
50
|
link_package_name = from.nil? ? package_name : from
|
data/lib/ree/version.rb
CHANGED
data/lib/ree.rb
CHANGED
@@ -244,6 +244,7 @@ module Ree
|
|
244
244
|
facade.load_packages_schema
|
245
245
|
|
246
246
|
facade.packages_store.packages.each do |package|
|
247
|
+
next if package.gem?
|
247
248
|
puts("Generating Package.schema.json for :#{package.name} package") if !silence
|
248
249
|
|
249
250
|
facade.load_entire_package(package.name)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ree
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ruslan Gatiyatov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-08-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: commander
|
@@ -170,13 +170,13 @@ files:
|
|
170
170
|
- lib/ree/utils/string_utils.rb
|
171
171
|
- lib/ree/version.rb
|
172
172
|
- sig/ree.rbs
|
173
|
-
homepage: https://github.com/glabix/ree/ree
|
173
|
+
homepage: https://github.com/glabix/ree/tree/main/ree
|
174
174
|
licenses:
|
175
175
|
- MIT
|
176
176
|
metadata:
|
177
|
-
homepage_uri: https://github.com/glabix/ree/ree
|
178
|
-
source_code_uri: https://github.com/glabix/ree/ree
|
179
|
-
changelog_uri: https://github.com/glabix/ree/ree/CHANGELOG.md
|
177
|
+
homepage_uri: https://github.com/glabix/ree/tree/main/ree
|
178
|
+
source_code_uri: https://github.com/glabix/ree/tree/main/ree
|
179
|
+
changelog_uri: https://github.com/glabix/ree/blob/main/ree/CHANGELOG.md
|
180
180
|
post_install_message:
|
181
181
|
rdoc_options: []
|
182
182
|
require_paths:
|