yaml-file-db 0.1.2 → 0.1.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/lib/yaml-file-db/database.rb +2 -2
- data/lib/yaml-file-db/row.rb +7 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f4700000d15653642b4406b061880362c02aaa98baed7ab989234299bd058443
|
4
|
+
data.tar.gz: 2b39ce455282320fe6eed78f75515988136c02f5b1be6c7aaf98719036cd7448
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87b7ab971ba139a3293ea7761c091c610d8f71505df5f17d64199a635edef806bcbf365f6eb69ea05911d30d25bdfadb3d47b28efd37d6b43be5e5f665a26b09
|
7
|
+
data.tar.gz: 1c7e6cda53f628c4d3119954e09c179ba28ec38960d9ca529579a0af8a5d114293d0ddac1e21e8f5ee79a21db4ced29d81e773b221922bde2a4550a88597a922
|
@@ -34,7 +34,7 @@ module YDB
|
|
34
34
|
row = Object.const_get(klass_name).new(source, schema_path)
|
35
35
|
table[row.id] = row
|
36
36
|
rescue ValidationError => error
|
37
|
-
@errors << "#{source}
|
37
|
+
@errors << "[#{source.split("/")[-3..-1].join("/")}] #{error.to_s}"
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
@@ -76,7 +76,7 @@ module YDB
|
|
76
76
|
begin
|
77
77
|
block.call(row)
|
78
78
|
rescue ValidationError => error
|
79
|
-
@errors << "#{row.source}
|
79
|
+
@errors << "[#{row.source.split("/")[-3..-1].join("/")}] #{error.to_s}"
|
80
80
|
end
|
81
81
|
end
|
82
82
|
end
|
data/lib/yaml-file-db/row.rb
CHANGED
@@ -20,13 +20,13 @@ module YDB
|
|
20
20
|
table = db.public_send(key.to_sym)
|
21
21
|
value.each do |primary_key|
|
22
22
|
row = table[primary_key]
|
23
|
-
raise ValidationError.new("
|
23
|
+
raise ValidationError.new("Invalid primary_key: #{primary_key} isn't part of table #{key}") if row.nil?
|
24
24
|
rows << row
|
25
25
|
end
|
26
26
|
instance_variable_set("@#{key}", rows)
|
27
27
|
else
|
28
28
|
row = db.public_send(key.pluralize.to_sym)[value]
|
29
|
-
raise ValidationError.new("
|
29
|
+
raise ValidationError.new("Invalid primary_key: #{primary_key} isn't part of table #{key}") if row.nil?
|
30
30
|
instance_variable_set("@#{key}", row)
|
31
31
|
end
|
32
32
|
end
|
@@ -41,11 +41,11 @@ module YDB
|
|
41
41
|
value.each do |row|
|
42
42
|
if row.respond_to?(self.class.to_s.downcase.to_sym)
|
43
43
|
unless row.public_send(self.class.to_s.downcase.to_sym) == self
|
44
|
-
raise ValidationError.new("
|
44
|
+
raise ValidationError.new("Inconsistent relationship: #{row.id} doesn't link back to #{self.id}")
|
45
45
|
end
|
46
46
|
elsif row.respond_to?(self.class.to_s.downcase.pluralize.to_sym)
|
47
47
|
unless row.public_send(self.class.to_s.downcase.pluralize.to_sym).include?(self)
|
48
|
-
raise ValidationError.new("
|
48
|
+
raise ValidationError.new("Inconsistent relationship: #{row.id} doesn't link back to #{self.id}")
|
49
49
|
end
|
50
50
|
end
|
51
51
|
end
|
@@ -57,13 +57,13 @@ module YDB
|
|
57
57
|
|
58
58
|
def build(source, schema_path)
|
59
59
|
doc = YAML.load(File.read(source))
|
60
|
-
raise ValidationError.new("
|
60
|
+
raise ValidationError.new("Invalid YAML document") if doc == false
|
61
61
|
|
62
62
|
schema = YAML.load(File.read(schema_path))
|
63
63
|
begin
|
64
64
|
JSON::Validator.validate!(schema, doc, :parse_data => false)
|
65
65
|
rescue JSON::Schema::ValidationError => error
|
66
|
-
raise ValidationError.new("
|
66
|
+
raise ValidationError.new("Invalid data: #{error.message}")
|
67
67
|
end
|
68
68
|
|
69
69
|
doc.each do |name, value|
|
@@ -83,7 +83,7 @@ module YDB
|
|
83
83
|
end
|
84
84
|
|
85
85
|
def validate_filename()
|
86
|
-
raise ValidationError.new("
|
86
|
+
raise ValidationError.new("Invalid filename: #{self.id} doesn't follow dash-case convention") unless self.id =~ /\A[a-z\d][a-z\d-]*[a-z\d]\z/i
|
87
87
|
end
|
88
88
|
|
89
89
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yaml-file-db
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Louis-Philippe Gauthier
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-02-
|
11
|
+
date: 2021-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|