project_store 0.6.8 → 0.6.9
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/project_store/base.rb +15 -8
- data/lib/project_store/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c1df2bd03938b69e30dbefa75c4b66b4be402b1b
|
4
|
+
data.tar.gz: 1fa4346552c9729c76a8b4371d32a26e93eb2b63
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b347a01141464333148c7e745c0449a82e0776efcdaa6d43c8b58944c75a7dffc98ab64c4448b999844dea820ac00bffd83fd4d25f57fdae706ac3b1ad44ebd6
|
7
|
+
data.tar.gz: 65c1bf127f43b87a9fa16398d4ab2b139f2946fba2bee9822577c8a82d972802e7baba9d85aa63ba7611d5cf7c91ddffab006bb26b0896293d0339aaeff52ca6
|
data/lib/project_store/base.rb
CHANGED
@@ -8,7 +8,7 @@ module ProjectStore
|
|
8
8
|
include ProjectStore::Editing
|
9
9
|
|
10
10
|
attr_accessor :continue_on_error
|
11
|
-
attr_reader :path, :project_entities, :entity_types, :
|
11
|
+
attr_reader :path, :project_entities, :entity_types, :files, :logger
|
12
12
|
|
13
13
|
def initialize(path)
|
14
14
|
raise PSE, "Invalid store path '#{path}'!" unless valid_path? path
|
@@ -16,7 +16,7 @@ module ProjectStore
|
|
16
16
|
@path = File.expand_path path
|
17
17
|
self.continue_on_error = false
|
18
18
|
@project_entities = {}
|
19
|
-
@
|
19
|
+
@files = {}
|
20
20
|
@entity_types = {}
|
21
21
|
self.decorators = {}
|
22
22
|
end
|
@@ -26,7 +26,7 @@ module ProjectStore
|
|
26
26
|
logger.debug "Found store file '#{file}'"
|
27
27
|
begin
|
28
28
|
store = YAML::Store.new(file)
|
29
|
-
|
29
|
+
files[store] ||= []
|
30
30
|
store.transaction(true) do
|
31
31
|
store.roots.each do |entity_name|
|
32
32
|
begin
|
@@ -34,12 +34,14 @@ module ProjectStore
|
|
34
34
|
entity = store[entity_name]
|
35
35
|
decorate_and_index_entity entity_name, entity, store, &block
|
36
36
|
rescue => e
|
37
|
+
msg = "Invalid entity '#{entity_name}' in file '#{file}' (#{e.message})"
|
38
|
+
dbg_msg = "#{e.message}\nBacktrace:\n#{e.backtrace.join("\n\t")}"
|
37
39
|
if continue_on_error
|
38
|
-
logger.warn
|
39
|
-
logger.debug
|
40
|
+
logger.warn msg
|
41
|
+
logger.debug dbg_msg
|
40
42
|
else
|
41
|
-
logger.debug
|
42
|
-
raise PSE,
|
43
|
+
logger.debug dbg_msg
|
44
|
+
raise PSE, msg
|
43
45
|
end
|
44
46
|
end
|
45
47
|
end
|
@@ -55,6 +57,10 @@ module ProjectStore
|
|
55
57
|
|
56
58
|
private
|
57
59
|
|
60
|
+
def reset
|
61
|
+
[project_entities, files, entity_types].each { |list| list.clear}
|
62
|
+
end
|
63
|
+
|
58
64
|
def valid_path?(path)
|
59
65
|
Dir.exist? path and File.readable? path and File.writable? path
|
60
66
|
end
|
@@ -70,7 +76,7 @@ module ProjectStore
|
|
70
76
|
entity.backing_store = store
|
71
77
|
raise PSE, "Entity '#{entity.name}' already defined in file '#{project_entities[entity.name].backing_store.path}'" if project_entities[entity.name]
|
72
78
|
# Add to the store index store -> entity list
|
73
|
-
|
79
|
+
files[store] << entity
|
74
80
|
# Add to main hash entity name -> entity
|
75
81
|
project_entities[entity.name] = entity
|
76
82
|
# Add to type hash entity type -> entity list
|
@@ -79,6 +85,7 @@ module ProjectStore
|
|
79
85
|
end
|
80
86
|
|
81
87
|
|
88
|
+
|
82
89
|
end
|
83
90
|
|
84
91
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: project_store
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Laurent B.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|