project_store 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 577fe8fd0a3153c19ebb1f0a08168a3fd731f6ae
4
- data.tar.gz: f347a15d9debca0a81344874c3ce54d74123d44f
3
+ metadata.gz: 678f752d585ba8f36ffa9a89d7e4cd5366241391
4
+ data.tar.gz: 198001ff303b4ac6fbd3285c638f496bd50b0864
5
5
  SHA512:
6
- metadata.gz: 47cbe67fe7f9d52e90d80fe9287de526642f13062f621ca2200d5f788149b8fa0d0d89bd665f47e5106bcfdeb72fd719fd1e0c56676e9b03dbbfd0a072ba844b
7
- data.tar.gz: 6d0beb384c69221d629ec93a2f3dd59a6d8bebe69cab0ccd33dd7d005b9724d3635f4c35628b3011db6f30526892f8031791e6e799e713c86e219abef947bb62
6
+ metadata.gz: 7c0e173cac8ec51e9e1d6c86d88059ba981073f6318dd66c98d4ddf6ee68ecb5afe3e79e844bf8b55eac6f060f09a5946773f194f1427e687000c30b45d9e3d3
7
+ data.tar.gz: b1f9c98313db056ac2a5e14a547cf042b1bc6ed79cdbb67d13ac60ecfd77ee7ca9302686dd0a86cb2b44319b4bb174323840593aef59416931823a05b801b133
@@ -6,7 +6,7 @@ module ProjectStore
6
6
 
7
7
  include ProjectStore::Editing
8
8
 
9
- attr_accessor :continue_on_error
9
+ attr_accessor :continue_on_error, :decorators
10
10
  attr_reader :path, :project_entities, :entity_types, :stores, :logger
11
11
 
12
12
  def initialize(path)
@@ -17,6 +17,7 @@ module ProjectStore
17
17
  @project_entities = {}
18
18
  @stores = {}
19
19
  @entity_types = {}
20
+ @decorators = {}
20
21
  end
21
22
 
22
23
  def load_entities
@@ -62,6 +63,8 @@ module ProjectStore
62
63
  entity.basic_checks
63
64
  logger.info "Found '#{entity.name}' of type '#{entity.type}'."
64
65
  raise PSE, "Entity '#{entity.name}' already defined in file '#{project_entities[entity.name].backing_store.path}'" if project_entities[entity.name]
66
+ # Adds extra decorator
67
+ add_decorators entity
65
68
  entity.backing_store = store
66
69
  # Add to the store index store -> entity list
67
70
  stores[store] << entity
@@ -73,6 +76,19 @@ module ProjectStore
73
76
  end
74
77
 
75
78
 
79
+ def add_decorators(entity)
80
+ case decorators[entity.type]
81
+ when Array
82
+ decorators[entity.type]
83
+ when NilClass
84
+ []
85
+ else
86
+ [decorators[entity.type]]
87
+ end .each do |decorator|
88
+ entity.extend decorator
89
+ logger.debug "Decorated entity '#{entity.name}' with '#{decorator}'"
90
+ end
91
+ end
76
92
 
77
93
  end
78
94
 
@@ -1,3 +1,3 @@
1
1
  module ProjectStore
2
- VERSION = '0.2.1'
2
+ VERSION = '0.3.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: project_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Laurent B.