project_store 0.1.2 → 0.2.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: 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