project_store 0.1.2 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e0c7d28dcf9b86f6de479133001cbc4d509c284f
4
- data.tar.gz: 6e6c3cd63c9f1f039975b478e23de35ab1328113
3
+ metadata.gz: 2a440ea35cc13eac21b4b49b276827c7e2986f93
4
+ data.tar.gz: 097afce6d59434ab813f55401d8bd7919002c767
5
5
  SHA512:
6
- metadata.gz: 0c6afa66e4d9a0a0e8ab15d1103f9db27942bb892cbd399e543d6d4bbf7948b30b14c1f992159ff97c054d5bd6de7927ac45c2a3b7c2055e6a79b8190fbbf6fc
7
- data.tar.gz: 482071554e4144b9333eba4702e626436ff182e0f8159711a80221ecf3195069c2a19724d865ec4568c89667a5dda57ca9a568273de71a29e0303f553e47d2c6
6
+ metadata.gz: cd426008c44158a469e482cd12b11b30ab4d332c4b027911f73ea750866a1afd898a9b2b2bd03402e1c0bce396adc4659ff68f9511086bb3e2a2a5cd5c05ae63
7
+ data.tar.gz: 636119673d80a7aed3697ab8d685b7f8b4dd10689ae4c1cc674b81086fec1a5850e203f697f93bfa2fbb5830afbbf7c4fc41c39a362e76a2d940cbd531aaa344
@@ -63,10 +63,13 @@ module ProjectStore
63
63
  logger.info "Found '#{entity.name}' of type '#{entity.type}'."
64
64
  raise PSE, "Entity '#{entity.name}' already defined in file '#{project_entities[entity.name].backing_store.path}'" if project_entities[entity.name]
65
65
  entity.backing_store = store
66
+ # Add to the store index store -> entity list
67
+ stores[store] << entity
68
+ # Add to main hash entity name -> entity
66
69
  project_entities[entity.name] = entity
70
+ # Add to type hash entity type -> entity list
67
71
  entity_types[entity.type] ||= []
68
72
  entity_types[entity.type] << entity
69
- stores[store] << entity
70
73
  end
71
74
 
72
75
 
@@ -4,6 +4,7 @@ module ProjectStore
4
4
  module Base
5
5
 
6
6
  include ProjectStore::Entity::MandatoryProperties
7
+ include ProjectStore::Entity::CommonProperties
7
8
 
8
9
  attr_reader :backing_store
9
10
 
@@ -3,21 +3,9 @@ module ProjectStore
3
3
 
4
4
  module CommonProperties
5
5
 
6
- def description
7
- self[:description]
8
- end
6
+ extend ProjectStore::Entity::PropertyBinder
9
7
 
10
- def description=(description)
11
- self[:description] = description
12
- end
13
-
14
- def data
15
- self[:data]
16
- end
17
-
18
- def data=(data)
19
- self[:data] = data
20
- end
8
+ yaml_accessor :description, :data
21
9
 
22
10
  end
23
11
 
@@ -3,15 +3,10 @@ module ProjectStore
3
3
 
4
4
  module MandatoryProperties
5
5
 
6
- attr_accessor :name
7
-
8
- def type
9
- self[:type]
10
- end
6
+ extend ProjectStore::Entity::PropertyBinder
11
7
 
12
- def type=(type)
13
- self[:type] = type
14
- end
8
+ attr_accessor :name
9
+ yaml_accessor :type
15
10
 
16
11
  end
17
12
 
@@ -0,0 +1,36 @@
1
+ module ProjectStore
2
+ module Entity
3
+
4
+ module PropertyBinder
5
+
6
+ def yaml_accessor(*args)
7
+ args.each do |arg|
8
+ yaml_reader arg
9
+ yaml_writer arg
10
+ end
11
+ end
12
+
13
+ def yaml_reader(*args)
14
+ args.each do |arg|
15
+ self.class_eval do
16
+ define_method arg do
17
+ self[arg]
18
+ end
19
+ end
20
+ end
21
+ end
22
+
23
+ def yaml_writer(*args)
24
+ args.each do |arg|
25
+ self.class_eval do
26
+ define_method "#{arg}=" do |val|
27
+ self[arg] = val
28
+ end
29
+ end
30
+ end
31
+ end
32
+
33
+ end
34
+
35
+ end
36
+ end
@@ -1,3 +1,3 @@
1
1
  module ProjectStore
2
- VERSION = '0.1.2'
2
+ VERSION = '0.2.0'
3
3
  end
data/lib/project_store.rb CHANGED
@@ -11,7 +11,7 @@ module ProjectStore
11
11
 
12
12
  end
13
13
 
14
-
14
+ require 'project_store/entity/properties_binder'
15
15
  require 'project_store/entity/mandatory_properties'
16
16
  require 'project_store/entity/common_properties'
17
17
  require 'project_store/entity/base'
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.1.2
4
+ version: 0.2.0
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-14 00:00:00.000000000 Z
11
+ date: 2016-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -89,6 +89,7 @@ files:
89
89
  - lib/project_store/entity/base.rb
90
90
  - lib/project_store/entity/common_properties.rb
91
91
  - lib/project_store/entity/mandatory_properties.rb
92
+ - lib/project_store/entity/properties_binder.rb
92
93
  - lib/project_store/error.rb
93
94
  - lib/project_store/initializer.rb
94
95
  - lib/project_store/utils/basic_logger.rb